配置 K8S Network 节点
配置 K8S Network 节点
Network 节点的主要目的是集群整个流量的入口, 可以是一个或多个, 跟 Ingress 控制器一起使用, 用于负载均衡和路由流量到集群内部的服务。
这里将 worker2 (192.168.88.103
) 作为 Network 节点,打上Label:
kubectl label node worker2 node-role.kubernetes.io/network=edge
配置 nginx ingress controller
下载 helm 包
在 Network 节点上安装 nginx ingress controller
values.yaml
controller:
ingressClassResource:
name: nginx
enabled: true
default: true
controllerValue: "k8s.io/ingress-nginx"
admissionWebhooks:
enabled: false
replicaCount: 1
image:
# registry: registry.k8s.io
# image: ingress-nginx/controller
# tag: "v1.8.0"
registry: ccr.ccs.tencentyun.com
image: jansora/registry.k8s.io_ingress-nginx_controller
tag: "v1.8.0"
hostNetwork: true
nodeSelector:
node-role.kubernetes.io/network: 'edge' # 标记 pod 运行到 network 节点
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values:
- nginx-ingress
- key: component
operator: In
values:
- controller
topologyKey: kubernetes.io/hostname
tolerations:
- key: node-role.kubernetes.io/master
operator: Exists
effect: NoSchedule
- key: node-role.kubernetes.io/master
operator: Exists
effect: PreferNoSchedule
安装
helm install ingress-nginx -n ingress-nginx ./ingress-nginx-4.7.0.tgz --values ./values.yaml --create-namespace