Kubernetes(k8s)—k8s集群的部署
【实验环境】: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内存;
【实验环境】:
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
更多推荐
所有评论(0)