Q1:原本受网络限制无法正常下载k8s镜像,配置阿里镜像后仍然显示k8s failed to start
A1:使用境外镜像,如俄罗斯。虽然下载较慢,但是k8s成功变绿启动。
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://huecker.io",
"https://dockerhub.timeweb.cloud",
"https://noohub.ru"
]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
Q2:在部署好v1.29.2的k8s-for-docker-desktop后第二天,出现了长时间k8s is starting,由于没有注意到官方提供的解决方案,尝试重新执行sh文件后产生如下问题
> kubectl cluster-info
E0718 14:19:14.378933 13252 memcache.go:265] couldn't get current server API group list: Get "https://kubernetes.docker.internal:6443/api?timeout=32s": tls: failed to verify certificate: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "kubernetes")
A2:删除C:\Users\用户名\.kube下的config,再次输入可能会产生如下报错
> kubectl get nodes
E0718 14:51:10.527325 18648 memcache.go:265] couldn't get current server API group list: Get "http://localhost:8080/api?timeout=32s": dial tcp 127.0.0.1:8080: connectex: No connection could be made because the target machine actively refused it.
不要惊慌,以上属于正常情况,只需要重启docker,即可以正常使用kubectl命令。
> kubectl get nodes
NAME STATUS ROLES AGE VERSION
docker-desktop Ready control-plane 42m v1.29.2
附上官方连接的解决方案,下次就不会再莽撞的直接重开了QAQ
附录:在解决问题的过程中查看以下资料并没有解决我的问题,但作为参考也相当有价值。
方法一:
1、删除这个路径下的文件
rm -rf $HOME/.kube
2、重新执行命令
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
方法二:
echo export KUBECONFIG=/etc/kubernetes/kubelet.conf >> ~/.bashrc
source ~/.bashrc
未解决理由:不存在/etc/kubernetes/这个文件夹,我wsl环境下的apt无法正常使用,故使用docker-desktop的方式安装docker,并尝试部署K8s。
方法三:
1.执行命令:
cat <<EOF >> /root/.bashrc
export KUBECONFIG=/etc/kubernetes/admin.conf
EOF
source /root/.bashrc
2.重新执行
kubectl get node
未解决理由:仍然是不存在/etc/kubernetes/这个文件夹,并且在加上sudo的情况下仍然会显示没有编辑root下文件的权限。