Puncte:2

Kubernets 1.21.3 Valoarea recomandată pentru „clusterCIDR” în „KubeProxyConfiguration”

drapel cn

Încerc să unesc noul nod cu cel existent v1.21.3 cluster cu Calico CNI. alăturați-vă darea de comenzi clusterCIDR avertizare.

Cum să remediați acest mesaj de avertizare de subrețea?

# kubeadm join master-vip:8443 --token xxx --discovery-token-ca-cert-hash sha256:xxxx
[preflight] Executare verificări înainte de zbor
[flight preflight] Se citește configurația din cluster...
[flight] FYI: Puteți să vă uitați la acest fișier de configurare cu „kubectl -n kube-system get cm kubeadm-config -o yaml”
W0809 14:10:27.717696 75868 utils.go:69] Valoarea recomandată pentru „clusterCIDR” în „KubeProxyConfiguration” este: 10.201.0.0/16; valoarea furnizată este: 10.203.0.0/16
[kubelet-start] Se scrie configurația kubelet în fișierul „/var/lib/kubelet/config.yaml”
[kubelet-start] Se scrie un fișier de mediu kubelet cu steaguri în fișierul „/var/lib/kubelet/kubeadm-flags.env”

Actualizați:

foloseam 10.201.0.0/16 în timpul configurării clusterului, mai târziu am trecut la 10.203.0.0/16. nu sunt sigur de unde mai ajunge 10.201.0.0/16 valoarea de subrețea.

Iată valoarea subnetă.

# sudo cat /etc/kubernetes/manifests/kube-controller-manager.yaml | grep cluster-cidr
    - --cluster-cidr=10.203.0.0/16

kubectl cluster-info dump | grep cluster-cidr
                            „--cluster-cidr=10.203.0.0/16”,
                            „--cluster-cidr=10.203.0.0/16”,
                            „--cluster-cidr=10.203.0.0/16”,

pas pentru a actualiza pod CIDR de la 10.201.0.0/16 la 10.203.0.0/16

  1. folosind această comandă a actualizat configurația kubeadm-confg kubectl -n kube-system edit cm kubeadm-config

podSubnet: 10.203.0.0/16

  1. Am actualizat kuber-controller-manger și l-am repornit.

sed -i 's/10.201.0.0/10.203.0.0/' /etc/kubernetes/manifests/kube-controller-manager.yaml

după actualizarea IP-ului.

toate configurațiile arată subrețeaua ca 10.203.0.0 dar pod-uri care se creează în subrețeaua „10.201.0.0”.

# kubectl get cm kube-proxy -n kube-system -o yaml |grep -i clusterCIDR
    clusterCIDR: 10.203.0.0/16
# kubectl get no -o yaml |grep -i podcidr
    podCIDR: 10.203.0.0/24
    podCIDR-uri:
    podCIDR: 10.203.1.0/24
    podCIDR-uri:
    podCIDR: 10.203.2.0/24
    podCIDR-uri:
    podCIDR: 10.203.3.0/24
    podCIDR-uri:
    podCIDR: 10.203.5.0/24
    podCIDR-uri:
    podCIDR: 10.203.4.0/24
    podCIDR-uri:
    podCIDR: 10.203.6.0/24
    podCIDR-uri:
Mikołaj Głodziak avatar
drapel id
Ați putea adăuga la întrebare următoarele informații: adresa IP a controlerului principal și a nodului de lucru pe care încercați să-l atașați, rezultatul comenzii `sudo cat /etc/kubernetes/manifests/kube-controller-manager.yaml | grep cluster-cidr` și `kubectl cluster-info dump | grep cluster-cidr` (ambele de la controlerul principal)? Ai editat cumva configurația care rulează pe controlerul principal? Ce rețea ați folosit în comanda `kubeadm` - `sudo kubeadm init --pod-network-cidr={network}`?
sfgroups avatar
drapel cn
@MikoÅajGÅodziak a adăugat un răspuns inline la postare.
Mikołaj Głodziak avatar
drapel id
Ați putea, vă rog, să descrieți (tutorial, pași) cum v-ați schimbat rețeaua `clusterCIDR` de la `10.201.0.0/16` la `10.203.0.0/16`? Încerc să reproduc problema ta.
Puncte:2
drapel cn

Am reușit să replic problema ta. Am primit aceeași eroare. Este necesar să actualizați câteva alte fișiere de configurare.

Pentru a schimba complet grupul de IP-uri pod-uri și noduri, trebuie să actualizați podCIDR și ClusterCIDR valori în câteva fișiere de configurare:

  • actualizați ConfigMap kubeadm-confg - ai făcut-o deja

  • actualizare fișier /etc/kubernetes/manifests/kube-controller-manager.yaml - ai făcut-o deja

  • actualizați definiția nodului (nodurilor) cu corespunzătoare podCIDR valoare și adăugați-le din nou la cluster

  • actualizați ConfigMap kube-proxy în sistem-kube spatiu de nume

  • adăugați un nou pool de IP în Calico CNI și ștergeți cel vechi, recreați implementările

Actualizați definiția nodurilor:

  1. Obțineți numele nodurilor: kubectl obține nr - în cazul meu este controlor
  2. Salvați definițiile în fișier: kubectl nu obține controler -o yaml > fișier.yaml
  3. Editați | × fişier.yaml -> actualizare podCIDR și podCIDR-uri valorile cu noul interval IP, în cazul dvs 10.203.0.0
  4. Ștergeți nodul vechi și aplicați definiția nouă: kubectl delete no controller && kubectl apply -f file.yaml

