这段时间一直在学习基于Docker和Kubernetes搭建服务器集群的知识,由于之前没有云计算相关的基础,过程可以说是非常难受了,开始跟着大佬的帖子一步步来,即使这样也是踩了无数的坑。
这里先贴上一位大佬的教程贴:个人觉得这篇帖子算是基于高版本Kubernetes构建集群环境比较全面的帖子了。
使用Kubeadm(1.13+)快速搭建Kubernetes集群
另外,把我去年个人研究Docker和Kubernetes技术过程中所看的电子书分享出来,供大家参考。其中有《Kubernetes权威指南(第2版)》、《Kubernetes实战 》、《Docker 容器与容器云(第2版)》、《第一本Docker书》、《开源容器云OpenShift构建基于Kubernetes的企业应用云平台》。所有的电子书均为高清PDF版本。链接如下:
链接:https://pan.baidu.com/s/1bVuLNN5MHjeYxIGV4L0Bow 提取码:a6rp
下面开始正题:
先说下笔者的环境:
两台主机组件一主一从的集群环境(主机(master节点):czb-workstation:192.168.0.109/从机(工作节点):dl4:192.168.0.111),两台的软件环境如下:
linux-ubuntu 16.04
Docker 18.03.1-ce
Kubernetes v1.13.3
在此之前由于不懂Docker和Kubernetes的原理,所以只能一步步按照帖子上的步骤进行尝试,遇到不懂的地方再百度或者谷歌。这里着重说一下在构建过程中遇到的很常见但同时又比较棘手的问题:建立起来的pod 出现CrashLoopBackOff的问题,在笔者的构建过程中遇到了很多次coreDNS 组件出现CrashLoopBackOff的问题。
1. 刚开始的时候遇到的是安装了网络插件Calico后遇到两个coreDNS组件均出现CrashLoopBackOff挂掉的问题,谷歌以后找到原因:由于本机环境中存在loop循环造成的。解决方法就是将主机环境中的127.0.0.1主机ip循环地址删除即可,具体有这么几个位置:/etc/resolv.conf /run/systemd/resolve/resolv.conf /etc/systemd/resolved.conf
2. 按照上述帖子的方法处理后,两个coreDNS组件开始确实也显示为running状态,但是好景不长,几分钟后发现其中一个coreDNS组件有RESTART记录,后来每隔两分钟便出现一次RESTART记录,在三次尝试重启后,果不其然,该coreDNS组件CrashLoopBackOff挂掉。。。
无奈,硬着头皮开始DEBUG过程,首先通过命令“kubectl describe pod coredns-xxxxxxx -n kube-system ”命令查看该pod的情况:
czb@czb-workstation:~$ kubectl describe pod coredns-78d4cf999f-2mjbj -n kube-system
Name: coredns-78d4cf999f-2mjbj
Namespace: kube-system
Priority: 0
PriorityClassName: <none>
Node: