解决pod创建成功但未正常启动的问题:pod-infrastructure镜像下载失败

在创建kubernetes-dashboardpod时,发现能够成功创建kubernetes-dashboardpod,但是查看pod状态时发现并没有,从node节点上也没有发现该pod的运行。经过通过的排查过程,发现是pod-infrastructure镜像下载失败,导致pod启动失败。

pod-infrastructure镜像下载配置

打开/etc/kubernetes/kubelet配置文件。

vim /etc/kubernetes/kubelet
###
# kubernetes kubelet (minion) config

# The address for the info server to serve on (set to 0.0.0.0 or "" for all interfaces)
KUBELET_ADDRESS="--address=0.0.0.0"

# The port for the info server to serve on
# KUBELET_PORT="--port=10250"

# You may leave this blank to use the actual hostname
KUBELET_HOSTNAME="--hostname-override=10.0.11.150"

# location of the api-server
KUBELET_API_SERVER="--api-servers=http://10.0.11.150:8080"

# pod infrastructure container
KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=10.0.11.150:5000/rhel7/pod-infrastructure:v1.0.0"

# Add your own!
KUBELET_ARGS=""

上面显示的是kubelet配置文件的配置项信息。其中KUBELET_POD_INFRA_CONTAINER配置项配置了下载pod-infrastructure镜像的地址,原来的配置地址为:

KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest"

通过测试,发现国内是无法通过这个链接下载到pod-infrastructure镜像的….

解决方法

首先,可以先对本地的Docker进行配置,使用镜像加速

然后通过 docker search pod-infrastructure查找可下载的镜像文件

docker search pod-infrastructure

INDEX       NAME                                                              DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
docker.io   docker.io/openshift/origin-pod                                    The pod infrastructure image for OpenShift 3    5                    
docker.io   docker.io/infrastructureascode/aws-cli                            Containerized AWS CLI on alpine to avoid r...   3                    [OK]
docker.io   docker.io/newrelic/infrastructure                                 Public image for New Relic Infrastructure.      3                    
docker.io   docker.io/infrastructureascode/uwsgi                              uWSGI application server                        2                    [OK]
docker.io   docker.io/manageiq/manageiq-pods                                  OpenShift based images for ManageIQ.            2                    [OK]
docker.io   docker.io/podigg/podigg-lc-hobbit                                 A HOBBIT dataset generator wrapper for PoDiGG   1                    [OK]
docker.io   docker.io/tianyebj/pod-infrastructure                             registry.access.redhat.com/rhel7/pod-infra...   1                    
docker.io   docker.io/w564791/pod-infrastructure                              latest                                          1                    

找到自己需要的镜像文件,然后通过docker pull命令将镜像下载到本地。

然后将pod-infrastructure镜像push到本地私有库中,修改kubelet配置文件中的KUBELET_POD_INFRA_CONTAINER配置项:

KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=10.0.11.150:5000/rhel7/pod-infrastructure:v1.0.0"

其中,10.0.11.150是我本地的docker私有库rhel7/pod-infrastructure是我在私有库中保存的镜像名称,v1.0.0是保存的版本。

最后重启集群:

Master节点重启命令:

for SERVICES  in kube-apiserver kube-controller-manager kube-scheduler;  do
    systemctl restart $SERVICES
done

Node节点重启命令:

systemctl restart kubelet

注:Master节点、Node节点都要做这样的更改。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值