k8s ingress-nginx-controller 0.46.0 升级到 1.6.4
官网文档提到,只需替换镜像版本即可升级 ingress-nginx-controller
官方文档升级
寻找对应的ingress-nginx-controller版本
因为是 k8s 版本升级到1.24后导致的不兼容,所以我们要找到对应的版本的ingress
寻找对应版本地址
我们找到了比较合适的1.6.4版本
更新镜像时 @后的id如何查找
docker inspect registry.k8s.io/ingress-nginx/controller:v1.6.4 | grep -i sha256
我更新后遇到的权限缺失等问题
编辑权限配置文件
kubectl edit clusterrole -n ingress-nginx ingress-nginx
添加以下内容
- apiGroups:
- coordination.k8s.io
resources:
- leases
verbs:
- get
- list
- watch
- create
- update
- apiGroups:
- discovery.k8s.io
resources:
- endpointslices
verbs:
- get
- list
- watch
Kubernetes v1.18+ 需要 IngressClass,执行以下命令检查
kubectl get ingressclass
如果 没有 nginx IngressClass,可以创建一个:
kubectl apply -f - <<EOF
apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:
name: nginx
spec:
controller: k8s.io/ingress-nginx
EOF
然后,更新你的 Ingress:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress
namespace: default
spec:
ingressClassName: nginx