kubernetes-1.35.3的Ingress-nginx-1.5.1安装
案例:基于 YAML 部署 ingress-nginx
范例: 基于 kubectl apply 部署
#指定版本下载
VERSION=1.15.1
wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v${VERSION}/deploy/static/provider/cloud/deploy.yaml
#修改三处image 地址指向国内镜像地址
[root@master1 ~]#vim deploy.yaml #image: registry.k8s.io/ingress-nginx/controller:v11.14.3@sha256:ac444cd9515af325ba577b596fe4f27a34be1aa330538e8b317ad9d6c8fb94ee image: registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller:v1.15.1 #image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.6.7@sha256:7a38cf0f8480775baaee71ab519c7465fd1dfeac66c421f28f087786e631456e image: registry.cn-hangzhou.aliyuncs.com/google_containers/kube-webhook-certgen:v1.6.9 #image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.6.7@sha256:7a38cf0f8480775baaee71ab519c7465fd1dfeac66c421f28f087786e631456e image: registry.cn-hangzhou.aliyuncs.com/google_containers/kube-webhook-certgen:v1.6.9
#应用资源配置文件
kubectl apply -f deploy.yaml
kubectl get ns
[root@master1 ingress-nginx]# kubectl get ns NAME STATUS AGE default Active 15d ingress-nginx Active 17s kube-flannel Active 15d kube-node-lease Active 15d kube-public Active 15d kube-system Active 15d metallb-system Active 3d9h sc-nfs Active 33h
[root@master1 ingress-nginx]# kubectl get all -n ingress-nginx NAME READY STATUS RESTARTS AGE pod/ingress-nginx-controller-65c7957ccd-27xqp 1/1 Running 0 4m12s pod/ingress-nginx-controller-65c7957ccd-wnnnq 1/1 Running 0 4m12s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/ingress-nginx-controller LoadBalancer 10.97.174.247 192.168.3.10 80:32708/TCP,443:30309/TCP 4m12s service/ingress-nginx-controller-admission ClusterIP 10.111.133.50 <none> 443/TCP 4m12s NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/ingress-nginx-controller 2/2 2 2 4m12s NAME DESIRED CURRENT READY AGE replicaset.apps/ingress-nginx-controller-65c7957ccd 2 2 2 4m12s
#生成IngressClass
root@master1 ingress-nginx]# kubectl get ingressclass
NAME CONTROLLER PARAMETERS AGE
nginx k8s.io/ingress-nginx <none> 4m35s
#查看基于LoadBalancer的service
[root@master1 ingress-nginx]# kubectl get svc -n ingress-nginx NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE ingress-nginx-controller LoadBalancer 10.97.174.247 192.168.3.10 80:32708/TCP,443:30309/TCP 4m46s ingress-nginx-controller-admission ClusterIP 10.111.133.50 <none> 443/TCP 4m46s [root@master1 ingress-nginx]#
[root@master1 ingress-nginx]# kubectl get pod -n ingress-nginx NAME READY STATUS RESTARTS AGE ingress-nginx-controller-65c7957ccd-75n8f 1/1 Running 0 8m56s ingress-nginx-controller-65c7957ccd-fp95z 0/1 Running 0 24s
[root@master1 ingress-nginx]# kubectl get pod -n ingress-nginx -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES ingress-nginx-controller-65c7957ccd-75n8f 1/1 Running 0 9m37s 10.244.2.207 node2.org <none> <none> ingress-nginx-controller-65c7957ccd-fp95z 1/1 Running 0 65s 10.244.1.213 node1.org <none> <none>
默认ingress-nginx-controller只有一个Pod副本的,可选
#方法1: 指定2个副本实现高可用(此步可选)
spec: replicas: 2
ingress-nginx 底层基于nginx
[root@master1 ingress-nginx]# kubectl exec -it ingress-nginx-controller-65c7957ccd-75n8f -n ingress-nginx -- bash ingress-nginx-controller-65c7957ccd-75n8f:/etc/nginx$ ingress-nginx-controller-65c7957ccd-75n8f:/etc/nginx$ ls fastcgi.conf koi-utf mime.types.default nginx.conf.default scgi_params.default win-utf fastcgi.conf.default koi-win modsecurity opentracing.json template fastcgi_params lua modules owasp-modsecurity-crs uwsgi_params fastcgi_params.default mime.types nginx.conf scgi_params uwsgi_params.default ingress-nginx-controller-65c7957ccd-75n8f:/etc/nginx$ ingress-nginx-controller-65c7957ccd-75n8f:/etc/nginx$ nginx -v nginx version: nginx/1.27.1 ingress-nginx-controller-65c7957ccd-75n8f:/etc/nginx$ pwd /etc/nginx ingress-nginx-controller-65c7957ccd-75n8f:/etc/nginx$
client --> ingress controller svc 192.168.3.11 --> ingress 规则 --> svc --> pod
浙公网安备 33010602011771号