Vă rugăm să rețineți că trebuie să faceți acești pași pentru fiecare nod din clusterul dvs.

Actualizați ConfigMap kube-proxy în sistem-kube spatiu de nume

  1. Obțineți configurația actuală a kube-proxy: kubectl obține cm kube-proxy -n kube-system -o yaml > kube-proxy.yaml
  2. Editați | × kube-proxy.yaml -> actualizare ClusterCIDR valoare cu noul interval IP, în cazul dvs 10.203.0.0
  3. Ștergeți vechiul și aplicați nou kube-proxy ConfigMap: kubectl șterge cm kube-proxy -n kube-system && kubectl aplică -f kube-proxy.yaml

Adăugați un nou grup de IP în Calico și ștergeți-l pe cel vechi:

  1. Descărcați binarul Calico și faceți-l executabil:

    sudo curl -o /usr/local/bin/calicoctl -O -L "https://github.com/projectcalico/calicoctl/releases/download/v3.20.0/calicoctl"
    sudo chmod +x /usr/local/bin/calicoctl
    
  2. Adăugați un nou grup de IP:

    calicoctl crea -f -<<EOF
    apiVersion: projectcalico.org/v3
    fel: IPPool
    metadate:
      nume: noua-piscina mea
    specificație:
      cidr: 10.203.0.0/16
      ipipMode: Întotdeauna
      natIeșire: adevărat
    EOF
    

    Verificați dacă există un nou grup de IP: calicoctl get ippool -o wide

  3. Obțineți configurația pentru a dezactiva vechiul pool IP -> calicoctl get ippool -o yaml > pool.yaml

  4. Editați configurația: -> adăugați dezactivat: adevărat pentru implicit-ipv4-ippool în bazin.yaml:

    apiVersion: projectcalico.org/v3
    articole:
    - apiVersion: projectcalico.org/v3
      fel: IPPool
      metadate:
        CreationTimestamp: "2021-08-12T07:50:24Z"
        nume: default-ipv4-ippool
        resourceVersion: „666”
      specificație:
        Dimensiune bloc: 26
        cidr: 10.201.0.0/16
        ipipMode: Întotdeauna
        natIeșire: adevărat
        nodeSelector: all()
        vxlanMode: Niciodată
        dezactivat: adevărat
    
  5. Aplicați o nouă configurație: calictoctl aplica -f pool.yaml

    Ieșire exceptată de la calicoctl get ippool -o wide comanda:

    NUME CIDR NAT IPIPMODE VXLANMODE SELECTOR DEZACTIVAT   
    default-ipv4-ippool 10.201.0.0/16 true Întotdeauna Niciodată adevărat all()      
    my-new-pool 10.203.0.0/16 true Întotdeauna Niciodată fals all()      
    
  6. Recreează podurile care sunt în 10.201.0.0 rețea (în fiecare spațiu de nume, inclusiv sistem-kube namespace): ștergeți-le și ar trebui să se recreeze instantaneu în noul interval de IP-uri, de exemplu:

    kubectl șterge pod calico-kube-controllers-58497c65d5-rgdwl -n kube-system
    kubectl șterge pods coredns-78fcd69978-xcz88 -n kube-system
    kubectl șterge pod nginx-deployment-66b6c48dd5-5n6nw
    etc..
    

    De asemenea, puteți șterge și aplica implementări.

După aplicarea acelor pași, nu există niciun avertisment clusterCIDR valoare la adăugarea unui nod nou. Noile poduri sunt create în intervalul adecvat de grup IP.

Sursă:

sfgroups avatar
drapel cn
Actualizat la valoarea „10.203.0.0”, dar încă se creează pod cu adresa „10.201.0.0.”. așa `coredns-85d9df8444-8dpql 1/1 Alergare 0 10m 10.201.22.206`
sfgroups avatar
drapel cn
Calico are intervalul de adrese IP pentru poduri, trebuie să schimbăm și acest lucru pentru a se potrivi cu podcidr? `calicoctl get ippool -o wide NUME CIDR NAT IPIPMODE VXLANMODE SELECTOR DEZACTIVAT default-ipv4-ippool 10.201.0.0/16 true Întotdeauna Niciodată fals all()`
Mikolaj S. avatar
drapel cn
Bună idee, greșeala mea. Mi-am editat răspunsul cum să-l repar. Vă rog să-l verificați și să-mi spuneți dacă funcționează.
sfgroups avatar
drapel cn
Văd pașii, e crayz, încă pod fiind creat în subrețeaua `10.201.0.0`. aici calico pool `# calicoctl get ippool -o wide NUME CIDR NAT IPIPMODE VXLANMODE SELECTOR DEZACTIVAT default-ipv4-ippool 10.201.0.0/16 true Întotdeauna Niciodată fals all() my-new-pool 10.203.0.0/16 adevărat Întotdeauna Niciodată adevărat All() `
Mikolaj S. avatar
drapel cn
Din rezultatul pe care l-ați trimis, se pare că ați dezactivat subrețeaua `10.203.0.0`, în loc de `10.201.0.0` ;)
Mikolaj S. avatar
drapel cn
Am adăugat rezultatul exceptat la răspunsul meu.
sfgroups avatar
drapel cn
Bună captură, am trecut cu vederea rezultatul. Multumesc pentru ajutor.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.