k8s部署ingress-nginx的方法是什么
发表于:2025-11-06 作者:千家信息网编辑
千家信息网最后更新 2025年11月06日,本篇内容介绍了"k8s部署ingress-nginx的方法是什么"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够
千家信息网最后更新 2025年11月06日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安全错误
数据库的锁怎样保障安全
部门申请软件开发申请报告
新盗墓笔记金丝楠木服务器
学生与学校的关系数据库
竞赛信息录入数据库
电脑怎么把光影加入服务器
基础软件开发所需设备
数据库的数据表中应该包括
麦杰数据库 python
网络安全攻防实战演练的目的
上海市财政人员数据库
wincc的sql数据库的表
服务器维护除尘
盐城银联软件开发欢迎来电
数据库多表查询区别和使用
搜索三年级网络安全减一
维普数据库文字复制
我国最新网络技术
密云区节能软件开发服务供应
如何从电脑上找财务数据库
网络文学数据库
mc服务器太卡
有免费的服务器吗
Access 数据库 变化
服务器主机防护系软件
遵义ibm服务器总代理
数据库恢复软件
.net数据库表映射到类
怎么进入服务器主机
邵阳正规软件开发中介
我的世界服务器外置登录皮肤不显示