L'allocation CIDR de kube-controller-manager a échoué

Vérifiez kube-controller-managerl'erreur indiquant que le segment d'adresse IP n'a pas d'adresse IP disponible.

# kubectl logs -f kube-controller-manager-loc-k8s-master -n kube-system
...
I0517 08:56:08.159382       1 event.go:291] "Event occurred" object="loc-node37" kind="Node" apiVersion="v1" type="Normal" reason="CIDRNotAvailable" message="Node loc-node37 status is now: CIDRNotAvailable"
E0517 08:58:55.524439       1 controller_utils.go:260] Error while processing Node Add/Delete: failed to allocate cidr from cluster cidr at idx:0: CIDR allocation failed; there are no remaining CIDRs left to allocate in the accepted range
...

NodeL'allocation de nœuds podCIDRdoit être kube-controller-manageractivée . Lorsqu'il est utilisé avec le paramètre, il allouera des segments IP de conteneur pour toutes les ressources et écrira le résultat dans le champ. Vérifiez le fichier de configuration de l'environnement pour trouver le problème. Comme le montre la figure ci-dessous, l'environnement est défini simultanément sur 172.16.100.0/24 et 24. Le paramètre est utilisé pour indiquer la longueur du masque cidr des nœuds du cluster de gestion. La valeur par défaut est 24 bits, et le segment d'adresse doit être alloué à partir de celui-ci, mais le paramètre ne peut évidemment pas satisfaire cette exigence de masque entraîne l' échec de l'attribution d'une adresse au nœud.allocate-node-cidrstruecluster-cidrcontroller-managerNodePodCIDRkube-controller-managercluster-cidrnode-cidr-mask-sizenode-cidr-mask-sizekubernetescluster-cidrcluster-cidrkube-controller-manager

masterModifier kube-controller-managerles --node-cidr-mask-sizeparamètres du fichier de configuration dans

# vim /etc/kubernetes/manifests/kube-controller-manager.yaml
......
    - kube-controller-manager
    - --allocate-node-cidrs=true
    - --authentication-kubeconfig=/etc/kubernetes/controller-manager.conf
    - --authorization-kubeconfig=/etc/kubernetes/controller-manager.conf
    - --bind-address=127.0.0.1
    - --client-ca-file=/etc/kubernetes/pki/ca.crt
    - --cluster-cidr=172.16.100.0/20                 # 修改这个
    - --cluster-name=kubernetes
    - --cluster-signing-cert-file=/etc/kubernetes/pki/ca.crt
    - --cluster-signing-key-file=/etc/kubernetes/pki/ca.key
    - --controllers=*,bootstrapsigner,tokencleaner
    - --kubeconfig=/etc/kubernetes/controller-manager.conf
    - --leader-elect=true
    - --node-cidr-mask-size=20                        # 修改这个
    - --port=0
    - --requestheader-client-ca-file=/etc/kubernetes/pki/front-proxy-ca.crt
    - --root-ca-file=/etc/kubernetes/pki/ca.crt
    - --service-account-private-key-file=/etc/kubernetes/pki/sa.key
    - --service-cluster-ip-range=192.168.0.0/24
    - --use-service-account-credentials=true
......

Elle prendra effet automatiquement après avoir attendu quelques secondes après la modification, pas besoin de redémarrer, kubernetesla version est 1.19.20, et l'erreur ci-dessus ne sera pas signalée si vous vérifiez à nouveau le journal après la modification

# ps -ef|grep controller   # 可以看到启动命令的--node-cidr-mask-size参数已经修改了

# kubectl logs -f kube-controller-manager-loc-master35 -n kube-system

Référence :
https://www.jianshu.com/p/29e9c967f029

Je suppose que tu aimes

Origine blog.csdn.net/qq_25854057/article/details/124827366
conseillé
Classement