乱记k8s单机搭建及测试

老子叫甜甜 提交于 2020-12-12 15:28:23

使用环境:ECS (ubuntu 16.04) K8s单机搭建参照 [https://blog.csdn.net/nange_nice/article/details/85602456?tdsourcetag=s_pcqq_aiomsg]https://blog.csdn.net/wangchunfa122/article/details/86529406?tdsourcetag=s_pcqq_aiomsg 我这里只使用了一个node 目前就是master 使用 kubectl create namespace springcloud-cn 创建命名空间 kubectl create -f config-server-rc.yml 创建rc 使用kubectl create -f config-server-svc.yml 创建service ps:关注yml文件的语法问题 可以参见 https://www.jianshu.com/p/116ce601a60f?tdsourcetag=s_pcqq_aiomsg中 对kubectl explain的使用 这时候问题出现了 1 node(s) had taints that the pod didn't tolerate: 经查找,默认 k8s 不允许往 master 节点装东西,强行设置下允许:kubectl taint nodes --all node-role.kubernetes.io/master- 接着使用kubectl describe pods -n springcloud-cn发现如下类似问题 Failed create pod sandbox: rpc error: code = Unknown desc = [failed to set up sandbox container “957541888b8a0e5b9ad65da932f688eb02cc182808e10d1a89a6e8db2132c253” network for pod “coredns-7655b945bc-6hgj9”: NetworkPlugin cni failed to set up pod “coredns-7655b945bc-6hgj9_kube-system” network: failed to find plugin “loopback” in path [/opt/cni/bin], failed to clean up sandbox container “957541888b8a0e5b9ad65da932f688eb02cc182808e10d1a89a6e8db2132c253” network for pod “coredns-7655b945bc-6hgj9”: NetworkPlugin cni failed to teardown pod “coredns-7655b945bc-6hgj9_kube-system” network: failed to find plugin “portmap” in path [/opt/cni/bin]] https://kubernetes.io/docs/setup/independent/troubleshooting-kubeadm/#coredns-pods-have-crashloopbackoff-or-error-state 如果您的网络提供商不支持portmap CNI插件,您可能需要使用服务的NodePort功能或使用HostNetwork=true。 修改了config-server-svc.yml使用 type:NodePort 发现还是不行 使用 ps -ef |grep cni 命令发现 root 759 1 2 11:11 ? 00:04:46 /usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --config=/var/lib/kubelet/config.yaml --cgroup-driver=cgroupfs --cni-bin-dir=/opt/cni/bin --cni-conf-dir=/etc/cni/net.d --network-plugin=cni 通过找到/opt/cni/bin下确实没任何东西 于是决定自己编译这些plugins 于是参照文档安装cni https://www.lmlphp.com/user/7205/article/item/355381/?tdsourcetag=s_pcqq_aiomsg 这里先用的apt-get install golang 安装的go版本是1.6 结果go版本太低 无法编译cni 于是安装go二进制包 选定的是1.9 顺利编译 cni问题得到解决 然而我使用的simon/config-server只是个本地镜像 k8s默认是从远端拉取 参照https://blog.csdn.net/u010039418/article/details/86578420 修改了额config-server-rc.yml中的imagePullPolicy 从Always到Never 最终pod终于顺利启动 但还有个问题 无法从公网访问 这是由于ecs安全组的端口开放问题 由于我使用的ecs没有开放端口的权限 此是后话

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!