
Uma pequena introdução, sou muito novo no kubernetes, então sou um pouco rude com isso. Deixe-me esboçar meu problema.
TLDR:Depois de instalar o cilium no kubernetes, não consigo acessar de e para nenhuma outra máquina em minhas redes locais
Eu tenho duas sub-redes:
10.0.0.0/24 > Para todas as minhas outras máquinas virtuais (DNS, Ansible)
10.8.0.0/24 > Para meu cluster K8s
Eu tenho 3 nós, 1 controlador e 2 trabalhadores. e é principalmente para testar e brincar com ele.
Eu inicializei o cluster usando
kubeadm init --skip-phases=addon/kube-proxy (I also wanted to use cilium for the proxy)
Depois disso, a única outra coisa que configurei foi o Helm para poder obter facilmente o pacote cilium.
Nesta configuração sem cílio consigo conectar tudo bem. DNS, Ansible sem problemas.
Depois de instalar o cilium por meio do Helm usando os seguintes 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
Não consigo mais me conectar aos meus nós de nenhuma outra máquina e meus nós não conseguem acessar nada dentro da minha sub-rede local 10.0.0.0/24, por exemplo
quando tento fazer o NSlookup
nslookup google.com 10.0.0.1
;; connection timed out; no servers could be reached
Porém quando faço para um IP fora da faixa 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 instantaneamente
Todos os serviços parecem estar funcionando bem ao usar
ao usar:
Cilium status
Quando eu olho para todos os serviços, eles também parecem estar bem
/¯¯\
/¯¯\__/¯¯\ 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>
Não sei por que os ips do core DNS são assim. Acho que é apenas da rede do pod automaticamente, não sei a configuração exata para especificar uma sub-rede diferente.
Tenho a sensação de que também tem algo a ver com rotas, que ele roteia estranhamente internamente, já que o cilium também usa intervalos dentro de 10.0.0.0/8, mas não tenho ideia de como verificar ou consertar isso... e estou brincando sem tentar de novo e de novo, mas o mesmo parece estar acontecendo, então peço ajuda!
Responder1
Voltando a este Freshmind alguns dias depois foi meio fácil....
A configuração padrão é que as redes de pod e a rede interna do Kubernetes usem 10.0.0.0/8. Essas rotas basicamente atrapalham minhas próprias rotas, criando perda de conexão.
Para corrigir isso, dei ao Ipam os seguintes valores ao instalar o pacote helm, fazendo-o usar 172.16.0.0/12 em vez 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