ingres nginx controller 和 k8s版本 兼容性要求
官网建议:https://github.com/kubernetes/ingress-nginx/blob/main/README.md#supported-versions-table

使用helm安装
# 添加helm仓库
[root@k8s-master1-60 ~]# helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
# 进行仓库升级
[root@k8s-master1-60 ~]# helm repo update
# 查看可安装版本
[root@k8s-master1-60 ~]# helm search repo ingress-nginx -l
NAME CHART VERSION APP VERSION DESCRIPTION
ingress-nginx/ingress-nginx 4.13.0 1.13.0 Ingress controller for Kubernetes using NGINX a...
ingress-nginx/ingress-nginx 4.12.4 1.12.4 Ingress controller for Kubernetes using NGINX a...
ingress-nginx/ingress-nginx 4.12.3 1.12.3 Ingress controller for Kubernetes using NGINX a...
ingress-nginx/ingress-nginx 4.12.2 1.12.2 Ingress controller for Kubernetes using NGINX a...
ingress-nginx/ingress-nginx 4.12.1 1.12.1 Ingress controller for Kubernetes using NGINX a...
ingress-nginx/ingress-nginx 4.12.0 1.12.0 Ingress controller for Kubernetes using NGINX a...
ingress-nginx/ingress-nginx 4.11.8 1.11.8 Ingress controller for Kubernetes using NGINX a...
ingress-nginx/ingress-nginx 4.11.7 1.11.7 Ingress controller for Kubernetes using NGINX a...
ingress-nginx/ingress-nginx 4.11.6 1.11.6 Ingress controller for Kubernetes using NGINX a...
ingress-nginx/ingress-nginx 4.11.5 1.11.5 Ingress controller for Kubernetes using NGINX a...
ingress-nginx/ingress-nginx 4.11.4 1.11.4 Ingress controller for Kubernetes using NGINX a...
ingress-nginx/ingress-nginx 4.11.3 1.11.3 Ingress controller for Kubernetes using NGINX a...
ingress-nginx/ingress-nginx 4.11.2 1.11.2 Ingress controller for Kubernetes using NGINX a...
ingress-nginx/ingress-nginx 4.11.1 1.11.1 Ingress controller for Kubernetes using NGINX a...
ingress-nginx/ingress-nginx 4.11.0 1.11.0 Ingress controller for Kubernetes using NGINX a...
ingress-nginx/ingress-nginx 4.10.6 1.10.6 Ingress controller for Kubernetes using NGINX a...
# 下载指定安装
[root@k8s-master1-60 ~]# helm pull ingress-nginx/ingress-nginx --version 4.12.0
[root@k8s-master1-60 ~]# tar -zxvf ingress-nginx-4.12.0.tgz
[root@k8s-master1-60 ~]# cd ingress-nginx
[root@k8s-master1-60 ingress-nginx]# ls
changelog Chart.yaml ci OWNERS README.md README.md.gotmpl templates tests values.yaml
# 修改ingress-nginx-contorller的镜像配置,注释掉digest
[root@k8s-master1-60 ingress-nginx]# vim values.yaml
controller:
name: controller
enableAnnotationValidations: true
image:
## Keep false as default for now!
chroot: false
# registry: registry.k8s.io
image: ingress-nginx/controller
## for backwards compatibility consider setting the full image url via the repository value below
## use *either* current default registry/image or repository format or installing chart by providing the values.yaml will fail
## repository:
tag: "v1.12.0"
#digest: sha256:e6b8de175acda6ca913891f0f727bca4527e797d52688cbe9fec9040d6f6b6fa
#digestChroot: sha256:87c88e1c38a6c8d4483c8f70b69e2cca49853bb3ec3124b9b1be648edf139af3
[root@k8s-master1-60 ingress-nginx]# vim values.yaml
# 修改kube-webhook-certgen的镜像配置,注释掉digest
image:
# registry: registry.k8s.io
image: ingress-nginx/kube-webhook-certgen
## for backwards compatibility consider setting the full image url via the repository value below
## use *either* current default registry/image or repository format or installing chart by providing the values.yaml will fail
## repository:
tag: v1.5.0
#digest: sha256:aaafd456bda110628b2d4ca6296f38731a3aaf0bf7581efae824a41c770a8fc4
# 修改 service 类型为 NodePort
[root@k8s-master1-60 ingress-nginx]# vim values.yaml
service:
# -- Enable controller services or not. This does not influence the creation of either the admission webhook or the metrics service.
enabled: true
external:
# -- Enable the external controller service or not. Useful for internal-only deployments.
enabled: true
# -- Annotations to be added to the external controller service. See `controller.service.internal.annotations` for annotations to be added to the internal controller service.
annotations: {}
# -- Labels to be added to both controller services.
labels: {}
# -- Type of the external controller service.
# Ref: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types
type: NodePort
# -- Pre-defined cluster internal IP address of the external controller service. Take care of collisions with existing services.
# This value is immutable. Set once, it can not be changed without deleting and re-creating the service.
# Ref: https://kubernetes.io/docs/concepts/services-networking/service/#choosing-your-own-ip-address
clusterIP: ""
# 官方提供的registry.k8s.io/ingress-nginx/controller无法直接拉取,需要使用替代的镜像。以下操作需要在一个节点操作下载进行后,在把进行拷贝到其他节点
[root@k8s-master1-60 ~]# docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller:v1.12.0
[root@k8s-master1-60 ~]# docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-webhook-certgen:v1.5.0
[root@k8s-master1-60 ~]# docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller:v1.12.0 registry.k8s.io/ingress-nginx/controller:v1.12.0
[root@k8s-master1-60 ~]# docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-webhook-certgen:v1.5.0 registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.5.0
# 分发镜像到所有节点、防止调度到某个节点后没有镜像启动失败。
[root@k8s-master1-60 ~]# docker save -o webhook-certgen.tar registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.5.0
[root@k8s-master1-60 ~]# docker save -o controller.tar registry.k8s.io/ingress-nginx/controller:v1.12.0
[root@k8s-master1-60 ~]# for i in 172.30.42.61 172.30.42.62 172.30.42.63 172.30.42.64; do scp controller.tar webhook-certgen.tar $i:/root; done
# 各个节点加压镜像、其它节点一样的解压操作
[root@k8s-master2-61 ~]# docker load -i webhook-certgen.tar
[root@k8s-master2-61 ~]# docker load -i controller.tar
# 创建命名空间
[root@k8s-master1-60 ~]# kubectl create ns ingress-nginx
# 执行helm install进行安装
[root@k8s-master1-60 ~]# cd ~
[root@k8s-master1-60 ~]# cd ingress-nginx
[root@k8s-master1-60 ingress-nginx]# helm install ingress-nginx -n ingress-nginx .
# 查看安装结果
[root@k8s-master1-60 ingress-nginx]# kubectl get pod -n ingress-nginx -owide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
ingress-nginx-controller-b55b667bd-l82zx 1/1 Running 0 6m10s 192.164.89.178 k8s-master2-61 <none> <none>
ingress-nginx-controller-b55b667bd-ms7bc 1/1 Running 0 6m10s 192.172.81.41 k8s-work2-64 <none> <none>