Dell NativeEdge : Comment résoudre les limites de taux d’extraction lors de la tentative de déploiement de Calico pour le déploiement de NativeEdge
Resumen: Cet article explique comment s’authentifier auprès de Docker Hub pour éviter les problèmes de limite de débit de téléchargement.
Este artículo se aplica a
Este artículo no se aplica a
Este artículo no está vinculado a ningún producto específico.
No se identifican todas las versiones del producto en este artículo.
Síntomas
Pour NativeEdge Orchestrator 2.1.0.0, Calico est recommandé en tant qu’interface réseau de conteneur (CNI)
Les instructions de modification pour l’installation de Calico sont contenues dans le Guide de déploiement de NativeEdge Orchestrator. Toutefois, au cours du processus d’installation de Calico, il est téléchargé à partir de Docker Hub. Docker Hub implémente une limite de débit de téléchargement, qui peut être rencontrée lors de l’installation de Calico. (Vous trouverez plus de détails sur la limite de débit sur docker.com.)
Lorsque l’utilisateur répertorie les pods après l’installation, il peut voir que le pod calico se trouve dans un fichier Init :ImagePullBackOff, ce qui indique qu’il existe des problèmes lors du téléchargement du conteneur.
Cela peut être vu plus en détail lorsque nous décrivons le pod calico-node
Comme l’utilisateur peut le voir ci-dessus, le pod ne parvient pas à se télécharger en raison de :
« Too Many Requests - Server message : toomanyrequests : Vous avez atteint votre limite de taux d’extraction. Vous pouvez augmenter la limite en vous authentifiant et en mettant à niveau : https://www.docker.com/increase-rate-limit »
Les instructions de modification pour l’installation de Calico sont contenues dans le Guide de déploiement de NativeEdge Orchestrator. Toutefois, au cours du processus d’installation de Calico, il est téléchargé à partir de Docker Hub. Docker Hub implémente une limite de débit de téléchargement, qui peut être rencontrée lors de l’installation de Calico. (Vous trouverez plus de détails sur la limite de débit sur docker.com.)
Lorsque l’utilisateur répertorie les pods après l’installation, il peut voir que le pod calico se trouve dans un fichier Init :ImagePullBackOff, ce qui indique qu’il existe des problèmes lors du téléchargement du conteneur.
#kubectl get pods -A NAMESPACE NAME READY STATUS RESTARTS AGE kube-system local-path-provisioner-957fdf8bc-cl2nl 0/1 Pending 0 6m50s kube-system metrics-server-648b5df564-bncjh 0/1 Pending 0 6m50s kube-system coredns-77ccd57875-cng6c 0/1 Pending 0 6m50s kube-system calico-kube-controllers-67c64d8b8f-p868c 0/1 Pending 0 6m39s kube-system calico-node-6q82x 0/1 Init:ImagePullBackOff 0 6m37s
Cela peut être vu plus en détail lorsque nous décrivons le pod calico-node
#kubectl describe pod calico-node-6q82x -n kube-system Name: calico-node-xscmk Namespace: kube-system .. Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 2m4s default-scheduler Successfully assigned kube-system/calico-node-xscmk to sre08129 Warning Failed 81s (x2 over 2m2s) kubelet Failed to pull image "docker.io/calico/cni:v3.28.0": rpc error: code = Unknown desc = failed to pull and unpack image "docker.io/calico/cni:v3.28.0": failed to copy: httpReadSeeker: failed open: unexpected status code https://registry-1.docker.io/v2/calico/cni/manifests/sha256:7a3a5cf6c79243ba2de9eef8cb20fac7c46ef75b858956b9884b0ce87b9a354d: 429 Too Many Requests - Server message: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit Normal Pulling 41s (x4 over 2m3s) kubelet Pulling image "docker.io/calico/cni:v3.28.0" Warning Failed 40s (x2 over 106s) kubelet Failed to pull image "docker.io/calico/cni:v3.28.0": rpc error: code = Unknown desc = failed to pull and unpack image "docker.io/calico/cni:v3.28.0": failed to copy: httpReadSeeker: failed open: unexpected status code https://registry-1.docker.io/v2/calico/cni/manifests/sha256:cef0c907b8f4cadc63701d371e6f24d325795bcf0be84d6a517e33000ff35f70: 429 Too Many Requests - Server message: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit Warning Failed 40s (x4 over 2m2s) kubelet Error: ErrImagePull Normal BackOff 13s (x6 over 2m1s) kubelet Back-off pulling image "docker.io/calico/cni:v3.28.0" Warning Failed 13s (x6 over 2m1s) kubelet Error: ImagePullBackOff
Comme l’utilisateur peut le voir ci-dessus, le pod ne parvient pas à se télécharger en raison de :
« Too Many Requests - Server message : toomanyrequests : Vous avez atteint votre limite de taux d’extraction. Vous pouvez augmenter la limite en vous authentifiant et en mettant à niveau : https://www.docker.com/increase-rate-limit »
Causa
Ce problème se produit en raison des limites de taux d’extraction définies par dockerhub - voir https://www.docker.com/increase-rate-limit pour plus d’informations .
Resolución
Si l’utilisateur utilise un compte Docker Hub authentifié, cela signifie que l’utilisateur peut avoir une limite de taux d’extraction individuelle plus élevée.
- Créer un compte sur docker.io
- Créez un secret dans l’espace de nommage kube-system. Cet exemple crée un code secret appelé regcred à l’aide des informations d’identification utilisées pour enregistrer un compte sur docker.io
kubectl create secret docker-registry regcred --docker-server=https://index.docker.io/v1/ --docker-username=dockeriousername --docker-password=dockeriopassword --docker-email=emailusertoregsisterondockerio --namespace="kube-system"
- L’utilisateur doit modifier le fichier calico.yaml pour utiliser le code secret (regcred) qui vient d’être créé.
- À l’intérieur de template.spec, l’utilisateur doit inclure les éléments suivants :
imagePullSecrets: - name: regcred- À titre de référence, voici un exemple concret :
spec: selector: matchLabels: k8s-app: calico-node ... template: metadata: labels: k8s-app: calico-node spec: nodeSelector: ... hostNetwork: true tolerations: ... serviceAccountName: calico-node ... initContainers: ... imagePullSecrets: - name: regcred - Important : Seul le modèle calico-node nécessite l’ajout de la fonctionnalité imagePullSecrets.
- À titre de référence, voici un exemple concret :
- Appliquer calico.yaml après les modifications
kubectl apply -f calico.yaml poddisruptionbudget.policy/calico-kube-controllers created serviceaccount/calico-kube-controllers created serviceaccount/calico-node created serviceaccount/calico-cni-plugin created configmap/calico-config created customresourcedefinition.apiextensions.k8s.io/bgpconfigurations.crd.projectcalico.org created customresourcedefinition.apiextensions.k8s.io/bgpfilters.crd.projectcalico.org created customresourcedefinition.apiextensions.k8s.io/bgppeers.crd.projectcalico.org created customresourcedefinition.apiextensions.k8s.io/blockaffinities.crd.projectcalico.org created customresourcedefinition.apiextensions.k8s.io/caliconodestatuses.crd.projectcalico.org created customresourcedefinition.apiextensions.k8s.io/clusterinformations.crd.projectcalico.org created customresourcedefinition.apiextensions.k8s.io/felixconfigurations.crd.projectcalico.org created customresourcedefinition.apiextensions.k8s.io/globalnetworkpolicies.crd.projectcalico.org created customresourcedefinition.apiextensions.k8s.io/globalnetworksets.crd.projectcalico.org created customresourcedefinition.apiextensions.k8s.io/hostendpoints.crd.projectcalico.org created customresourcedefinition.apiextensions.k8s.io/ipamblocks.crd.projectcalico.org created customresourcedefinition.apiextensions.k8s.io/ipamconfigs.crd.projectcalico.org created customresourcedefinition.apiextensions.k8s.io/ipamhandles.crd.projectcalico.org created customresourcedefinition.apiextensions.k8s.io/ippools.crd.projectcalico.org created customresourcedefinition.apiextensions.k8s.io/ipreservations.crd.projectcalico.org created customresourcedefinition.apiextensions.k8s.io/kubecontrollersconfigurations.crd.projectcalico.org created customresourcedefinition.apiextensions.k8s.io/networkpolicies.crd.projectcalico.org created customresourcedefinition.apiextensions.k8s.io/networksets.crd.projectcalico.org created clusterrole.rbac.authorization.k8s.io/calico-kube-controllers created clusterrole.rbac.authorization.k8s.io/calico-node created clusterrole.rbac.authorization.k8s.io/calico-cni-plugin created clusterrolebinding.rbac.authorization.k8s.io/calico-kube-controllers created clusterrolebinding.rbac.authorization.k8s.io/calico-node created clusterrolebinding.rbac.authorization.k8s.io/calico-cni-plugin created daemonset.apps/calico-node created deployment.apps/calico-kube-controllers created
- L’utilisateur doit voir le cluster Kubernetes fonctionner correctement.
kubectl get po -A NAMESPACE NAME READY STATUS RESTARTS AGE kube-system local-path-provisioner-957fdf8bc-x5bn6 1/1 Running 0 22h kube-system coredns-77ccd57875-hf82q 1/1 Running 0 22h kube-system calico-kube-controllers-8498bff86b-tprzt 1/1 Running 0 9m18s kube-system calico-node-pxwqm 1/1 Running 0 9m18s kube-system metrics-server-648b5df564-xdh4h 1/1 Running 0 22h
Productos afectados
NativeEdge Solutions, NativeEdgePropiedades del artículo
Número del artículo: 000225940
Tipo de artículo: Solution
Última modificación: 01 oct 2024
Versión: 4
Encuentre respuestas a sus preguntas de otros usuarios de Dell
Servicios de soporte
Compruebe si el dispositivo está cubierto por los servicios de soporte.