Dell NativeEdge: Hoe pull rate-limieten op te lossen bij het implementeren van Calico voor NativeEdge-implementatie
Summary: In dit artikel wordt beschreven hoe u zich kunt verifiëren met Docker Hub om problemen met de downloadsnelheidslimiet te voorkomen.
This article applies to
This article does not apply to
This article is not tied to any specific product.
Not all product versions are identified in this article.
Symptoms
Voor NativeEdge Orchestrator 2.1.0.0 wordt Calico aanbevolen als containernetwerkinterface (CNI)
Instructies voor aanpassingen voor het installeren van Calico vindt u in de NativeEdge Orchestrator-implementatiehandleiding. Tijdens het installatieproces van Calico wordt het echter gedownload van Docker Hub. Docker Hub implementeert een downloadsnelheidslimiet, die kan worden aangetroffen tijdens de installatie van Calico. (Verdere details over de tarieflimiet zijn te vinden op docker.com.)
Wanneer de gebruiker de pods vermeldt na de installatie, kan de gebruiker zien dat de calico-pod zich in een Init:ImagePullBackOff bevindt, wat aangeeft dat er problemen zijn met het downloaden van de container.
Dit is verder te zien wanneer we de calico-node pod beschrijven
Zoals de gebruiker in het bovenstaande kan zien, kan de pod niet worden gedownload vanwege:
"Too many Requests - Server message: toomanyrequests: U hebt uw pull rate-limiet bereikt. U kunt de limiet verhogen door authenticatie en upgrade uit: https://www.docker.com/increase-rate-limit"
Instructies voor aanpassingen voor het installeren van Calico vindt u in de NativeEdge Orchestrator-implementatiehandleiding. Tijdens het installatieproces van Calico wordt het echter gedownload van Docker Hub. Docker Hub implementeert een downloadsnelheidslimiet, die kan worden aangetroffen tijdens de installatie van Calico. (Verdere details over de tarieflimiet zijn te vinden op docker.com.)
Wanneer de gebruiker de pods vermeldt na de installatie, kan de gebruiker zien dat de calico-pod zich in een Init:ImagePullBackOff bevindt, wat aangeeft dat er problemen zijn met het downloaden van de container.
#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
Dit is verder te zien wanneer we de calico-node pod beschrijven
#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
Zoals de gebruiker in het bovenstaande kan zien, kan de pod niet worden gedownload vanwege:
"Too many Requests - Server message: toomanyrequests: U hebt uw pull rate-limiet bereikt. U kunt de limiet verhogen door authenticatie en upgrade uit: https://www.docker.com/increase-rate-limit"
Cause
Dit probleem doet zich voor als gevolg van pull-snelheidslimieten die zijn ingesteld door dockerhub - raadpleeg https://www.docker.com/increase-rate-limit voor meer informatie.
Resolution
Als de gebruiker een geverifieerd Docker-hubaccount gebruikt, betekent dit dat de gebruiker een hogere individuele pull-ratelimiet kan hebben.
- Maak een account aan op docker.io
- Maak een geheim in de kube-system-namespace. In dit voorbeeld wordt een geheim met de naam regcred gemaakt met de referenties die worden gebruikt om een account te registreren op 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"
- De gebruiker moet de calico.yaml bewerken om het geheim (regcred) te gebruiken dat zojuist is gemaakt.
- In template.spec moet de gebruiker het volgende opnemen:
imagePullSecrets: - name: regcred- Ter referentie is hier een echt voorbeeld
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 - Belangrijk: Alleen voor de sjabloon voor het calico-knooppunt moet de functie imagePullSecrets eraan worden toegevoegd.
- Ter referentie is hier een echt voorbeeld
- Pas de calico.yaml toe na de wijzigingen
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
- De gebruiker zou moeten zien dat het Kubernetes-cluster met succes actief is.
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
Affected Products
NativeEdge Solutions, NativeEdgeArticle Properties
Article Number: 000225940
Article Type: Solution
Last Modified: 01 Oct 2024
Version: 4
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.