root@k8s-master-u2404-4-100-101:~/ingress_nginx_install# curl https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/cloud/deploy.yaml > ingress_nginx.yaml

root@k8s-master-u2404-4-100-101:~/ingress_nginx_install# vim ingress_nginx.yaml

#添加423那一行
418         app.kubernetes.io/instance: ingress-nginx
419         app.kubernetes.io/name: ingress-nginx
420         app.kubernetes.io/part-of: ingress-nginx
421         app.kubernetes.io/version: 1.12.0-beta.0
422     spec:
423       hostNetwork: true
424       containers:
425       - args:
426         - /nginx-ingress-controller
427         - --publish-service=$(POD_NAMESPACE)/ingress-nginx-controller
428         - --election-id=ingress-nginx-leader
429         - --controller-class=k8s.io/ingress-nginx
430         - --ingress-class=nginx

#添加403那一行
#添加副本数
399     app.kubernetes.io/version: 1.12.0-beta.0
400   name: ingress-nginx-controller
401   namespace: ingress-nginx
402 spec:
403   replicas: 3
404   minReadySeconds: 0
405   revisionHistoryLimit: 10
406   selector:

## 可选
#365行添加 type: NodePort
#347行修改 externalTrafficPolicy: Cluster
#因为我们有matellb
##将Ingress Controller暴露,一般使用宿主机网络(hostNetwork: true)或者使用NodePort
##HostNetwork (yaml 文件中, 每个containers: 上面添加hostNetwork: true)
##是为了打通Cluster和node的网络,让Cluster直接监听node的端口,一般是80和443,不用再通过随机绑定的nodePort来访问集群服务
##可以看到不再需要随机绑定的nodePort了,因为hostNetwork直接监听集群的80端口

## 可选
#1. maxSkew
#    表示在不同拓扑区域(如节点)之间,Pod 的分布允许的最大偏差。
#    例如,当 maxSkew: 1 时,Kubernetes 会尽量将 Pod 分布均匀,但允许一个拓扑区域的 Pod 数量比另一个多 
#2. topologyKey
#    指定拓扑区域的关键字段,定义了 Pod 分布的区域。
#    这里的 kubernetes.io/hostname 表示按照节点名称来分布 Pod。
#3. whenUnsatisfiable
#    指定当无法满足拓扑分布要求时的行为:
#        DoNotSchedule:不调度新的 Pod,直到分布约束满足。
#        ScheduleAnyway:即使分布约束无法满足,也会调度 Pod。
#当前配置为 ScheduleAnyway,表示即使无法完全均匀分布,也允许调度 Pod。
#4. labelSelector
#    定义了约束适用的 Pod 子集,通过标签选择器筛选。
#    在这里,选择具有标签 kubernetes.io/os=linux 的 Pod。

#pod调度打撒
418         app.kubernetes.io/component: controller
419         app.kubernetes.io/instance: ingress-nginx
420         app.kubernetes.io/name: ingress-nginx
421         app.kubernetes.io/part-of: ingress-nginx
422         app.kubernetes.io/version: 1.12.0-beta.0
423     spec:
424       topologySpreadConstraints:
425       - maxSkew: 1
426         topologyKey: kubernetes.io/hostname
427         whenUnsatisfiable: ScheduleAnyway
428         labelSelector:
429           matchLabels:
430             kubernetes.io/os: linux
431       hostNetwork: true
432       containers:
433       - args:
434         - /nginx-ingress-controller
435         - --publish-service=$(POD_NAMESPACE)/ingress-nginx-controller
436         - --election-id=ingress-nginx-leader

root@k8s-master-u2404-4-100-101:~/ingress_nginx_install# kubectl apply -f nginx_server.yaml

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注