Vì một số lý do, tôi đã phải xây dựng một cụm Kubernetes không có kết nối Internet.
Vì dockershim không được dùng nữa, tôi đã quyết định sử dụng containerd làm CRI, nhưng quá trình cài đặt ngoại tuyến với kubeadm không thành công trong khi thực thi khởi tạo kubeadm
do hết thời gian chờ.
Thật không may, một lỗi đã xảy ra:
hết thời gian chờ điều kiện
Lỗi này có thể do:
- Kubelet không chạy
- Kubelet không hoạt động tốt do cấu hình sai của nút theo một cách nào đó (các nhóm bắt buộc bị vô hiệu hóa)
Nếu bạn đang sử dụng hệ thống do systemd hỗ trợ, bạn có thể thử khắc phục lỗi bằng các lệnh sau:
- 'kubelet trạng thái systemctl'
- 'journalctl -xeu kubelet'
Và tôi có thể thấy rất nhiều nhật ký lỗi do tạp chíctl -u kubelet -f
:
11 24 16:25:25 rhel8 kubelet[9299]: E1124 16:25:25.473188 9299 controller.go:144] không thể đảm bảo hợp đồng thuê tồn tại, sẽ thử lại sau 7 giây, lỗi: Nhận "https://133.117.20.57:6443 /apis/coordinate.k8s.io/v1/namespaces/kube-node-lease/lease/rhel8?timeout=10s": quay số tcp 133.117.20.57:6443: kết nối: kết nối bị từ chối
11 24 16:25:25 rhel8 kubelet[9299]: E1124 16:25:25.533555 9299 kubelet.go:2407] "Lỗi khi nhận nút" err="không tìm thấy nút \"rhel8\""
11 24 16:25:25 rhel8 kubelet[9299]: I1124 16:25:25.588986 9299 kubelet_node_status.go:71] "Đang cố đăng ký nút" node="rhel8"
11 24 16:25:25 rhel8 kubelet[9299]: E1124 16:25:25.589379 9299 kubelet_node_status.go:93] "Không thể đăng ký nút với máy chủ API" err="Post \"https://133.117.20.57:6443 /api/v1/nodes\": quay số tcp 133.117.20.57:6443: kết nối: kết nối bị từ chối" node="rhel8"
11 24 16:25:25 rhel8 kubelet[9299]: E1124 16:25:25.634625 9299 kubelet.go:2407] "Lỗi khi nhận nút" err="không tìm thấy nút \"rhel8\""
11 24 16:25:25 rhel8 kubelet[9299]: E1124 16:25:25.735613 9299 kubelet.go:2407] "Lỗi khi nhận nút" err="không tìm thấy nút \"rhel8\""
11 24 16:25:25 rhel8 kubelet[9299]: E1124 16:25:25.835815 9299 kubelet.go:2407] "Lỗi khi nhận nút" err="không tìm thấy nút \"rhel8\""
11 24 16:25:25 rhel8 kubelet[9299]: E1124 16:25:25.936552 9299 kubelet.go:2407] "Lỗi khi nhận nút" err="không tìm thấy nút \"rhel8\""
11 24 16:25:26 rhel8 kubelet[9299]: E1124 16:25:26.036989 9299 kubelet.go:2407] "Lỗi khi nhận nút" err="không tìm thấy nút \"rhel8\""
11 24 16:25:26 rhel8 kubelet[9299]: E1124 16:25:26.137464 9299 kubelet.go:2407] "Lỗi khi nhận nút" err="không tìm thấy nút \"rhel8\""
11 24 16:25:26 rhel8 kubelet[9299]: E1124 16:25:26.238594 9299 kubelet.go:2407] "Lỗi khi nhận nút" err="không tìm thấy nút \"rhel8\""
11 24 16:25:26 rhel8 kubelet[9299]: E1124 16:25:26.338704 9299 kubelet.go:2407] "Lỗi khi nhận nút" err="không tìm thấy nút \"rhel8\""
11 24 16:25:26 rhel8 kubelet[9299]: E1124 16:25:26.394465 9299 event.go:273] Không thể ghi sự kiện: '&v1.Event{TypeMeta:v1.TypeMeta{Kind:"", APIVersion:" "}, 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), Nhãn:map[string]string(nil), Annotations:map[string]string(nil), OwnerReferences:[]v1.OwnerReference(nil), Finalizers:[]string(nil), ClusterName:"", ManagedFields:[]v1.ManagedFieldsEntry(nil)}, InvolvedObject:v1.ObjectReference{Kind:"Node", Namespace:"", Name:"rhel8", UID:"rhel8", APIVersion:"", ResourceVersion:"" , FieldPath:""}, Lý do:"Đang bắt đầu", Thông báo:"Đang bắt đầu kubelet.", Nguồn:v1.EventSource{Thành phần:"kubelet", Máy chủ lưu trữ:"rhel8"}, FirstTimestamp:v1.Time{Time:time. Thời gian{wall:0xc05f9812b2b227d8, ext:5706873656, loc:(*ti me.Location)(0x55a228f25680)}}, LastTimestamp:v1.Time{Time:time.Time{wall:0xc05f9812b2b227d8, ext:5706873656, loc:(*time.Location)(0x55a228f25680)}}, Đếm:1, Loại: "Normal", EventTime:v1.MicroTime{Time:time.Time{wall:0x0, ext:0, loc:(*time.Location)(nil)}}, Series:(*v1.EventSeries)(nil), Hành động:"", Liên quan:(*v1.ObjectReference)(nil), ReportingController:"", ReportingInstance:""}': 'Đăng "https://133.117.20.57:6443/api/v1/namespaces/default/ sự kiện": quay số tcp 133.117.20.57:6443: kết nối: kết nối bị từ chối' (có thể thử lại sau khi ngủ)
11 24 16:25:27 rhel8 kubelet[9299]: E1124 16:25:27.143503 9299 kubelet.go:2407] "Lỗi khi nhận nút" err="không tìm thấy nút \"rhel8\""
11 24 16:25:27 rhel8 kubelet[9299]: E1124 16:25:27.244526 9299 kubelet.go:2407] "Lỗi khi nhận nút" err="không tìm thấy nút \"rhel8\""
11 24 16:25:27 rhel8 kubelet[9299]: E1124 16:25:27.302890 9299 remote_runtime.go:116] "RunPodSandbox từ dịch vụ thời gian chạy không thành công" err="rpc error: code = Unknown desc = fail to get sandbox image \ "k8s.gcr.io/pause:3.2\": không thể kéo hình ảnh \"k8s.gcr.io/pause:3.2\": không thể kéo và giải nén hình ảnh \"k8s.gcr.io/pause:3.2\" : không giải quyết được tham chiếu \"k8s.gcr.io/pause:3.2\": không thực hiện được yêu cầu: Đầu \"https://k8s.gcr.io/v2/pause/manifests/3.2\": quay số tcp: tra cứu k8s.gcr.io trên [::1]:53: đọc udp [::1]:39732->[::1]:53: đọc: kết nối bị từ chối"
11 24 16:25:27 rhel8 kubelet[9299]: E1124 16:25:27.302949 9299 kuberuntime_sandbox.go:70] "Không thể tạo hộp cát cho nhóm" err="rpc error: code = Unknown desc = fail to get sandbox image \"k8s.gcr.io/pause:3.2\": không thể kéo hình ảnh \"k8s.gcr.io/pause:3.2\": không thể kéo và giải nén hình ảnh \"k8s.gcr.io/pause:3.2\ ": không thể giải quyết tham chiếu \"k8s.gcr.io/pause:3.2\": không thể thực hiện yêu cầu: Đầu \"https://k8s.gcr.io/v2/pause/manifests/3.2\": quay số tcp : tra cứu k8s.gcr.io trên [::1]:53: read udp [::1]:39732->[::1]:53: read: kết nối bị từ chối" pod="kube-system/kube-scheduler -rhel8"
11 24 16:25:27 rhel8 kubelet[9299]: E1124 16:25:27.302989 9299 kuberuntime_manager.go:815] "Không thể tạo PodSandbox cho nhóm" err="rpc error: code = Unknown desc = fail to get sandbox image \" k8s.gcr.io/pause:3.2\": không thể kéo hình ảnh \"k8s.gcr.io/pause:3.2\": không thể kéo và giải nén hình ảnh \"k8s.gcr.io/pause:3.2\": không giải quyết được tham chiếu \"k8s.gcr.io/pause:3.2\": không thực hiện được yêu cầu: Head \"https://k8s.gcr.io/v2/pause/manifests/3.2\": quay số tcp: tra cứu k8s.gcr.io trên [::1]:53: read udp [::1]:39732->[::1]:53: read: kết nối bị từ chối" pod="kube-system/kube-scheduler-rhel8 "
11 24 16:25:27 rhel8 kubelet[9299]: E1124 16:25:27.303080 9299 pod_workers.go:765] "Lỗi khi đồng bộ hóa nhóm, bỏ qua" err="failed to \"CreatePodSandbox\" for \"kube-scheduler- rhel8_kube-system(e5616b23d0312e4995fcb768f04aabbb)\" với CreatePodSandboxError: \"Không thể tạo sandbox cho nhóm \"kube-scheduler-rhel8_kube-system(e5616b23d0312e4995fcb768f04aabbb)\": rpc code = Unknown dessboxc: fail to get sandbox hình ảnh \"k8s.gcr.io/pause:3.2\": không thể kéo hình ảnh \"k8s.gcr.io/pause:3.2\": không thể kéo và giải nén hình ảnh \ "k8s.gcr.io/pause:3.2\": không giải quyết được tham chiếu \"k8s.gcr.io/pause:3.2\": không thực hiện được yêu cầu: Head \"https:/ /k8s.gcr.io/v2/pause/manifests/3.2\": quay số tcp: tra cứu k8s.gcr.io trên [::1]:53: đọc udp [::1]:39732->[: :1]:53: đã đọc: kết nối bị từ chối\"" pod="kube-system/kube-scheduler-rhel8" podUID=e5616b23d0312e4995fcb768f04aabbb
Khi tôi làm điều tương tự với kết nối Internet, cài đặt thành công. Và khi sử dụng docker thay vì containerd, việc cài đặt được thực hiện thành công ngay cả khi không có kết nối Internet.