1、查看原因
kubectl --namespace=kube-system describe pod kube-proxy-hjs58
# 查看错误日志
# 有可能是下载镜像超时
2、镜像拉取超时解决办法
kubeadm config images list # 查看需要的镜像
vim pull_k8s_images.sh #用脚本拉取
pull_k8s_images.sh脚本
set -o errexit
set -o nounset
set -o pipefail
##这里定义版本,按照上面得到的列表自己改一下版本号
KUBE_VERSION=v1.22.17
KUBE_PAUSE_VERSION=3.5
ETCD_VERSION=3.5.0-0
# DNS_VERSION=1.8.4 # coredns需要特殊处理
##这是原始仓库名,最后需要改名成这个
GCR_URL=k8s.gcr.io
##这里就是写你要使用的仓库
DOCKERHUB_URL=gotok8s
##这里是镜像列表,新版本要把coredns需要特殊处理
images=(
kube-proxy:${KUBE_VERSION}
kube-scheduler:${KUBE_VERSION}
kube-controller-manager:${KUBE_VERSION}
kube-apiserver:${KUBE_VERSION}
pause:${KUBE_PAUSE_VERSION}
etcd:${ETCD_VERSION}
# coredns:${DNS_VERSION} # coredns需要特殊处理
)
##这里是拉取和改名的循环语句
for imageName in ${images[@]} ; do
docker pull $DOCKERHUB_URL/$imageName
docker tag $DOCKERHUB_URL/$imageName $GCR_URL/$imageName
docker rmi $DOCKERHUB_URL/$imageName
done
运行脚本等待拉取结束,再kubectl get nodes就显示Ready了
chmod a+x pull_k8s_images.sh
./pull_k8s_images.sh