
Una pequeña introducción. Soy bastante nuevo en Kubernetes, así que soy un poco rudo. Déjame esbozar mi problema.
TLDR:Después de instalar cilium en kubernetes, no puedo acceder desde ni hacia ninguna otra máquina en mis redes locales
Tengo dos subredes:
10.0.0.0/24 > Para todas mis otras máquinas virtuales (DNS, Ansible)
10.8.0.0/24 > Para mi clúster K8s
Tengo 3 nodos, 1 controlador y 2 trabajadores. y es principalmente para probar y jugar con él.
Inicié el cluster usando
kubeadm init --skip-phases=addon/kube-proxy (I also wanted to use cilium for the proxy)
Después de eso, lo único que configuro es Helm para poder obtener fácilmente el paquete cilium.
En esta configuración sin cilio puedo conectarme a todo bien. DNS, Ansible no hay problema.
Después de instalar cilio a través de Helm usando los siguientes valores:
- name: helm install cilium
kubernetes.core.helm:
name: cilium
chart_ref: cilium/cilium
chart_version: 1.11.5
release_namespace: kube-system
values:
k8sServiceHost: 10.8.0.1
k8sServicePort: 6443
kubeProxyReplacement: strict
Ya no puedo conectarme a mis nodos desde ninguna otra máquina y mis nodos no pueden acceder a nada dentro de mi subred local 10.0.0.0/24, por ejemplo.
cuando intento hacer NSlookup
nslookup google.com 10.0.0.1
;; connection timed out; no servers could be reached
Sin embargo, cuando lo hago a una IP fuera del rango 10.0.0.0/8
nslookup google.com 8.8.8.8
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: google.com
Address: 142.250.179.174
Name: google.com
Address: 2a00:1450:400e:802::200e
funciona al instante
Todos los servicios parecen funcionar bien cuando se usan
cuando usas:
Cilium status
Cuando miro todos los servicios, parecen estar bien también.
/¯¯\
/¯¯\__/¯¯\ Cilium: OK
\__/¯¯\__/ Operator: OK
/¯¯\__/¯¯\ Hubble: disabled
\__/¯¯\__/ ClusterMesh: disabled
\__/
DaemonSet cilium Desired: 3, Ready: 3/3, Available: 3/3
Deployment cilium-operator Desired: 2, Ready: 2/2, Available: 2/2
Containers: cilium Running: 3
cilium-operator Running: 2
Cluster Pods: 3/3 managed by Cilium
Image versions cilium quay.io/cilium/cilium:v1.11.5@sha256:79e66c3c2677e9ecc3fd5b2ed8e4ea7e49cf99ed6ee181f2ef43400c4db5eef0: 3
cilium-operator quay.io/cilium/operator-generic:v1.11.5@sha256:8ace281328b27d4216218c604d720b9a63a8aec2bd1996057c79ab0168f9d6d8: 2
kube-system cilium-2xhvn 1/1 Running 0 78m 10.8.0.3 kube-worker02 <none> <none>
kube-system cilium-hk8f7 1/1 Running 1 (2m23s ago) 78m 10.8.0.1 kube-master00 <none> <none>
kube-system cilium-m26jx 1/1 Running 0 78m 10.8.0.2 kube-worker01 <none> <none>
kube-system cilium-operator-5484444455-4g7pz 1/1 Running 1 (2m29s ago) 78m 10.8.0.3 kube-worker02 <none> <none>
kube-system cilium-operator-5484444455-9v5dv 1/1 Running 1 (2m24s ago) 78m 10.8.0.2 kube-worker01 <none> <none>
kube-system coredns-6d4b75cb6d-v6gzl 1/1 Running 1 (2m23s ago) 80m 10.0.0.106 kube-master00 <none> <none>
kube-system coredns-6d4b75cb6d-w42pk 1/1 Running 1 (2m23s ago) 80m 10.0.0.28 kube-master00 <none> <none>
kube-system etcd-kube-master00 1/1 Running 1 (2m23s ago) 80m 10.8.0.1 kube-master00 <none> <none>
kube-system kube-apiserver-kube-master00 1/1 Running 1 (2m23s ago) 80m 10.8.0.1 kube-master00 <none> <none>
kube-system kube-controller-manager-kube-master00 1/1 Running 1 (2m23s ago) 80m 10.8.0.1 kube-master00 <none> <none>
kube-system kube-scheduler-kube-master00 1/1 Running 1 (2m23s ago) 80m 10.8.0.1 kube-master00 <none> <none>
No sé porque las ips del core dns son esas. Creo que es solo de la red pod automáticamente, no sé la configuración exacta para especificar una subred diferente.
Tengo la sensación de que también tiene algo que ver con las rutas, que curiosamente enruta internamente ya que cilio también usa rangos dentro de 10.0.0.0/8, pero no tengo idea de cómo verificarlo o solucionarlo... y he estado jugando Sin intentarlo una y otra vez, pero parece que está sucediendo lo mismo, ¡así que pido ayuda!
Respuesta1
Volviendo a Freshminded unos días después, fue bastante fácil...
La configuración predeterminada es que las redes de pods y las redes internas de Kubernetes usan 10.0.0.0/8. Estas rutas básicamente estropean mis propias rutas creando pérdida de conexión.
Para solucionar este problema, le di a Ipam los siguientes valores al instalar el paquete helm, haciéndolo usar 172.16.0.0/12 en lugar de 10.0.0.0/8.
ipam:
mode: "cluster-pool"
operator:
clusterPoolIPv4PodCIDR: "172.16.0.0/12"
clusterPoolIPv4PodCIDRList: ["172.16.0.0/12"]
clusterPoolIPv4MaskSize: 24