Привет всем
У меня возникла проблема с моим кластером Kubernete.
Спецификация
Кластер
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: сеть: podSubnet: 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>
В) Я не могу получить доступ к веб-интерфейсу ArgoCD, потому что вижу, что модули работают на
- Рабочий01:k8s-w01-prod 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-prod 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, то проблема решается.
В) Как можно маршрутизировать трафик так, чтобы веб-интерфейс приложения ArgoCD работал без проблем со связью между узлами (модули Pod могут работать на любом узле и могут взаимодействовать друг с другом)?
В) Хорошая ли идея использовать BGP на Calico? без Node-to-Node mesh
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
Но проблема все еще существует на моей стороне.