美文网首页
Kubernetes常见运维技巧

Kubernetes常见运维技巧

作者: 慕尼白大爷 | 来源:发表于2017-11-24 15:52 被阅读0次

    1.Kubernetes Node节点状态处于SchedulingDisabled怎么办?

    解决方案:$kubectl patch node kubernetes-minion1 -p'{"spec":{"unschedulable":false}}',执行完成后节点状态就会变成ready

    2.Kubernetes环境中创建Pod,Pod一直处于ContainerCreating状态,kubectl describe pod <$podName>,如果Pod日志中显示error syncing pod failed to "CreatePodSandbox" forunable to pull sandbox image "gcr.io/google_containers/pause-amd64:3.0",怎么办?

    原因:Kubernetes在部署应用的时候都会先拉一个pause的镜像,这是一个基础镜像,主要负责容器网络部分的功能,Kubernetes默认是从google的镜像仓库上拉取,但是在国内由于GFW或者Kubernetes在内网搭建,所以拉取镜像会失败,所以Pod就会一直处于ContainerCreating状态,最终会失败。

    解决方案:

    (1)在Kubernetes环境网络可达的镜像私服上放一个pause-amd64的镜像,一般都是3.0版本(具体实现参照问题3)

    (2)修改Kubernetes各节点的/etc/kubernetes/kubelet文件,追加KUBELET_ARGS="--pod_infra_container_image=192.168.10.12:5000/google_containers/pause-amd64.3.0"

    (3)重启master节点的kube-apiserver kube-controller-manager kube-scheduler kube-proxy服务

    3.如何将公网上的容器镜像放到镜像私服上?

    解决方案:

    (1)外网docker环境中使用docker pull 命令拉取镜像到本地

    (2)使用docker save -o 命令将镜像保存为tar格式的文件

    (3)将tar文件拷贝至内网docker环境,然后使用docker load < XX.tar命令将镜像load到内网docker环境

    (4)将导入后的镜像,使用docker tag <私服地址>/:命令,为镜像打标签

    (5)使用docker push<私服地址>/:将镜像push到私服上

    4.在K8S集群中出现A节点无法访问B节点上的Pod,怎么办?

    解决方案:如果A节点无法ping通B节点上的Pod的IP地址,则在B节点上执行iptables -P FORWARD ACCEPT,反之则在A节点上执行iptables -P FORWARD ACCEPT即可

    相关文章

      网友评论

          本文标题:Kubernetes常见运维技巧

          本文链接:https://www.haomeiwen.com/subject/cxrfbxtx.html