您的位置:首页 > 其它

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

2017-12-06 15:08 573 查看
在创建
kubernetes-dashboard
pod时,发现能够成功创建
kubernetes-dashboard
pod,但是查看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节点都要做这样的更改。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