Minikube永远不会启动 - 错误重启群集

时间:2018-05-27 16:03:43

标签: kubernetes minikube

我使用Arch linux
我安装了virtualbox 5.2.12 我安装了minikube 0.27.0-1 我安装了Kubernetes v1.10.0

当我尝试使用sudo minikube start启动minkube时,我收到此错误

Starting local Kubernetes v1.10.0 cluster...
Starting VM...
Getting VM IP address...
Moving files into cluster...
Setting up certs...
Connecting to cluster...
Setting up kubeconfig...
Starting cluster components...
E0527 12:58:18.929483   22672 start.go:281] Error restarting cluster:  running cmd: 
sudo kubeadm alpha phase certs all --config /var/lib/kubeadm.yaml &&
sudo /usr/bin/kubeadm alpha phase kubeconfig all --config /var/lib/kubeadm.yaml &&
sudo /usr/bin/kubeadm alpha phase controlplane all --config /var/lib/kubeadm.yaml &&
sudo /usr/bin/kubeadm alpha phase etcd local --config /var/lib/kubeadm.yaml
: running command: 
sudo kubeadm alpha phase certs all --config /var/lib/kubeadm.yaml &&
sudo /usr/bin/kubeadm alpha phase kubeconfig all --config /var/lib/kubeadm.yaml &&
sudo /usr/bin/kubeadm alpha phase controlplane all --config /var/lib/kubeadm.yaml &&
sudo /usr/bin/kubeadm alpha phase etcd local --config /var/lib/kubeadm.yaml
: exit status 1

我已经尝试使用其他选项启动minekube:

sudo minikube start --kubernetes-version v1.10.0 --bootstrapper kubeadm

sudo minikube start --bootstrapper kubeadm

sudo minikube start --vm-driver none

sudo minikube start --vm-driver virtualbox

sudo minikube start --vm-driver kvm

sudo minikube start --vm-driver kvm2

离开我得到同样的错误; - ;

有人可以帮帮我吗?如果你想了解一些配置的信息,请评论

TKS

2 个答案:

答案 0 :(得分:2)

Minikube VM通常在没有任何重要负载的情况下进行简单实验。 这就是为什么重新创建试图修复它的minikube集群要容易得多的原因。

要删除现有的minikube VM,请执行以下命令:

minikube delete

此命令将关闭并删除minikube虚拟机。不保留任何数据或状态。

检查是否有所有依赖项并运行命令:

minikube start

此命令创建一个名为“minikube”的“kubectl context”。此上下文包含与minikube群集通信的配置 Minikube会自动将此上下文设置为默认值,但如果您以后需要切换回它,请运行:

kubectl config use-context minikube

或者像这样传递每个命令的上下文:

kubectl get pods --context=minikube

可以找到有关命令行参数的更多信息here

答案 1 :(得分:0)

更新

由于我怀疑环境和所找到的信息之间版本存在差异,因此以下答案无效,并且我不愿意将更多时间浪费在此问题上。 VM本身会启动,因此,如果其中包含重要信息,即:其他docker容器,您可以登录到VM并在minikube delete

之前从其中提取此类数据。

同样的问题,我进入了虚拟机并跑了 sudo kubeadm alpha phase certs all --config /var/lib/kubeadm.yaml 结果是 failure loading apiserver-kubelet-client certificate: the certificate has expired

因此,就像任何优秀的工程师一样,我在Google上搜索并发现了这一点:

来源:https://github.com/kubernetes/kubeadm/issues/581

  

如果您使用的是1.8之前的kubeadm版本,那么我了解到#206证书轮换已经到位(作为beta)   功能)或您的证书已经过期,那么您将需要手动   更新您的证书(或重新创建看上去有些(不是)的群集   只是@kachkaev)最终求助)。

     

您将需要SSH进入您的主节点。如果您使用的是kubeadm

     
    

= 1.8跳至2。

  
     

