Tôi cố gắng cài đặt một cụm nút duy nhất trên centos 7, với kubam 1.24 và với containerd,
tôi đã làm theo các bước cài đặt,
và tôi đã:
cấu hình containerd mặc định > /etc/containerd/config.toml
và thông qua: SystemdCgroup = true
nhưng kubeadm init không thành công tại:
[root@master-node .kube]# kubeadm init
[init] Sử dụng phiên bản Kubernetes: v1.24.0
[preflight] Chạy kiểm tra trước chuyến bay
[CẢNH BÁO HTTPProxy]: Kết nối với "https://10.XXXXXXX" sử dụng proxy "http://proxy-XXXXXXXXX.com:8080/". Nếu điều đó không có ý định, hãy điều chỉnh cài đặt proxy của bạn
[CẢNH BÁO HTTPProxyCIDR]: kết nối tới "10.96.XXXXXXX" sử dụng proxy "http://proxy-XXXXXXXXX.com:8080/". Điều này có thể dẫn đến thiết lập cụm bị trục trặc.Đảm bảo rằng phạm vi IP của Pod và Dịch vụ được chỉ định chính xác làm ngoại lệ trong cấu hình proxy
[preflight] Kéo hình ảnh cần thiết để thiết lập cụm Kubernetes
[preflight] Quá trình này có thể mất một hoặc hai phút, tùy thuộc vào tốc độ kết nối internet của bạn
[preflight] Bạn cũng có thể thực hiện hành động này trước bằng cách sử dụng 'kéo hình ảnh cấu hình kubeadm'
[certs] Sử dụng thư mục certificateDir "/etc/kubernetes/pki"
[certs] Đang tạo khóa và chứng chỉ "ca"
[certs] Đang tạo khóa và chứng chỉ "apiserver"
[certs] chứng chỉ cung cấp apiserver được ký cho tên DNS [kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local master-node] và IP [10.96.0.1 10.XXXXXXX]
[certs] Tạo chứng chỉ và khóa "apiserver-kubelet-client"
[certs] Đang tạo khóa và chứng chỉ "front-proxy-ca"
[certs] Đang tạo khóa và chứng chỉ "front-proxy-client"
[certs] Tạo chứng chỉ và khóa "etcd/ca"
[certs] Đang tạo khóa và chứng chỉ "etcd/server"
[certs] etcd/server server cert được ký cho tên DNS [localhost master-node] và IP [10.XXXXXX 127.0.0.1 ::1]
[certs] Đang tạo khóa và chứng chỉ "etcd/peer"
[certs] chứng chỉ phân phát etcd/peer được ký cho tên DNS [localhost master-node] và IP [10.XXXXXXX 127.0.0.1 ::1]
[certs] Tạo chứng chỉ và khóa "etcd/healthcheck-client"
[certs] Tạo chứng chỉ và khóa "apiserver-etcd-client"
[certs] Tạo khóa "sa" và khóa chung
[kubeconfig] Sử dụng thư mục kubeconfig "/etc/kubernetes"
[kubeconfig] Viết tập tin kubeconfig "admin.conf"
[kubeconfig] Viết tệp kubeconfig "kubelet.conf"
[kubeconfig] Viết tệp kubeconfig "controller-manager.conf"
[kubeconfig] Viết tệp kubeconfig "scheduler.conf"
[kubelet-start] Viết tệp môi trường kubelet có cờ vào tệp "/var/lib/kubelet/kubeadm-flags.env"
[kubelet-start] Viết cấu hình kubelet vào tệp "/var/lib/kubelet/config.yaml"
[kubelet-start] Bắt đầu kubelet
[mặt phẳng điều khiển] Sử dụng thư mục kê khai "/etc/kubernetes/manifests"
[control-plane] Tạo bảng kê khai Pod tĩnh cho "kube-apiserver"
[control-plane] Tạo bảng kê khai Pod tĩnh cho "kube-controller-manager"
[control-plane] Tạo bảng kê khai Pod tĩnh cho "kube-scheduler"
[etcd] Tạo tệp kê khai Pod tĩnh cho etcd cục bộ trong "/etc/kubernetes/manifests"
[wait-control-plane] Chờ kubelet khởi động mặt phẳng điều khiển dưới dạng Pod tĩnh từ thư mục "/etc/kubernetes/manifests". Quá trình này có thể mất tới 4m0s
Đợi kubelet khởi động mặt phẳng điều khiển dưới dạng Pod tĩnh từ thư mục "/etc/kubernetes/manifests". Quá trình này có thể mất tới 4m0s
[kubelet-check] Thời gian chờ ban đầu là 40 giây đã qua.
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 hỗ trợ systemd, 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'
Ngoài ra, một thành phần mặt phẳng điều khiển có thể đã bị lỗi hoặc thoát khi được khởi động bởi thời gian chạy vùng chứa.
Để khắc phục sự cố, hãy liệt kê tất cả các vùng chứa bằng CLI thời gian chạy vùng chứa ưa thích của bạn.
Dưới đây là một ví dụ về cách bạn có thể liệt kê tất cả các bộ chứa Kubernetes đang chạy bằng cách sử dụng crictl:
- 'crictl --runtime-endpoint unix:///var/run/containerd/containerd.sock ps -a | grep kube | grep -v tạm dừng'
Khi bạn đã tìm thấy bộ chứa bị lỗi, bạn có thể kiểm tra nhật ký của nó bằng:
- 'crictl --runtime-endpoint unix:///var/run/containerd/containerd.sock log CONTAINERID'
lỗi thực hiện giai đoạn chờ điều khiển máy bay: không thể khởi tạo cụm Kubernetes
Để xem dấu vết ngăn xếp của lỗi này, hãy thực thi --v=5 hoặc cao hơn
systemctl status kubelet : is Active: đang hoạt động (đang chạy)
và nhật ký : journalctl -xeu kubelet :
mai 20 17:07:05 master-node kubelet[8685]: E0520 17:07:05.715751 8685 kubelet.go:2344] "Mạng thời gian chạy vùng chứa chưa sẵn sàng" networkReady="NetworkReady=false reas
mai 20 17:07:05 master-node kubelet[8685]: E0520 17:07:05.809523 8685 kubelet.go:2419] "Lỗi khi nhận nút" err="không tìm thấy nút \"master-node\""
mai 20 17:07:05 master-node kubelet[8685]: E0520 17:07:05.910121 8685 kubelet.go:2419] "Lỗi khi nhận nút" err="không tìm thấy nút \"master-node\""
mai 20 17:07:06 master-node kubelet[8685]: E0520 17:07:06.010996 8685 kubelet.go:2419] "Lỗi khi nhận nút" err="không tìm thấy nút \"master-node\""
mai 20 17:07:06 master-node kubelet[8685]: E0520 17:07:06.111729 8685 kubelet.go:2419] "Lỗi khi nhận nút" err="không tìm thấy nút \"master-node\""
mai 20 17:07:06 master-node kubelet[8685]: E0520 17:07:06.185461 8685 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://10.3
mai 20 17:07:06 master-node kubelet[8685]: E0520 17:07:06.212834 8685 kubelet.go:2419] "Lỗi khi nhận nút" err="không tìm thấy nút \"master-node\""
mai 20 17:07:06 master-node kubelet[8685]: E0520 17:07:06.313367 8685 kubelet.go:2419] "Lỗi khi nhận nút" err="không tìm thấy nút \"master-node\""
mai 20 17:07:06 master-node kubelet[8685]: E0520 17:07:06.413857 8685 kubelet.go:2419] "Lỗi khi nhận nút" err="không tìm thấy nút \"master-node\""
mai 20 17:07:06 master-node kubelet[8685]: I0520 17:07:06.433963 8685 kubelet_node_status.go:70] "Đang cố đăng ký nút" node="master-node"
mai 20 17:07:06 master-node kubelet[8685]: E0520 17:07:06.434313 8685 kubelet_node_status.go:92] "Không thể đăng ký nút với máy chủ API" err="Post \"https://10.
mai 20 17:07:06 master-node kubelet[8685]: W0520 17:07:06.451759 8685 reflector.go:324] vendor/k8s.io/client-go/informers/factory.go:134: fail to list * v1.CSIDr
mai 20 17:07:06 master-node kubelet[8685]: E0520 17:07:06.451831 8685Reflector.go:138] vendor/k8s.io/client-go/informers/factory.go:134: Không xem được * v1.CSID
mai 20 17:07:06 master-node kubelet[8685]: E0520 17:07:06.514443 8685 kubelet.go:2419] "Lỗi khi nhận nút" err="không tìm thấy nút \"master-node\""
mai 20 17:07:06 master-node kubelet[8685]: E0520 17:07:06.573293 8685 remote_runtime.go:201] "RunPodSandbox từ dịch vụ thời gian chạy không thành công" err="rpc error: code = Un
ngày mai 20 17:07:06 master-node kubelet[8685]: E0520 17:07:06.573328 8685 kuberuntime_sandbox.go:70] "Không thể tạo hộp cát cho nhóm" err="rpc error: code = Unknown
mai 20 17:07:06 master-node kubelet[8685]: E0520 17:07:06.573353 8685 kuberuntime_manager.go:815] "CreatePodSandbox for pod fail" err="rpc error: code = Unknown
mai 20 17:07:06 master-node kubelet[8685]: E0520 17:07:06.573412 8685 pod_workers.go:951] "Lỗi đồng bộ hóa nhóm, bỏ qua" err="failed to \"CreatePodSandbox\" for \"
mai 20 17:07:06 master-node kubelet[8685]: E0520 17:07:06.574220 8685 remote_runtime.go:201] "RunPodSandbox từ dịch vụ thời gian chạy không thành công" err="rpc error: code = Un
mai 20 17:07:06 master-node kubelet[8685]: E0520 17:07:06.574254 8685 kuberuntime_sandbox.go:70] "Không thể tạo hộp cát cho nhóm" err="rpc error: code = Unknown
mai 20 17:07:06 master-node kubelet[8685]: E0520 17:07:06.574279 8685 kuberuntime_manager.go:815] "CreatePodSandbox for pod fail" err="rpc error: code = Unknown
mai 20 17:07:06 master-node kubelet[8685]: E0520 17:07:06.574321 8685 pod_workers.go:951] "Lỗi đồng bộ hóa nhóm, bỏ qua" err="failed to \"CreatePodSandbox\" for \"
mai 20 17:07:06 master-node kubelet[8685]: E0520 17:07:06.615512 8685 kubelet.go:2419] "Lỗi khi nhận nút" err="không tìm thấy nút \"master-node\""
mai 20 17:07:06 master-node kubelet[8685]: E0520 17:07:06.716168 8685 kubelet.go:2419] "Lỗi khi nhận nút" err="không tìm thấy nút \"master-node\""
mai 20 17:07:06 master-node kubelet[8685]: E0520 17:07:06.816764 8685 kubelet.go:2419] "Lỗi khi nhận nút" err="không tìm thấy nút \"master-node\""
Và /var/log/message : có rất nhiều:
Ngày 22 tháng 5 12:50:00 master-node kubelet: E0522 12:50:00.616324 18961 kubelet.go:2344] "Mạng thời gian chạy vùng chứa chưa sẵn sàng" networkReady="NetworkReady=false lý do:NetworkPluginNotReady thông báo:Plugin mạng trả về lỗi: plugin cni chưa được khởi tạo"
và
[root@master-node .kube]# chứa trạng thái systemctl
â containerd.service - thời gian chạy bộ chứa container
Đã tải: đã tải (/usr/lib/systemd/system/containerd.service; đã bật; giá trị đặt sẵn của nhà cung cấp: đã tắt)
Đăng nhập: /etc/systemd/system/containerd.service.d
ââhttp_proxy.conf
Active: đang hoạt động (chạy) từ khi mờ. 22-05-2022 12:28:59 CEST; 22 phút trước
Tài liệu: https://containerd.io
PID chính: 18416 (vùng chứa)
Nhiệm vụ: 111
Bộ nhớ: 414,6M
Nhóm C: /system.slice/containerd.service
ââ18416 /usr/bin/containerd
ââ19025 /usr/bin/containerd-shim-runc-v2 -không gian tên k8s.io -id c7bc656d43ab9b01e546e4fd4ad88634807c836c4e86622cd0506a0b2216c89a -địa chỉ /run/container...
ââ19035 /usr/bin/containerd-shim-runc-v2 -không gian tên k8s.io -id b9097bd741e5b87042b4592d26b46cce5f14a24e609e03c91282a438c2dcd7f8 -địa chỉ /run/container...
ââ19047 /usr/bin/containerd-shim-runc-v2 -không gian tên k8s.io -id 979ac32bd88c094dae25964159066202bab919ca2aea4299827807c0829c3fa2 -địa chỉ /run/container...
ââ19083 /usr/bin/containerd-shim-runc-v2 -không gian tên k8s.io -id a6bcd2c83034531d9907defce5eda846dbdfcf474cbfe0eba7464bb670d5b73d -địa chỉ /run/container...
ââkubepods-burstable-pod07444178f947cc274160582c2d92fd91.slice:cri-containerd:27b2a5932689d1d62fa03024b9b9542e24bc5fda8d5088cbeecf72f66afd4251
â ââ19266 kube-scheduler --authentication-kubeconfig=/etc/kubernetes/scheduler.conf --authorization-kubeconfig=/etc/kubernetes/scheduler.conf --bind-ad...
ââkubepods-burstable-pod817561003fea443230cdbdc318133c3d.slice:cri-containerd:c5c8abc23cb256e2b7f01e767ea18ba6b78f851b68f594349cb6449e2c2c2409
â ââ19259 kube-controller-manager --authentication-kubeconfig=/etc/kubernetes/controller-manager.conf --authorization-kubeconfig=/etc/kubernetes/contro...
ââkubepods-burstable-pod68dc7c99c505d2f1495ca6aaa1fe2ba6.slice:cri-containerd:231b0ecd5ad9e49e2276770f235a753b4bac36d0888ef0d1cb24af56e89fa23e
â ââ19246 etcd --advertise-client-urls=https://10.32.67.20:2379 --cert-file=/etc/kubernetes/pki/etcd/server.crt --client- cert-auth=true --data-dir=/var...
ââkubepods-burstable-podc5c33a178f011135df400feb1027e3a5.slice:cri-containerd:9cf36107d9881a5204f01bdc6a45a097a3130ae5c3a237b02dfa03978b21dc42
â ââ19233 kube-apiserver --advertise-address=10.32.67.20 --allow-privileged=true --authorization-mode=Node,RBAC --client-ca-file=/etc/kubernetes /pki/ca...
ââkubepods-burstable-pod817561003fea443230cdbdc318133c3d.slice:cri-containerd:a6bcd2c83034531d9907defce5eda846dbdfcf474cbfe0eba7464bb670d5b73d
â ââ19140 /tạm dừng
ââkubepods-burstable-pod07444178f947cc274160582c2d92fd91.slice:cri-containerd:c7bc656d43ab9b01e546e4fd4ad88634807c836c4e86622cd0506a0b2216c89a
â ââ19133 /tạm dừng
ââkubepods-burstable-pod68dc7c99c505d2f1495ca6aaa1fe2ba6.slice:cri-containerd:b9097bd741e5b87042b4592d26b46cce5f14a24e609e03c91282a438c2dcd7f8
â ââ19124 /tạm dừng
ââkubepods-burstable-podc5c33a178f011135df400feb1027e3a5.slice:cri-containerd:979ac32bd88c094dae25964159066202bab919ca2aea4299827807c0829c3fa2
ââ19117 /tạm dừng
mai 22 12:45:56 master-node containerd[18416]: time="2022-05-22T12:45:56.146209618+02:00" level=info msg="StartContainer for \"231b0ecd5ad9e49e2276770f23...9fa23e\""
mai 22 12:45:56 master-node containerd[18416]: time="2022-05-22T12:45:56.151240012+02:00" level=info msg="CreateContainer trong sandbox \"c7bc656d43ab9b01e546e4f...
mai 22 12:45:56 master-node containerd[18416]: time="2022-05-22T12:45:56.151540207+02:00" level=info msg="StartContainer for \"27b2a5932689d1d62fa03024b9...fd4251\""
mai 22 12:45:56 master-node containerd[18416]: time="2022-05-22T12:45:56.164666904+02:00" level=info msg="CreateContainer in sandbox \"a6bcd2c83034531d9907def...
mai 22 12:45:56 master-node containerd[18416]: time="2022-05-22T12:45:56.166282219+02:00" level=info msg="StartContainer for \"c5c8abc23cb256e2b7f01e767e...2c2409\""
mai 22 12:45:56 master-node containerd[18416]: time="2022-05-22T12:45:56.277928704+02:00" level=info msg="StartContainer for \"9cf36107d9881a5204f01bdc6a...essfully"
mai 22 12:45:56 master-node containerd[18416]: time="2022-05-22T12:45:56.288703134+02:00" level=info msg="StartContainer for \"c5c8abc23cb256e2b7f01e767e...essfully"
mai 22 12:45:56 master-node containerd[18416]: time="2022-05-22T12:45:56.290631867+02:00" level=info msg="StartContainer for \"231b0ecd5ad9e49e2276770f23...essfully"
mai 22 12:45:56 master-node containerd[18416]: time="2022-05-22T12:45:56.293864738+02:00" level=info msg="StartContainer for \"27b2a5932689d1d62fa03024b9...essfully"
mai 22 12:46:55 master-node containerd[18416]: time="2022-05-22T12:46:55.476960835+02:00" level=error msg="ContainerStatus for \"58ef67cb3c64c5032bf0dac6f1913e53e...
Gợi ý: Một số dòng có hình elip, sử dụng -l để hiển thị đầy đủ.
[root@master-node .kube]# systemctl status kubelet
â kubelet.service - kubelet: Tác nhân nút Kubernetes
Đã tải: đã tải (/usr/lib/systemd/system/kubelet.service; đã bật; giá trị đặt sẵn của nhà cung cấp: đã tắt)
Truy cập: /usr/lib/systemd/system/kubelet.service.d
ââ10-kubeadm.conf
Active: đang hoạt động (chạy) từ khi mờ. 2022-05-22 12:45:55 CEST; 6 phút trước
Tài liệu: https://kubernetes.io/docs/
PID chính: 18961 (kubelet)
Nhiệm vụ: 16
Bộ nhớ: 44,2M
Nhóm C: /system.slice/kubelet.service
ââ18961 /usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --config=/var/lib/ kube...
ngày mai 22 12:51:25 master-node kubelet[18961]: E0522 12:51:25.632732 18961 kubelet.go:2344] "Mạng thời gian chạy vùng chứa chưa sẵn sàng" networkReady="NetworkRe...itialized"
mai 22 12:51:30 master-node kubelet[18961]: E0522 12:51:30.633996 18961 kubelet.go:2344] "Mạng thời gian chạy vùng chứa chưa sẵn sàng" networkReady="NetworkRe...itialized"
ngày mai 22 12:51:35 master-node kubelet[18961]: E0522 12:51:35.634586 18961 kubelet.go:2344] "Mạng thời gian chạy vùng chứa chưa sẵn sàng" networkReady="NetworkRe...itialized"
mai 22 12:51:40 master-node kubelet[18961]: E0522 12:51:40.635415 18961 kubelet.go:2344] "Mạng thời gian chạy vùng chứa chưa sẵn sàng" networkReady="NetworkRe...itialized"
mai 22 12:51:45 master-node kubelet[18961]: E0522 12:51:45.636621 18961 kubelet.go:2344] "Mạng thời gian chạy vùng chứa chưa sẵn sàng" networkReady="NetworkRe...itialized"
mai 22 12:51:50 master-node kubelet[18961]: E0522 12:51:50.637966 18961 kubelet.go:2344] "Mạng thời gian chạy vùng chứa chưa sẵn sàng" networkReady="NetworkRe...itialized"
ngày mai 22 12:51:55 master-node kubelet[18961]: E0522 12:51:55.639255 18961 kubelet.go:2344] "Mạng thời gian chạy vùng chứa chưa sẵn sàng" networkReady="NetworkRe...itialized"
mai 22 12:52:00 master-node kubelet[18961]: E0522 12:52:00.640514 18961 kubelet.go:2344] "Mạng thời gian chạy vùng chứa chưa sẵn sàng" networkReady="NetworkRe...itialized"
mai 22 12:52:05 master-node kubelet[18961]: E0522 12:52:05.641452 18961 kubelet.go:2344] "Mạng thời gian chạy vùng chứa chưa sẵn sàng" networkReady="NetworkRe...itialized"
ngày mai 22 12:52:10 master-node kubelet[18961]: E0522 12:52:10.642237 18961 kubelet.go:2344] "Mạng thời gian chạy vùng chứa chưa sẵn sàng" networkReady="NetworkRe...itialized"
Gợi ý: Một số dòng có hình elip, sử dụng -l để hiển thị đầy đủ.
và
[root@master-node yum.repos.d]# rpm -qa|grep containerd
containerd.io-1.6.4-3.1.el7.x86_64
[root@master-node yum.repos.d]# rpm -qa |grep kube
kubeadm-1.24.0-0.x86_64
kubectl-1.24.0-0.x86_64
kubelet-1.24.0-0.x86_64
kubernetes-cni-0.8.7-0.x86_64
Ngoài ra, tôi đã cố cài đặt Calico:
[root@master-node .kube]# áp dụng kubectl -f calico.yaml
Kết nối với máy chủ localhost:8080 bị từ chối - bạn đã chỉ định đúng máy chủ hoặc cổng chưa?
và
[root@master-node ~]# cat /usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf
# Lưu ý: Dropin này chỉ hoạt động với kubeadm và kubelet v1.11+
[Dịch vụ]
Môi trường="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf"
Môi trường="KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml"
Môi trường="KUBELET_KUBEADM_ARGS=--node-ip=10.XXXXXX --container-runtime=remote --container-runtime-endpoint=/run/containerd/containerd.sock --cgroup-driver=systemd
# Đây là tệp mà "kubeadm init" và "kubeadm join" tạo ra trong thời gian chạy, tự động điền biến KUBELET_KUBEADM_ARGS
Tệp môi trường=-/var/lib/kubelet/kubeadm-flags.env
# Đây là tệp mà người dùng có thể sử dụng để ghi đè đối số kubelet như là phương sách cuối cùng. Tốt nhất, người dùng nên sử dụng
# thay vào đó, đối tượng .NodeRegistration.KubeletExtraArgs trong tệp cấu hình. KUBELET_EXTRA_ARGS phải được lấy từ tệp này.
Tệp môi trường=-/etc/sysconfig/kubelet
ExecStart=
ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS
tôi không thể hiểu nếu:
[chỉnh sửa: tôi trả lời các câu hỏi của mình bên dưới]
- do containerd, tôi phải chạy kubeadm init --config.yaml ? trả lời : => [KHÔNG]
- nếu tôi phải cài đặt CNI như Calico trước? câu trả lời : => [KHÔNG kubeadm init có thể ổn nếu không có]
[chỉnh sửa] cài đặt tương tự vẫn ổn với google dns và không có proxy công ty.