1.下载并应用
1 2
| wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.x.x/deploy/static/provider/cloud/deploy.yaml kubectl apply -f deploy.yaml
|
2.新增一个Ingress配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: ingress-myservice spec: rules: - http: paths: - path: / pathType: Prefix backend: service: name: dolphinscheduler-api port: number: 12345 ingressClassName: nginx
|
1
| kubectl apply -f demo.yaml
|
3.1启用严格 ARP 模式
1
| kubectl edit configmap -n kube-system kube-proxy
|
1 2 3 4 5
| apiVersion: kubeproxy.config.k8s.io/v1alpha1 kind: KubeProxyConfiguration mode: "ipvs" ipvs: strictARP: true
|
3.2 应用配置文件
1
| kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.13.12/config/manifests/metallb-native.yaml
|
3.3 定义网络ip池
1 2 3 4 5 6 7 8 9
| apiVersion: metallb.io/v1beta1 kind: IPAddressPool metadata: name: web-ip-pool namespace: metallb-system spec: addresses: - 58.208.85.3-58.208.85.3
|
1
| kubectl apply -f ip_pool.yaml
|
问题
修改spec.externaltrafficpolicy字段,改为Cluster
1 2 3 4
| ... spec: externalTrafficPolicy: Cluster ...
|
在k8s的Service对象(申明一条访问通道)中,有一个“externalTrafficPolicy”字段可以设置。有2个值可以设置:Cluster或者Local。
1)Cluster表示:流量可以转发到其他节点上的Pod。
2)Local表示:流量只发给本机的Pod。
参考链接:
externaltrafficpolicy的有关问题说明