千家信息网

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蕉流服务器
0