前段时间研究K8S,在自己的笔记本上搭K8S集群,踩了一些坑,做个记录。
环境:
- Win10系统
- VMWare Workstation建虚拟机
流程:
下虚拟机管理软件,创建虚拟机,我建的是centos7的虚拟机。具体的软件下载和虚拟机安装在网上随便找找教程即可,需要注意的是虚拟机的静态网络设置,相对麻烦,需要注意一下,最后虚拟机与宿主机能互相ping通,虚拟机可以ping通百度即为成功。
使用kubeadm工具搭建K8S集群,参考文档:从零开始搭建Kubernetes集群(三、搭建K8S集群)。除了网络设置部分,别的部分我基本都是参考这个文档进行的,没什么大问题
记录几个搭建过程中需要注意的问题:
1. 虚拟机创建
可以先只创建master节点,到参考文档中的相关k8s镜像下载完成之后再克隆两个worker节点,这样比较省时省事。注意克隆之后修改IP设置和host
2. 集群网络设置
我前面给的参考文档里,使用的是calico来进行网络设置的,我尝试之后报错,于是我换成了weave.net的方式来进行网络设置,这也是《Kubernetes In Action》这本书中附录B使用的方式,这个附录是我在对着网上各类博客尝试搭建集群很久之后才发现的,介绍的搭建步骤也是很靠谱的,大体步骤与我前面给的参考文档差不多。
另外,在集群初始化的时候只需要执行kubeadm init
即可,不需要带参考文档中那一长串参数
下面说一下使用weave.net进行K8S集群网络设置的步骤:
- 科学上网,网络状态良好情况下,直接在master节点执行以下命令即可
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
- 若多次拉取镜像失败,可尝试分步骤进行
- 下载net.yml:浏览器访问https://cloud.weave.works/k8s/net?k8s-version=2.6.2(版本号2.6.2为本文创建时的最新版本,可根据实际情况修改为最新版本)
- 下载镜像,提前准备好weave的两个镜像,准备的哪个版本,就要在上面的net.yaml文件中的镜像版本指定做好修改,一一对应,不然创建的时候又会重新去拉取镜像
docker pull weaveworks/weave-npc:2.6.2
docker pull weaveworks/weave-kube:2.6.2
- 创建网络资源,执行命令
kubectl apply -f net.yml
3. 搭建私有镜像仓库
网络状况不好的时候,worker节点创建pod会一直失败,查看describe和日志会发现是镜像拉取失败的原因,建议搭建一个私有的镜像仓库,在某个节点下载好镜像后上传到镜像仓库,其他节点设置优先从私有仓库拉取镜像,可以相对提高效率。网上教程很多,随便找一个即可。
4. 节点NotReady
有时候登录集群会发现某个节点突然notready了,不要慌,可能是kubelet有问题,先重启一下kubelet试试,一般重启一下就解决了。
在安装和使用过程中其实还有很多问题,大部分问题网上都能找到答案,如还是无法解决可以评论提出,如果我也遇到了就补充进文档。