首页 » DevOps » kubernetes » 通过kubeadm创建一个单主的k8s集群

通过kubeadm创建一个单主的k8s集群

 

本文通过kubeadm来创建一个单主的kubernetes(k8s)集群,请注意文中所用软件版本,版本不符可能会导致初始化kubernetes集群失败,在尝试本文前,请了解并已熟练使用docker。

当前环境:三台Centos7.x主机,系统内核3.10.0,kubernetes版本1.18.3

三台主机IP:

192.168.50.140
192.168.50.141
192.168.50.142

hostname分别为master、node01、node02,其中master作为kubernetes的主节点,node01和node02作为两个node节点

在部署k8s集群前的准备工作

1、确保服务器之间时间一致性

通过公网同步时间

2、确保iptables、firewalld、selinux都处于关闭状态

3、确保三台主机的hosts配置无误,即

4、配置三台主机的hostname分别为master、node01、node02

在三台主机上分别执行以下命令来更改hostname

5、确保master可以通过密钥直接访问node01、node02

master服务器执行以下命令配置密钥访问

做好准备工作后,就开始k8s集群的安装吧!

 

master主机配置(以下命令均在master主机上运行)

1、安装docker

配置docker加速,我这里以daocloud为例

2、配置k8s源

由于某些原因,我这里使用阿里云提供的k8s镜像源

3、复制docker源和k8s源至node01和node02节点上

4、安装服务

安装kubelet、kubeadm、kubectl

5、配置docker.service

编辑/usr/lib/systemd/system/docker.service增加--exec-opt native.cgroupdriver=systemd

6、设置kubelet开机自启动

7、设置忽略swap(如果当前未使用swap可忽略此步骤)

8、通过kubeadm初始化k8s集群

最后看到以上内容,即表示初始化成功,请记下kubeadm join整段内容,后续在node01、node02节点加入集群时会用到。

9、根据提示运行以下命令,建议通过普通用户运行,我这里使用的root

10、检测组件是否健康

确保OK没有问题后,再进行下一步

11、部署网络插件flannel

直接使用kube-flannel.yml可能会有一些问题会导致安装失败,所以我这里先下载这个文件,将文件中的quay.io域名替换成七牛的国内镜像

注意:即使更改了七牛镜像,也有可能因为某种原因失败,这里附上另外一种解决办法

先确认当前kube-flannel.yml里的quay.io/coreos/flannel:v0.12.0-amd64版本号,然后去https://github.com/coreos/flannel/releases上下载对应的包,我这里是0.12.0版本,即下载https://github.com/coreos/flannel/releases/download/v0.12.0/flanneld-v0.12.0-amd64.docker上传到master服务器上.

通过docker load命令导入镜像

重启服务

稍等一会查看

此时kubectl get nodes也显示Ready

12、查看kube-system名称空间集群的状态

此时master初始化完成,接下来配置node01、node02节点将其加入进来即可。

 

node01、node02主机配置(以下命令均在node01、node02主机上运行)

1、安装docker

配置docker加速,我这里以daocloud为例

2、安装kubelet、kubeadm

在节点上可以不用安装kubectl,根据使用情况考虑是否需要安装,此处不安装

配置docker.service

编辑/usr/lib/systemd/system/docker.service增加--exec-opt native.cgroupdriver=systemd

3、设置kubelet开机自启动

4、设置忽略swap(如果当前未使用swap可忽略此步骤)

5、加入k8s集群

注意:如果当前使用了swap,需要追加个--ignore-preflight-errors=Swap参数

加入后会提示

成功加入后,耐心等待一会,在master主机上执行kubectl get nodes命令,来查看节点状态

注意:如果加入后没有Ready,请参考上面kube-flannel.yml的另外一种解决方案,在node节点上手动导入flanneld-v0.12.0-amd64.docker

至此一个单主的k8s集群安装完成

原文链接:通过kubeadm创建一个单主的k8s集群,转载请注明来源!

1