【实验环境】:
server2:192.168.43.11 (用作harbor镜像仓库,我们将所需的镜像放在私有仓库里面,然后进行部署,这样可以提高部署的速率。)(给了2G内存)
server7: 192.168.43.16 (给了2G内存;做master结点)
server8: 192.168.43.17 (给了1G内存;做slave结点)
server9: 192.168.43.18 (给了1G内存;做slave结点)

1.所有节点部署docker引擎

注:关闭节点的selinux和iptables防火墙。
首先我们需要使各节点能够联网。

iptables -t nat -I POSTROUTING -j MASQUERADE  ##物理机上开启地址伪装功能

在这里插入图片描述
搜索阿里云镜像站找到docker-ce的安装方法。(我们也可以通过下载docker-ce的rpm包和一些依赖源包来进行安装)
在这里插入图片描述
跟着安装方法一步步进行:

yum install -y yum-utils device-mapper-persistent-data lvm2 ## 这一步是安装一些必要的系统工具
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo  ##添加安装docker-ce的yum 源

在这里插入图片描述
在这里插入图片描述

yum install -y docker-ce  ##安装docker-ce

在这里插入图片描述
提示安装失败,需要container-selinux这个软件依赖性,且这个软件的版本必须得>=2.74。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
上面docker安装成功后我们需要启动docker

systemctl enable --now docker  ##开启docker并设置为开机启动
cd /etc/sysctl.d  ##进入这个目录
vim k8s.conf  ##编辑这个文件
sysctl --system  ##使设置生效

在这里插入图片描述

docker info  ##查看一下docker ,没有警告iptables那俩个参数就好了

在这里插入图片描述
同理,给server8和server9节点也安装docker-ce并开启。
在这里插入图片描述
在这里插入图片描述

systemctl enable --now docker  ##server8开启docker并设置为开机启动
cd /etc/docker  ##进入docker目录
vim k8s.conf  ##编辑这个文件
sysctl --system  ##使上面文件的设置生效
docker info  ##查看一下docker

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

systemctl enable --now docker  ##server9开启docker并设置为开机启动
cd /etc/docker  ##进入docker目录
sysctl --system  ##使生效
docker info  ##查看一下docker

在这里插入图片描述
注意:如果一开始防火强忘记关闭,因为docker开启后会自动生成iptables的一些策略,这时再来关闭防火墙会将这些策略都清除,前面我们向/etc/sysctl.d/里面编写的文件设置桥接打开,是因为docker使用的是桥接网络,当iptables策略被清除之后,会影响docker上网,这时如果要恢复docker的策略,需要重启docker服务。

2.修改container的runtime

官网:https://kubernetes.io/docs/setup/production-environment/container-runtimes/#docker
在这里插入图片描述
在这里插入图片描述
根据官网的提示,我们来操作:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

systemctl restart docker  ##重启docker
docker info  ##再次查看一下docker

在这里插入图片描述
现在server7的cgroup 驱动方式修改成功,其他俩个节点也需要相同的设置。我们可以先配置一下地址解析,这样方便传输信息。

vim /etc/hosts ##编辑解析文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
server7将设置cgroup驱动的文件给server8和server9都传输过去。
在这里插入图片描述

systemctl restart docker  ##server8和server9都需要重启一下docker服务
docker info ##查看一下docker的信息

在这里插入图片描述
在这里插入图片描述

3.禁用swap分区

swapoff -a  ##禁用swap分区,禁用之后一旦主机内存不足会直接影响到主机运行
vim /etc/fstab  ##编辑文件,注释掉文件中的swap定义,防止开机启动

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.安装部署软件kubeadm

cd /etc/yum.repos.d  ##进入yum仓库目录
vim k8s.repo  ##创建k8s的yum 源

在这里插入图片描述
在这里插入图片描述

yum install kubelet kubeadm kubectl  -y  ##安装这三个软件包,其中kubelet,kubeadm是集群必须装的,kubectl是对客户端进行操作的指令,可装可不装。这里我装了

在这里插入图片描述
在这里插入图片描述

systemctl enable --now kubelet  ##开启kubelet,并设置为开机启动

在这里插入图片描述
这里server7装好了这三个包,其他俩个结点也需要安装。
在这里插入图片描述
在这里插入图片描述

systemctl enable --now kubelet  ##server8也设置开机启动kubelet

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.使用kubeadm创建集群

kubeadm config print init-defaults  ##查看默认配置信息

在这里插入图片描述
在这里插入图片描述
能看到默认从k8s.gcr.io上下载组件镜像,但k8s总部在国外,需要翻墙才可以上网,所以需要修改镜像仓库。

kubeadm config images list  ##列出默认需要的镜像
kubeadm config images list --image-repository registry.aliyuncs.com/google_containers  ##从阿里云镜像仓库中列出kubeadm所需的镜像

在这里插入图片描述

kubeadm config images pull --image-repository registry.aliyuncs.com/google_containers ##从阿里云仓库中拉取所需要的镜像,但是由于kubeadm版本更新,阿里云还没有上传镜像,所以拉取失败

这里我额外下载了旧一版本的镜像。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里server7下载组件镜像完成,为了方便其他俩个结点下载,我们将这个镜像传到私有仓库harbor中去。
在这里插入图片描述
server7上传镜像到harbor需要证书文件及认证。
在这里插入图片描述
server7上需要配置一下地址解析

vim /etc/hosts  

在这里插入图片描述
server8和server9上也配置一下地址解析文件。

vim /etc/hosts

在这里插入图片描述
server7向harbor私有仓库上传文件还需要login认证。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
查看harbor仓库中有无刚上传的镜像。
在这里插入图片描述
私有仓库中有镜像了,但是server8和server9拉取镜像还需要证书。因为拉取镜像也是访问的443端口。
在这里插入图片描述
现在我们需要初始化集群
在这里插入图片描述

在这里插入图片描述
配置kubectl:

useradd kubeadm  ##创建一个用户
visudo  ##编辑sudo文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
配置kubectl命令补齐功能:

su - kubeadm  ##切换到这个用户
vim ~/.bashrc
logout  ##登出这个用户
su - kubeadm  ##再登陆,使刚才的设置生效
kubectl  ##输入kubectl 后按回车健,就能看到命令补齐了

在这里插入图片描述
在这里插入图片描述
节点扩容

kubectl get node ##查看节点

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
token是集群分给节点的一个认证码,只有使用这个码,其他节点才能加入集群中去。hash值是节点用来判断master节点集群的。
在这里插入图片描述
同理,添加server9节点到集群中去。
在这里插入图片描述
在这里插入图片描述
注:token默认保存24小时,24小时后失效,此时需要使用kubeadm token create来重新生成token,节点使用新的token再次加入到集群中去。
在这里插入图片描述
安装flannel网络组件:
文档:https://github.com/coreos/flannel

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