k8s部署ingress-nginx的方法是什么
发表于:2025-01-16 作者:千家信息网编辑
千家信息网最后更新 2025年01月16日,本篇内容介绍了"k8s部署ingress-nginx的方法是什么"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够
千家信息网最后更新 2025年01月16日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安全错误
数据库的锁怎样保障安全
中国网络安全企业全景图第九版
linux开源数据库使用教程
大数据网络安全自查情况表
华为软件开发总监
服务器的主机配置高吗
康佳社招软件开发
数据库直接读另一个数据库
邮储银行总行软件开发中心
java访问数据库表路径
郑州大学计算机网络技术分数线
wifi用了什么计算机网络技术
全国设备从业人员数据库
典型数据库应用系统结构
关于中学生网络安全的法规
陕西省软件开发专业的专科学校
网络安全预警流程图
宁波江北h3c应用优化服务器
220kv 数据库命名
江苏云柜网络技术公司怎么样
医院如何做一个数据库
石家庄微信软件开发费用
免费代理服务器国外
河北软件开发收费标准
企业重签名服务软件开发
甘肃网络营销网络技术服务哪家好
国际铁路交通和事故数据库
交友平台软件开发
如何下载ctf网络安全大赛
网络安全负责人责任
dcs蕉流服务器