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.