gpt4 book ai didi

k8s部署ingress-nginx的方法步骤

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 27 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章k8s部署ingress-nginx的方法步骤由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

前言

k8s集群服务部署好之后,需要对外提域名访问,这时候就需要ingress-nginx了,今天来给大家分享一下 。

1、部署配置ingress

1、获取配置文件 。

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

2、准备镜像 。

?
1
2
3
4
5
unzip ingress-nginx-nginx- 0.20 . 0 .zip
cd 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的方法步骤

3、安装 。

?
1
kubectl apply -f mandatory.yaml

k8s部署ingress-nginx的方法步骤

?
1
2
3
#稍等片刻,使用下列命令查询
kubectl get namespace
kubectl get pods -n ingress-nginx

k8s部署ingress-nginx的方法步骤

4、创建后端pod和service (pod-b、service-b) 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
vim deploy-demo.yaml
apiversion: v1
kind: service
metadata:
   name: myapp
   namespace: default
spec:
   selector:
     app: myapp
     release: canary
   ports:
   - name: http
     targetport: 80
     port: 80
---  
apiversion: apps/v1
kind: deployment
metadata:
   name: myapp-deploy
   namespace: default
spec:
   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的方法步骤

5、创建service-a 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
vim service-nodeport.yaml
apiversion: v1
kind: service
metadata:
   name: ingress-nginx
   namespace: ingress-nginx
   labels:
     app.kubernetes.io/name: ingress-nginx
     app.kubernetes.io/part-of: ingress-nginx
spec:
   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-nginx
app.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规则; 。

6、定义ingress规则 。

定义ingress规则,此间规则会自动注入到ingress-controller(pod)的nginx.conf中; ingress-controller是直接关联到service-b的,但是中间由ingress来生成各种规则; 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
vim ingress-myapp.yaml
apiversion: extensions/v1beta1
kind: ingress
metadata:
   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文件即可; 。

?
1
2
#应用配置
kubectl apply -f ingress-myapp.yaml

k8s部署ingress-nginx的方法步骤

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

k8s部署ingress-nginx的方法步骤

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

k8s部署ingress-nginx的方法步骤

2、使用https

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

?
1
kubectl -n default  create secret tls ingress-test --key /home/centos/cert/cash432.key --cert /home/centos/cert/cash432.crt

2、创建ingress规则 。

注意namespace的相同性,要不然证书无法生效 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
vim ingress-myapp-cash432.yaml
apiversion: extensions/v1beta1
kind: ingress
metadata:
   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.cash432.xyz
     secretname: ingress-test
   rules:
   - host: myapp.cash432.xyz
     http:
       paths:
       - path:
         backend:
           servicename: myapp
           serviceport: 80
 
#应用配置
kubectl apply -f ingress-myapp-cash432.yaml

浏览器访问 。

k8s部署ingress-nginx的方法步骤

到此这篇关于k8s部署ingress-nginx的方法步骤的文章就介绍到这了,更多相关k8s部署ingress-nginx内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。

原文链接:https://blog.csdn.net/qq_37837432/article/details/121720678 。

最后此篇关于k8s部署ingress-nginx的方法步骤的文章就讲到这里了,如果你想了解更多关于k8s部署ingress-nginx的方法步骤的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com