更新步骤

1.更新ingress-controller的启动参数(在yaml文件中)
  1. containers:
  2. - name: nginx-ingress-controller
  3. image: harbor.demo.cn/3rd_part/nginx-ingress-controller:0.26.1
  4. args:
  5. - /nginx-ingress-controller
  6. - --configmap=$(POD_NAMESPACE)/nginx-configuration
  7. - --tcp-services-configmap=$(POD_NAMESPACE)/tcp-services
  8. - --udp-services-configmap=$(POD_NAMESPACE)/udp-services
  9. - --annotations-prefix=nginx.ingress.kubernetes.io
  10. # - --publish-service=$(POD_NAMESPACE)/ingress-nginx
  11. - --report-node-internal-ip-address
  12. - --ingress-class=ngx-ds
  13. - --election-id=ingress-controller-leader-bg

一下为修改和添加项目

  1. # - --publish-service=$(POD_NAMESPACE)/ingress-nginx
  2. - --report-node-internal-ip-address
  3. - --ingress-class=ngx-ds
  4. - --election-id=ingress-controller-leader-bg
  • —ingress-class=ngx-ds 当设置这个参数后只会Watch Ingress class为 ngx-ds的
  • —election-id= ingress-controller-leader-bg 用于Ingress状态更新的选举ID。(默认ingress-controller-leader)
  • —report-node-internal-ip-address 默认情况下是–publish-service但是在裸机部署的时候要使用kubectl get ingress无法显示ADDRESS,所以我们需要使用–report-node-internal-ip-address参数
  • —publish-service=$(POD_NAMESPACE)/ingress-nginx 非公有云情况下使用kubectl get ingress无法显示ADDRESS
2.更新configmap对应的resourceName(在yaml文件中)
  1. apiVersion: rbac.authorization.k8s.io/v1beta1
  2. kind: Role
  3. metadata:
  4. name: nginx-ingress-role
  5. namespace: ingress-nginx
  6. labels:
  7. app.kubernetes.io/name: ingress-nginx
  8. app.kubernetes.io/part-of: ingress-nginx
  9. rules:
  10. - apiGroups:
  11. - ""
  12. resources:
  13. - configmaps
  14. - pods
  15. - secrets
  16. - namespaces
  17. verbs:
  18. - get
  19. - apiGroups:
  20. - ""
  21. resources:
  22. - configmaps
  23. resourceNames:
  24. # Defaults to "-"
  25. # Here: "-"
  26. # This has to be adapted if you change either parameter
  27. # when launching the nginx-ingress-controller.
  28. # - "ingress-controller-leader-nginx"
  29. - "ingress-controller-leader-bg-ngx-ds"

需要修改 “ ingress-controller-leader-nginx” 为新的 “election-id” - “ingress-class”拼接,见步骤1更新的参数

3.更新ClusterRole对应的name(在yaml文件中)
  1. ---
  2. apiVersion: rbac.authorization.k8s.io/v1beta1
  3. kind: ClusterRole
  4. metadata:
  5. name: nginx-ingress-ds-clusterrole
  6. labels:
  7. app.kubernetes.io/name: ingress-nginx
  8. app.kubernetes.io/part-of: ingress-nginx
4.更新ClusterRoleBinding对应的roleRefName(在yaml文件中)
  1. ---
  2. apiVersion: rbac.authorization.k8s.io/v1beta1
  3. kind: ClusterRoleBinding
  4. metadata:
  5. name: nginx-ingress-clusterrole-ds-binding
  6. labels:
  7. app.kubernetes.io/name: ingress-nginx
  8. app.kubernetes.io/part-of: ingress-nginx
  9. roleRef:
  10. apiGroup: rbac.authorization.k8s.io
  11. kind: ClusterRole
  12. name: nginx-ingress-ds-clusterrole
  13. subjects:
  14. - kind: ServiceAccount
  15. name: nginx-ingress-serviceaccount
  16. namespace: ingress-nginx
文档更新时间: 2020-09-29 16:47   作者:张尚