k8s部署ingress-nginx的方法是什么
发表于:2025-02-21 作者:千家信息网编辑
千家信息网最后更新 2025年02月21日,本篇内容介绍了"k8s部署ingress-nginx的方法是什么"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够
千家信息网最后更新 2025年02月21日k8s部署ingress-nginx的方法是什么
本篇内容介绍了"k8s部署ingress-nginx的方法是什么"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
一、部署配置Ingress
1、获取配置文件
#文件已下载到本地https://github.com/kubernetes/ingress-nginx/tree/nginx-0.20.0/deploy
2、准备镜像
unzip ingress-nginx-nginx-0.20.0.zipcd ingress-nginx-nginx-0.20.0/deploy/vim mandatory.yaml #其他文件的集合#编辑mandatory.yaml文件,将defaultbackend镜像地址改成阿里云的镜像地址(如下图)image: registry.cn-hangzhou.aliyuncs.com/allinpay/defaultbackend-amd64:v1.5
3、安装
kubectl apply -f mandatory.yaml
#稍等片刻,使用下列命令查询kubectl get namespacekubectl get pods -n ingress-nginx
4、创建后端pod和service (pod-B、service-B)
vim deploy-demo.yamlapiVersion: v1kind: Servicemetadata: name: myapp namespace: defaultspec: selector: app: myapp release: canary ports: - name: http targetPort: 80 port: 80--- apiVersion: apps/v1kind: Deploymentmetadata: name: myapp-deploy namespace: defaultspec: replicas: 3 selector: matchLabels: app: myapp release: canary template: metadata: labels: app: myapp release: canary spec: containers: - name: myapp image: ikubernetes/myapp:v2 ports: - name: http containerPort: 80#应用配置kubectl apply -f deploy-demo.yaml#查看kubectl get pods
5、创建service-A
vim service-nodeport.yamlapiVersion: v1kind: Servicemetadata: name: ingress-nginx namespace: ingress-nginx labels: app.kubernetes.io/name: ingress-nginx app.kubernetes.io/part-of: ingress-nginxspec: type: NodePort ports: - name: http port: 80 targetPort: 80 protocol: TCP nodePort: 30080 - name: https port: 443 targetPort: 443 protocol: TCP nodePort: 30443 selector: app.kubernetes.io/name: ingress-nginxapp.kubernetes.io/part-of: ingress-nginx#应用配置kubectl apply -f service-nodeport.yaml#查看kubectl get svc -n ingress-nginx
在外部浏览器中中访问:ip:30080
此时报错的原因是因为没有生成ingress-controller关联到service-B的ingress规则;
6、定义ingress规则
定义ingress规则,此间规则会自动注入到ingress-controller(pod)的nginx.conf中;
ingress-controller是直接关联到service-B的,但是中间由ingress来生成各种规则;
vim ingress-myapp.yamlapiVersion: extensions/v1beta1kind: Ingressmetadata: name: ingress-myapp namespace: default annotations: kubernetes.io/ingress.class: "nginx"spec: rules: - host: myapp.magedu.com http: paths: - path: backend: serviceName: myapp servicePort: 80
此时ingress-controller的nginx.conf中会自动生成一个server段的配置,也就是一个nginx的虚拟主机的字段,还包括upstream配置等;
upstream自动代理到后端pod(pod-B),这些都是自动生成,所以就实现了自动生成配置,自动更改配置等;
只需要改此yaml文件即可;
#应用配置kubectl apply -f ingress-myapp.yaml
在外部主机上配置好host文件
然后在浏览器中再访问,发现已经可以访问到后端pod了
二、使用https
1、创建k8s证书(要注意和后端的pod使用相同的namespace)
kubectl -n default create secret tls ingress-test --key /home/centos/cert/cash532.key --cert /home/centos/cert/cash532.crt
2、创建ingress规则
注意namespace的相同性,要不然证书无法生效
vim ingress-myapp-cash532.yamlapiVersion: extensions/v1beta1kind: Ingressmetadata: name: ingress-myapp namespace: default annotations: kubernetes.io/ingress.class: "nginx" kubernetes.io/secure-backends: "true" kubernetes.io/ssl-passthrough: "true"spec: tls: - hosts: - myapp.cash532.xyz secretName: ingress-test rules: - host: myapp.cash532.xyz http: paths: - path: backend: serviceName: myapp servicePort: 80#应用配置kubectl apply -f ingress-myapp-cash532.yaml
浏览器访问
"k8s部署ingress-nginx的方法是什么"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
配置
文件
规则
生成
应用
浏览器
自动生成
镜像
浏览
方法
相同
主机
内容
地址
更多
知识
证书
关联
中中
实用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发公司工资分录
士官学计算机网络技术
男孩学习网络安全专业好吗
戴尔服务器开启虚拟化
怀旧服服务器怎么配置
facebook服务器停电
软件开发服务做什么科目
计算机网络安全和保密知识
统筹规划 网络安全
sql数据库认证
武汉大学国家网络安全学院马超
数据库创建表默认表空间
怎么做网络安全宣传
小学生应该怎样注意网络安全
苏州工程软件开发咨询报价
上海泽内互联网科技有限公司
免费ssl服务器证书
接彩票软件开发
互联网公司前端科技
个人信息网络安全知识内容
数据库的cis是什么意思
浪潮服务器推介宣传
江阴品质网络技术代理价格
戴尔服务器启动菜单里没有usb
新乡市软件开发哪家专业好
网络技术编程视频
网络安全与法制教育心得
2012数据库在哪里找
石嘴山网络安全宣传
怎样使用数据库接入网络