Kuberenetes 節點到節點通訊未如預期運作

Kuberenetes 節點到節點通訊未如預期運作

大家好

我的 Kubernetes 叢集確實有問題

規格

NAME                 STATUS   ROLES    AGE   VERSION   INTERNAL-IP     EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION     CONTAINER-RUNTIME
k8s-w02-prod   Ready    <none>   40d   v1.19.2   192.168.25.20   <none>        Ubuntu 20.04.1 LTS   5.4.0-54-generic   docker://19.3.8
k8s-m01-prod   Ready    master   40d   v1.19.2   10.60.17.15    <none>        Ubuntu 20.04.1 LTS   5.4.0-58-generic   docker://19.3.8
k8s-m02-prod   Ready    master   40d   v1.19.2   10.60.17.16    <none>        Ubuntu 20.04.1 LTS   5.4.0-54-generic   docker://19.3.8
k8s-m03-prod   Ready    master   40d   v1.19.2   10.60.17.17    <none>        Ubuntu 20.04.1 LTS   5.4.0-54-generic   docker://19.3.8
k8s-w01-prod   Ready    <none>   40d   v1.19.2   192.168.29.20    <none>        Ubuntu 20.04.1 LTS   5.4.0-54-generic   docker://19.3.8

叢集網路插件 使用印花布

Pod:網路:pod子網路:10.65.0.0/16

Calico process is running.

IPv4 BGP status
+---------------+-------------------+-------+------------+-------------+
| PEER ADDRESS  |     PEER TYPE     | STATE |   SINCE    |    INFO     |
+---------------+-------------------+-------+------------+-------------+
| 192.168.25.20 | node-to-node mesh | up    | 23:37:55   | Established |
| 10.60.11.156  | node-to-node mesh | up    | 2021-01-04 | Established |
| 10.60.11.157  | node-to-node mesh | up    | 2021-01-04 | Established |
| 192.168.29.20 | node-to-node mesh | up    | 2021-01-04 | Established |
+---------------+-------------------+-------+------------+-------------+

IPv6 BGP status
No IPv6 peers found.

它使用節點到節點網格

問題

當我運行簡單應用程式時,例如:ArgoCD

argo-cd-argocd-application-controller-74dd8b79f5-vldhb   1/1     Running   0          14h   10.65.102.48   k8s-w02-prod   <none>           <none>
argo-cd-argocd-dex-server-5c656d6c6c-shb69               1/1     Running   0          14h   10.65.102.52   k8s-w02-prod   <none>           <none>
argo-cd-argocd-redis-9757589c5-6w2p6                     1/1     Running   0          14h   10.65.102.60   k8s-w02-prod   <none>           <none>
argo-cd-argocd-repo-server-774c6856f9-vgmq8              1/1     Running   0          14h   10.65.102.4    k8s-w02-prod   <none>           <none>
argo-cd-argocd-server-669fc6db5c-x5w4k                   1/1     Running   0          13h   10.65.72.159   k8s-w01-prod   <none>           <none>

Q)我無法存取 ArgoCD Web UI Bcoz,因為我看到 Pod 正在運行

  • Worker01:k8s-w01-產品192.168.25.20
ip route | grep tun

10.65.69.192/26 via 10.60.17.17 dev tunl0 proto bird onlink 
10.65.102.0/26 via 192.168.25.20 dev tunl0 proto bird onlink 
10.65.187.64/26 via 10.60.17.15 dev tunl0 proto bird onlink 
10.65.233.192/26 via 10.60.17.16 dev tunl0 proto bird onlink 


工人02:k8s-w02-產品192.168.29.20

10.65.69.192/26 via 10.60.17.17 dev tunl0 proto bird onlink 
10.65.72.128/26 via 192.168.29.20 dev tunl0 proto bird onlink 
10.65.187.64/26 via 10.60.17.15 dev tunl0 proto bird onlink 
10.65.233.192/26 via 10.60.17.16 dev tunl0 proto bird onlink 

在不同的子網路上運行

雙方 Ping 工作完全正常

當我使用節點選擇器標籤在選定的節點(即worker01或worker02)上執行pod時,問題就解決了。

Q)如何路由流量,以便應用程式 ArgoCD WebUI 正常運作而不會出現任何節點間通訊問題(Pod 可以在任何節點上運行,並且可以相互通訊)

Q)在 calico 上使用 BGP 是個好主意嗎?沒有節點到節點網格

https://docs.projectcalico.org/networking/bgp

請告訴我如何解決這個問題

答案1

我找到了使用 nodeAffinity 解決此問題的方法

       affinity:   
         nodeAffinity:
           preferredDuringSchedulingIgnoredDuringExecution:
           - weight: 1
             preference:
               matchExpressions:
               - key: "kubernetes.io/hostname"
                 operator: In
                 values:
                 - k8s-w01-prod

但問題仍然存在於我這邊

相關內容