更新步骤
1.更新ingress-controller的启动参数(在yaml文件中)
containers:
- name: nginx-ingress-controller
image: harbor.demo.cn/3rd_part/nginx-ingress-controller:0.26.1
args:
- /nginx-ingress-controller
- --configmap=$(POD_NAMESPACE)/nginx-configuration
- --tcp-services-configmap=$(POD_NAMESPACE)/tcp-services
- --udp-services-configmap=$(POD_NAMESPACE)/udp-services
- --annotations-prefix=nginx.ingress.kubernetes.io
# - --publish-service=$(POD_NAMESPACE)/ingress-nginx
- --report-node-internal-ip-address
- --ingress-class=ngx-ds
- --election-id=ingress-controller-leader-bg
一下为修改和添加项目
# - --publish-service=$(POD_NAMESPACE)/ingress-nginx
- --report-node-internal-ip-address
- --ingress-class=ngx-ds
- --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文件中)
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: Role
metadata:
name: nginx-ingress-role
namespace: ingress-nginx
labels:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx
rules:
- apiGroups:
- ""
resources:
- configmaps
- pods
- secrets
- namespaces
verbs:
- get
- apiGroups:
- ""
resources:
- configmaps
resourceNames:
# Defaults to "-"
# Here: "-"
# This has to be adapted if you change either parameter
# when launching the nginx-ingress-controller.
# - "ingress-controller-leader-nginx"
- "ingress-controller-leader-bg-ngx-ds"
需要修改 “ ingress-controller-leader-nginx” 为新的 “election-id” - “ingress-class”拼接,见步骤1更新的参数
3.更新ClusterRole对应的name(在yaml文件中)
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
name: nginx-ingress-ds-clusterrole
labels:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx
4.更新ClusterRoleBinding对应的roleRefName(在yaml文件中)
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: nginx-ingress-clusterrole-ds-binding
labels:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: nginx-ingress-ds-clusterrole
subjects:
- kind: ServiceAccount
name: nginx-ingress-serviceaccount
namespace: ingress-nginx
文档更新时间: 2020-09-29 16:47 作者:张尚