微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法在Ubuntu 18.04Virtual Box上初始化Kubernetes集群

如何解决无法在Ubuntu 18.04Virtual Box上初始化Kubernetes集群

我努力在VirtualBox上使用Ubuntu初始化一个简单的Kubernetes集群。我按照官方文档尝试了服务器和台式机版本:

我还尝试遵循其他方法,认为问题是因为我正在使用VirtualBox VM,就像这样: https://medium.com/@gunjangarge/create-kubernetes-cluster-using-kubeadm-on-ubuntu-virtualbox-step-by-step-68a3eeb1f74c

但是每次我都遇到相同的问题,即端口6443不会被暴露。有时,该过程会正确启动,并提供连接命令:

kubeadm init --pod-network-cidr=192.168.0.0/16
W1029 08:47:53.841460   11540 configset.go:348] WARNING: kubeadm cannot validate component configs 
for API groups [kubelet.config.k8s.io kubeproxy.config.k8s.io]
[init] Using Kubernetes version: v1.19.3
[preflight] Running pre-flight checks
[preflight] Pulling images required for setting up a Kubernetes cluster
[preflight] This might take a minute or two,depending on the speed of your internet connection
[preflight] You can also perform this action in beforehand using 'kubeadm config images pull'
[certs] Using certificateDir folder "/etc/kubernetes/pki"

[addons] Applied essential addon: coredns
[addons] Applied essential addon: kube-proxy

Your Kubernetes control-plane has initialized successfully!

To start using your cluster,you need to run the following as a regular user:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

You should Now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
https://kubernetes.io/docs/concepts/cluster-administration/addons/

Then you can join any number of worker nodes by running the following on each as root:


kubeadm join 192.168.1.192:6443 --token ztNoww.t8ng5a3jo2kx5cb2 \
--discovery-token-ca-cert-hash 
sha256:907dde6cc6d72ed4cd7fe7e7f252e2cf657dd3256fba6ee5ec92027132a9c5af

有时它根本没有启动并且超时:

[wait-control-plane] Waiting for the kubelet to boot up the control plane as static Pods from directory "/etc/kubernetes/manifests". This can take up to 4m0s
[kubelet-check] Initial timeout of 40s passed.

    Unfortunately,an error has occurred:
            timed out waiting for the condition

    This error is likely caused by:
            - The kubelet is not running
            - The kubelet is unhealthy due to a misconfiguration of the node in some way (required cgroups disabled)
    If you are on a systemd-powered system,you can try to troubleshoot the error with the following commands:
            - 'systemctl status kubelet'
            - 'journalctl -xeu kubelet'

    Additionally,a control plane component may have crashed or exited when started by the container runtime.
    To troubleshoot,list all containers using your preferred container runtimes CLI.

    Here is one example how you may list all Kubernetes containers running in docker:
            - 'docker ps -a | grep kube | grep -v pause'
            Once you have found the failing container,you can inspect its logs with:
            - 'docker logs CONTAINERID'

error execution phase wait-control-plane: Couldn't initialize a Kubernetes cluster
To see the stack trace of this error execute with --v=5 or higher

无论如何,即使启动时,端口6443也永远不会暴露,而kubelet对此不满意:

kubelet.service - kubelet: The Kubernetes Node Agent
  Loaded: loaded (/lib/systemd/system/kubelet.service; enabled; vendor preset: enabled)
  Drop-In: /etc/systemd/system/kubelet.service.d
       └─10-kubeadm.conf
 Active: active (running) since Thu 2020-10-29 08:48:15 CET; 20s ago
 Docs: https://kubernetes.io/docs/home/
Main PID: 13262 (kubelet)
Tasks: 14 (limit: 4666)
CGroup: /system.slice/kubelet.service
       └─13262 /usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --config=/var/lib/kubelet/config.yaml --network-plugin=cni --pod-infra-contai

Okt 29 08:48:22 master kubelet[13262]: E1029 08:48:22.588386   13262 controller.go:136] Failed to ensure node lease exists,will retry in 800ms,error: Get 
"https://192.168.1.192:6443/apis/coordination.k8s.io/v1/names
Okt 29 08:48:22 master kubelet[13262]: E1029 08:48:22.785951   13262 reflector.go:127] k8s.io/client-go/informers/factory.go:134: Failed to watch *v1.Service: Failed to list *v1.Service: Get "https://192.168.1.192:644
Okt 29 08:48:23 master kubelet[13262]: I1029 08:48:23.022354   13262 kubelet_node_status.go:70] Attempting to register node master
Okt 29 08:48:24 master kubelet[13262]: I1029 08:48:24.188510   13262 request.go:645] Throttling request took 1.097264312s,request: POST:https://192.168.1.192:6443/api/v1/namespaces/kube-system/pods
Okt 29 08:48:25 master kubelet[13262]: I1029 08:48:25.678880   13262 kubelet_node_status.go:108] Node master was prevIoUsly registered
Okt 29 08:48:25 master kubelet[13262]: I1029 08:48:25.679004   13262 kubelet_node_status.go:73] Successfully registered node master
Okt 29 08:48:25 master kubelet[13262]: W1029 08:48:25.765981   13262 cni.go:239] Unable to update cni config: no networks found in /etc/cni/net.d
Okt 29 08:48:27 master kubelet[13262]: E1029 08:48:27.148246   13262 kubelet.go:2103] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: c
Okt 29 08:48:30 master kubelet[13262]: W1029 08:48:30.767511   13262 cni.go:239] Unable to update cni config: no networks found in /etc/cni/net.d
Okt 29 08:48:32 master kubelet[13262]: E1029 08:48:32.164211   13262 kubelet.go:2103] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: c

我不得不说我不知道​​现在该怎么办。我尝试了多个小时的不同Ubuntu版本,试图在Internet上找到解决方案,但没有找到任何解决方案。我还浏览了日志,发现可能由于任何原因未正确创建配置文件

Failed to load Kubelet config file /var/lib/kubelet/config.yaml,error Failed to read kubelet config file "/var/lib/kubelet/config.yaml

但是我什么都没找到,除了“我尝试过多次初始化集群”。

预先感谢您的帮助!

解决方法

好的,我想我终于找到问题了。我在另一台PC上尝试了相同的过程,并且一切正常,因此对于遇到类似问题的您,请勿尝试同时使用VirtualBox和WSL(即使wsl已关闭)

我只是按照这里的解释进行了操作:https://stackoverflow.com/a/63229718/2428805,现在一切都很好...

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。