根据需要更新Kubeadm。我以前是1.7。 $ sudo curl -sSL   https://dl.k8s.io/release/v1.8.15/bin/linux/amd64/kubeadm>   ./kubeadm.1.8.15 $ chmod a + rx kubeadm.1.8.15 $ sudo mv   / usr / bin / kubeadm /usr/bin/kubeadm.1.7 $ sudo mv kubeadm.1.8.15   / usr / bin / kubeadm备份旧的apiserver,apiserver-kubelet-client和   前代理客户端证书和密钥。 $ sudo mv   /etc/kubernetes/pki/apiserver.key   /etc/kubernetes/pki/apiserver.key.old $ sudo mv   /etc/kubernetes/pki/apiserver.crt   /etc/kubernetes/pki/apiserver.crt.old $ sudo mv   /etc/kubernetes/pki/apiserver-kubelet-client.crt   /etc/kubernetes/pki/apiserver-kubelet-client.crt.old $ sudo mv   /etc/kubernetes/pki/apiserver-kubelet-client.key   /etc/kubernetes/pki/apiserver-kubelet-client.key.old $ sudo mv   /etc/kubernetes/pki/front-proxy-client.crt   /etc/kubernetes/pki/front-proxy-client.crt.old $ sudo mv   /etc/kubernetes/pki/front-proxy-client.key   /etc/kubernetes/pki/front-proxy-client.key.old生成新的apiserver,   apiserver-kubelet-client和front-proxy-client证书和密钥。 $   sudo kubeadm alpha阶段证书apiserver --apiserver-advertise-address    $ sudo kubeadm alpha阶段证书   apiserver-kubelet-client $ sudo kubeadm alpha阶段证书   前代理客户端备份旧配置文件$ sudo mv   /etc/kubernetes/admin.conf /etc/kubernetes/admin.conf.old $ sudo mv   /etc/kubernetes/kubelet.conf /etc/kubernetes/kubelet.conf.old $ sudo   mv /etc/kubernetes/controller-manager.conf   /etc/kubernetes/controller-manager.conf.old $ sudo mv   /etc/kubernetes/scheduler.conf /etc/kubernetes/scheduler.conf.old   生成新的配置文件。这里有一个重要说明。如果   您在AWS上,则需要显式传递--node-name   此请求中的参数。否则,您将收到如下错误:   无法向API服务器注册节点“ ip-10-0-8-141.ec2.internal”:   禁止节点“ ip-10-0-8-141.ec2.internal”:节点ip-10-0-8-141   无法在您的日志sudo中修改节点ip-10-0-8-141.ec2.internal   journalctl -u kubelet --all |尾部,主节点将报告   在运行kubectl get节点时还没有准备就绪。

     

请确保替换传入的值   --apiserver-advertise-address和--node-name具有适合您环境的正确值。

     

$ sudo kubeadm alpha phase kubeconfig全部   --apiserver-advertise-address 10.0.8.141 --node-name ip-10-0-8-141.ec2.internal [kubeconfig]将KubeConfig文件写入磁盘:   “ admin.conf” [kubeconfig]将KubeConfig文件写入磁盘:   “ kubelet.conf” [kubeconfig]将KubeConfig文件写入磁盘:   “ controller-manager.conf” [kubeconfig]将KubeConfig文件写入磁盘:   “ scheduler.conf”

     

确保您的kubectl在正确的位置寻找配置   文件。 $ mv .kube / config .kube / config.old $ sudo cp -i   /etc/kubernetes/admin.conf $ HOME / .kube / config $ sudo chown $ {id   -u):$(id -g)$ HOME / .kube / config $ sudo chmod 777 $ HOME / .kube / config $ export KUBECONFIG = .kube / config重新启动主节点$ sudo   现在/ sbin / shutdown -r重新连接到您的主节点并抓住您的   令牌,并验证您的主节点是否为“就绪”。将令牌复制到   您的剪贴板。下一步将需要它。 $ kubectl获取节点   $ kubeadm令牌列表如果您没有有效的令牌。您可以创建   一个:

     

$ kubeadm令牌创建令牌应类似于   6dihyb.d09sbgae8ph2atjw

     

SSH进入每个从属节点,然后将它们重新连接到主节点$   须藤curl -sSL   https://dl.k8s.io/release/v1.8.15/bin/linux/amd64/kubeadm>   ./kubeadm.1.8.15 $ chmod a + rx kubeadm.1.8.15 $ sudo mv   / usr / bin / kubeadm /usr/bin/kubeadm.1.7 $ sudo mv kubeadm.1.8.15   / usr / bin / kubeadm $ sudo kubeadm join --token =:--node-name

     

为每个连接节点重复步骤9。在主节点上,您可以   验证所有从属节点均已连接并准备就绪:   kubectl获取节点希望这能使您到达需要的位置   @davidcomeyne。