Puncte:1

Instalarea offline a kubernetes eșuează când se folosește containerd ca CRI

drapel ao

Din anumite motive, a trebuit să construiesc un cluster Kubernetes fără conexiune la internet.

Deoarece dockershim a fost depreciat, am decis să folosesc containerd ca CRI, dar instalarea offline cu kubeadm a eșuat în timpul executării kubeadm init din cauza timeout-ului.

    Din păcate, a apărut o eroare:
            a expirat în așteptarea stării

    Această eroare este probabil cauzată de:
            - Kubeletul nu rulează
            - Kubelet-ul este nesănătos din cauza unei configurări greșite a nodului într-un fel (cgroups obligatorii dezactivate)

    Dacă sunteți pe un sistem alimentat de sistem, puteți încerca să depanați eroarea cu următoarele comenzi:
            - „systemctl status kubelet”
            - 'journalctl -xeu kubelet'

Și pot vedea o mulțime de jurnale de erori ca urmare a journalctl -u kubelet -f:

11 24 16:25:25 rhel8 kubelet[9299]: E1124 16:25:25.473188 9299 controller.go:144] nu a reușit să se asigure că închirierea există, va reîncerca în 7s, eroare: Obțineți „https://133.117:643. /apis/coordination.k8s.io/v1/namespaces/kube-node-lease/leases/rhel8?timeout=10s": formați tcp 133.117.20.57:6443: conectare: conexiune refuzată
11 24 16:25:25 rhel8 kubelet[9299]: E1124 16:25:25.533555 9299 kubelet.go:2407] „Eroare la obținerea nodului” err="nodul \"rhel8\" nu a fost găsit"
11 24 16:25:25 rhel8 kubelet[9299]: I1124 16:25:25.588986 9299 kubelet_node_status.go:71] "Se încearcă înregistrarea nodului" node="rhel8"
11 24 16:25:25 rhel8 kubelet[9299]: E1124 16:25:25.589379 9299 kubelet_node_status.go:93] „Nu se poate înregistra nodul cu serverul API” err="Postează \" https://133.4177:604. /api/v1/nodes\": formați tcp 133.117.20.57:6443: conectați: conexiune refuzată" node="rhel8"
11 24 16:25:25 rhel8 kubelet[9299]: E1124 16:25:25.634625 9299 kubelet.go:2407] „Eroare la obținerea nodului” err="nodul \"rhel8\" nu a fost găsit"
11 24 16:25:25 rhel8 kubelet[9299]: E1124 16:25:25.735613 9299 kubelet.go:2407] „Eroare la obținerea nodului” err="nodul \"rhel8\" nu a fost găsit"
11 24 16:25:25 rhel8 kubelet[9299]: E1124 16:25:25.835815 9299 kubelet.go:2407] „Eroare la obținerea nodului” err="nodul \"rhel8\" nu a fost găsit"
11 24 16:25:25 rhel8 kubelet[9299]: E1124 16:25:25.936552 9299 kubelet.go:2407] „Eroare la obținerea nodului” err="nodul \"rhel8\" nu a fost găsit"
11 24 16:25:26 rhel8 kubelet[9299]: E1124 16:25:26.036989 9299 kubelet.go:2407] „Eroare la obținerea nodului” err="nodul \"rhel8\" nu a fost găsit"
11 24 16:25:26 rhel8 kubelet[9299]: E1124 16:25:26.137464 9299 kubelet.go:2407] „Eroare la obținerea nodului” err="nodul \"rhel8\" nu a fost găsit"
11 24 16:25:26 rhel8 kubelet[9299]: E1124 16:25:26.238594 9299 kubelet.go:2407] „Eroare la obținerea nodului” err="nodul \"rhel8\" nu a fost găsit"
11 24 16:25:26 rhel8 kubelet[9299]: E1124 16:25:26.338704 9299 kubelet.go:2407] „Eroare la obținerea nodului” err="nodul \"rhel8\" nu a fost găsit"
11 24 16:25:26 rhel8 kubelet[9299]: E1124 16:25:26.394465 9299 event.go:273] Imposibil de scris evenimentul: '&v1.Event{TypeMeta:v1.TypeMeta{Kind:", "}, ObjectMeta:v1.ObjectMeta{Name:"rhel8.16ba6aab63e58bd8", GenerateName:"", Namespace:"default", SelfLink:"", UID:"", ResourceVersion:"", Generation:0, CreationTimestamp:v1 .Time{Time:time.Time{wall:0x0, ext:0, loc:(*time.Location)(nil)}}, DeletionTimestamp:(*v1.Time)(nil), DeletionGracePeriodSeconds:(*int64)( nil), Labels:map[șir]șir(nil), Adnotări:map[șir]șir(nil), OwnerReferences:[]v1.OwnerReference(nil), Finalizeri:[]șir(nil), ClusterName:"", ManagedFields:[]v1.ManagedFieldsEntry(nil)}, InvolvedObject:v1.ObjectReference{Kind:"Node", Namespace:"", Name:"rhel8", UID:"rhel8", APIVersion:"", ResourceVersion:"" , FieldPath:""}, Reason:"Starting", Message:"Starting kubelet.", Source:v1.EventSource{Component:"kubelet", Host:"rhel8"}, FirstTimestamp:v1.Time{Time:time. Ora{wall:0xc05f9812b2b227d8, ext:5706873656, loc:(*ti me.Location)(0x55a228f25680)}}, LastTimestamp:v1.Time{Time:time.Time{wall:0xc05f9812b2b227d8, ext:5706873656, loc:(*time.Location)(0x55a228f:)}, Type:8 Count:)}} „Normal”, EventTime:v1.MicroTime{Time:time.Time{wall:0x0, ext:0, loc:(*time.Location)(nil)}}, Series:(*v1.EventSeries)(nil), Acțiune:"", Înrudit:(*v1.ObjectReference)(nil), ReportingController:"", ReportingInstance:""}': „Postează „https://133.117.20.57:6443/api/v1/namespaces/default/ evenimente": formați tcp 133.117.20.57:6443: conectare: conexiune refuzată" (poate încerca din nou după ce ați dormit)
11 24 16:25:27 rhel8 kubelet[9299]: E1124 16:25:27.143503 9299 kubelet.go:2407] „Eroare la obținerea nodului” err="nodul \"rhel8\" nu a fost găsit"
11 24 16:25:27 rhel8 kubelet[9299]: E1124 16:25:27.244526 9299 kubelet.go:2407] „Eroare la obținerea nodului” err="nodul \"rhel8\" nu a fost găsit"
11 24 16:25:27 rhel8 kubelet[9299]: E1124 16:25:27.302890 9299 remote_runtime.go:116] „RunPodSandbox de la serviciul de execuție a eșuat” err="eroare rpc: codul nu a reușit să obțineți desc. „k8s.gcr.io/pause:3.2\”: nu s-a putut extrage imaginea \"k8s.gcr.io/pause:3.2\": nu s-a putut extrage și despacheta imaginea \"k8s.gcr.io/pause:3.2\" : nu a reușit să rezolve referința \"k8s.gcr.io/pause:3.2\": nu s-a putut face cererea: Head \"https://k8s.gcr.io/v2/pause/manifests/3.2\": formați tcp: căutați k8s.gcr.io pe [::1]:53: citiți udp [::1]:39732->[::1]:53: citiți: conexiune refuzată"
11 24 16:25:27 rhel8 kubelet[9299]: E1124 16:25:27.302949 9299 kuberuntime_sandbox.go:70] „Nu s-a putut crea sandbox pentru pod” err="eroare rpc: codul de desc. necunoscut = imaginea necunoscută a eșuat \"k8s.gcr.io/pause:3.2\": nu s-a putut extrage imaginea \"k8s.gcr.io/pause:3.2\": nu s-a putut extrage și despacheta imaginea \"k8s.gcr.io/pause:3.2\ ": nu s-a rezolvat referința \"k8s.gcr.io/pause:3.2\": nu s-a putut face cererea: Head \"https://k8s.gcr.io/v2/pause/manifests/3.2\": formați tcp : căutați k8s.gcr.io pe [::1]:53: citiți udp [::1]:39732->[::1]:53: citiți: conexiune refuzată" pod="kube-system/kube-scheduler -rhel8"
11 24 16:25:27 rhel8 kubelet[9299]: E1124 16:25:27.302989 9299 kuberuntime_manager.go:815] „CreatePodSandbox for pod failed” err="eroare rpc: codul eșuat: imaginea = necunoscută desc. k8s.gcr.io/pause:3.2\": nu s-a putut extrage imaginea \"k8s.gcr.io/pause:3.2\": nu s-a putut extrage și despacheta imaginea \"k8s.gcr.io/pause:3.2\": Nu s-a reușit să rezolve referința „k8s.gcr.io/pause:3.2”: solicitarea eșuată: Head \"https://k8s.gcr.io/v2/pause/manifests/3.2\": dial tcp: lookup k8s.gcr.io pe [::1]:53: citiți udp [::1]:39732->[::1]:53: citiți: conexiune refuzată" pod="kube-system/kube-scheduler-rhel8 "
11 24 16:25:27 rhel8 kubelet[9299]: E1124 16:25:27.303080 9299 pod_workers.go:765] „Eroare de sincronizare a podului, omiterea” err="eșuat la \"CreatePodSandbox\-scheduler" rhel8_kube-system(e5616b23d0312e4995fcb768f04aabbb)\" cu CreatePodSandboxError: \"Nu s-a putut crea sandbox pentru pod \"kube-scheduler-rhel8_kube-system(e5616b23d04d09: codul de eroare necunoscut = getf23d09b23d09b23d09b) imaginea \"k8s.gcr.io/pause:3.2\": nu s-a putut extrage imaginea \"k8s.gcr.io/pause:3.2\": nu s-a putut extrage și despacheta imaginea \ "k8s.gcr.io/pause:3.2\": nu s-a rezolvat referința \"k8s.gcr.io/pause:3.2\": nu a reușit să execute cererea: Head \"https:/ /k8s.gcr.io/v2/pause/manifests/3.2\": formați tcp: căutați k8s.gcr.io pe [::1]:53: citiți udp [::1]:39732->[: :1]:53: citiți: conexiune refuzată\"" pod="kube-system/kube-scheduler-rhel8" podUID=e5616b23d0312e4995fcb768f04aabbb

Când fac același lucru cu conexiunea la Internet, instalarea reușește. Și când utilizați docker în loc de containerd, instalarea se face cu succes chiar dacă nu există conexiune la internet.

Puncte:3
drapel ao

A fost cauzată de containerd care are setarea să-l tragă sandbox_image de la k8s.gcr.io în mod implicit, chiar dacă nu există conexiune la internet.

Această setare este specificată în jurul liniei 57 din /etc/containerd/config.toml fişier.

   [plugins."io.containerd.grpc.v1.cri"]
     <snip>
     sandbox_image = "k8s.gcr.io/pause:3.2"

Clusterul meu actual k8s este v1.22.1, deci folosește pauze:3.5 mai degrabă decât pauze:3.2. Schimbând aceasta în imaginea existentă (k8s.gcr.io/pause:3.5 de data aceasta), îmi construiesc cu succes clusterul kubernetes fără conexiune la internet.

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.