iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >k8s部署ingress-nginx的方法是什么
  • 383
分享到

k8s部署ingress-nginx的方法是什么

2023-06-22 00:06:14 383人浏览 安东尼
摘要

本篇内容介绍了“k8s部署ingress-Nginx的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、部署配置Ingress获取

本篇内容介绍了“k8s部署ingress-Nginx的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

一、部署配置Ingress

获取配置文件

#文件已下载到本地https://GitHub.com/kubernetes/ingress-nginx/tree/nginx-0.20.0/deploy

准备镜像

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

k8s部署ingress-nginx的方法是什么

安装

kubectl apply -f mandatory.yaml

k8s部署ingress-nginx的方法是什么

#稍等片刻,使用下列命令查询kubectl get namespacekubectl get pods -n ingress-nginx

k8s部署ingress-nginx的方法是什么

创建后端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

k8s部署ingress-nginx的方法是什么

创建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

k8s部署ingress-nginx的方法是什么

在外部浏览器中中访问:ip:30080

k8s部署ingress-nginx的方法是什么

此时报错的原因是因为没有生成ingress-controller关联到service-B的ingress规则;

定义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

k8s部署ingress-nginx的方法是什么

在外部主机上配置好host文件

k8s部署ingress-nginx的方法是什么

然后在浏览器中再访问,发现已经可以访问到后端pod了

k8s部署ingress-nginx的方法是什么

二、使用https

创建k8s证书(要注意和后端的pod使用相同的namespace)

kubectl -n default  create secret tls ingress-test --key /home/Centos/cert/cash532.key --cert /home/centos/cert/cash532.crt

创建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的方法是什么

“k8s部署ingress-nginx的方法是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: k8s部署ingress-nginx的方法是什么

本文链接: https://www.lsjlt.com/news/301598.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作