1、硬件要求

服务器CPU内存硬盘
至少2台至少2核至少4G至少20G

2、部署

2.1、服务器规划

主机名系统IP地址备注
mastercentos7.9192.168.277.10主机名不能包含数字 大写字符、下划线以及特殊符号
workercentos7.9192.168.277.11IP地址必须固定,且只有一张网卡,如需增加网卡,待k8s安装完成后再增加网卡

注意

  • 在部署k8s的服务器上不可以部署docker以及docker相关的组件。可以使用以下命令检查是否安装过docker

    docker -version
    
  • 多台服务器之间可以相互Ping通,确保网络通畅。可以使用以下命令来检查服务器之间是否可以互通,建议等测试完成后再设置禁ping操作.

    ping 192.168.277.11
    
  • 在部署k8s之前最好关闭防火墙。可以使用以下命令检查服务器防火墙是否开启

    systemctl status firewalld
    

2.2、服务器环境修改

2.2.1、修改主机名

k8s在部署时节点的名字不能使用localhost,需要修改名字

# 查看目前的名字,需要分别在所有节点中执行
hostname

# 分别修改各个服务器的名字
  # 主节点中
hostnamectl set-hostname k8smaster
  # node节点中
hostnamectl set-hostname k8sworker
# 查看修改后的名字
hostnamectl status
# 设置 hostname 解析,分别在各个节点中执行
echo "127.0.0.1   $(hostname)" >> /etc/hosts
# 查看是否写入hosts文件中
cat /etc/hosts

在这里插入图片描述

执行完hostname解析后查看是否写入hosts文件中

hosts解析

2.2.2、查看系统版本
# 在每个节点上都需要执行
  cat /etc/redhat-release 

在这里插入图片描述

确保系统版本一致,不会因为版本的差异而造成安装不成功

2.2.3 查看CPU的核数

需要分别在各个服务器中执行

lscpu

在这里插入图片描述

确保CPU至少为2核

2.2.4、查看内存大小

分别在各个服务器中执行

free -h

在这里插入图片描述

内存大小至少要求4G

2.2.5、关闭防火墙

建议在安装k8s时将防火墙关闭

# 查看防火墙状态
systemctl status firewalld
# 关闭防火墙
systemctl stop firewalld
# 设置禁止开机自启
ssystemctl disable firewalld

在这里插入图片描述

2.3、安装

2.3.1、拉去镜像
# 在 master 节点和 worker 节点都要执行
# 最后一个参数 1.19.5 用于指定 kubenetes 版本,支持所有 1.19.x 版本的安装
# 腾讯云 docker hub 镜像
# export REGISTRY_MIRROR="https://mirror.ccs.tencentyun.com"
# DaoCloud 镜像
# export REGISTRY_MIRROR="http://f1361db2.m.daocloud.io"
# 华为云镜像
# export REGISTRY_MIRROR="https://05f073ad3c0010ea0f4bc00b7105ec20.mirror.swr.myhuaweicloud.com"
# 阿里云 docker hub 镜像
export REGISTRY_MIRROR=https://registry.cn-hangzhou.aliyuncs.com
curl -sSL https://kuboard.cn/install-script/v1.19.x/install_kubelet.sh | sh -s 1.19.5

在这里插入图片描述

安装完毕
在这里插入图片描述

2.3.2 、初始化master节点
# 只在 master 节点执行
# 替换 x.x.x.x 为 master 节点实际 IP(请使用内网 IP)
# export 命令只在当前 shell 会话中有效,开启新的 shell 窗口后,如果要继续安装过程,请重新执行此处的 export 命令
export MASTER_IP=192.168.227.10
# 替换 apiserver.demo 为 您想要的 dnsName
export APISERVER_NAME=itbestboy.com
# Kubernetes 容器组所在的网段,该网段安装完成后,由 kubernetes 创建,事先并不存在于您的物理网络中
export POD_SUBNET=10.100.0.1/16
echo "${MASTER_IP}    ${APISERVER_NAME}" >> /etc/hosts
curl -sSL https://kuboard.cn/install-script/v1.19.x/init_master.sh | sh -s 1.19.5

在这里插入图片描述

2.3.3、查看master节点的初始化结果
# 查看所有的容器组是否处于 Running 状态,大概需要等待3-5分钟
watch kubectl get pod -n kube-system -o wide

在这里插入图片描述
等待3-5分钟就可以看到初始化结果
在这里插入图片描述
当所有容器都处于running状态时,就可以查看master节点的初始化结果

# 查看 master 节点初始化结果
kubectl get nodes -o wide

在这里插入图片描述

2.3.4、获取token,用于其他服务器加入集群

此命令只在master节点执行

#只在master节点执行,获取的token信息有效期为2个小时
  kubeadm token create --print-join-command

在这里插入图片描述

2.3.5 初始化worker节点
#只在worker节点执行
#IP地址为master节点的IP
export MASTER_IP=192.168.227.10
#初始化 master 节点时所使用的 APISERVER_NAME
export APISERVER_NAME=itbestboy.com
export POD_SUBNET=10.100.0.1/16
echo "${MASTER_IP}    ${APISERVER_NAME}" >> /etc/hosts
#在master节点生成的token信息
kubeadm join itbestboy.com:6443 --token wn2p9z.ozp8qr2p1uz63nkk     --discovery-token-ca-cert-hash sha256:edb404c9759d0b9c4b76287d83999b22ced8457f6562a315c1a2ecb0b254ca23

在这里插入图片描述
在master节点上检查各个节点的状态

kubectl get nodes -o wide

在这里插入图片描述

需要等待3分钟左右才会变成Ready状态

2.4、安装可视化工具

2.4.1 、安装

在master节点上执行

kubectl apply -f https://addons.kuboard.cn/kuboard/kuboard-v3-swr.yaml

在这里插入图片描述

如果想自定义可视化工具的连接端口,环境等,可以将kuboard-v3-swr.yaml下载下来,然后手动更改里面的内容 ,然后上传至master所在的服务器,执行 kubectl apply -f kuboard-v3-swr.yaml

2.4.2 、查看

首先查看容器组是否全部处于running状态

watch kubectl get pods -n kuboard

在这里插入图片描述
其次通过浏览器查看

地址 : http://192.168.227.10:30080/

用户名 :admin

密码 :Kuboard123
在这里插入图片描述
在这里插入图片描述

3、部署命令脚本

#前期准备,master worker节点都需要执行
#查看修改IP地址(若为云服务器,此步忽略)
vim /etc/sysconfig/network-scripts/ifcfg-ens33
#测试两台服务器之间是否可通
ping 192.168.227.11
#关闭防火墙
systemctl stop firewalld
systemctl diable firewalld
#查看系统版本是否一致,建议最好一致,否则会报歇莫名其妙的错误
cat /etc/redhat-release 
#查看cpu核数
lscpu
#查看内存空间
free -h
#查看主机名
hostname
#修改主机名
hostnamectl set-hostname=k8smaster
#worker节点执行
hostnamectl set-hostname=k8sworker
#主机名映射
echo "127.0.0.1 $(hostname)" >> /etc/hosts
#安装,需要在master节点和worker节点中都执行
export REGISTRY_MIRROR=https://registry.cn-hangzhou.aliyuncs.com
curl -sSL https://kuboard.cn/install-script/v1.19.x/install_kubelet.sh | sh -s 1.19.5

#只在 master 节点执行
#替换 x.x.x.x 为 master 节点实际 IP(请使用内网 IP)
export MASTER_IP=192.168.227.10
#替换 apiserver.demo 为 您想要的 dnsName
export APISERVER_NAME=itbestboy.com
#Kubernetes 容器组所在的网段,该网段安装完成后,由 kubernetes 创建,事先并不存在于您的物理网络中
export POD_SUBNET=10.100.0.1/16
echo "${MASTER_IP}    ${APISERVER_NAME}" >> /etc/hosts
curl -sSL https://kuboard.cn/install-script/v1.19.x/init_master.sh | sh -s 1.19.5

#执行如下命令,等待 3-10 分钟,直到所有的容器组处于 Running 状态
watch kubectl get pod -n kube-system -o wide

#查看 master 节点初始化结果
kubectl get nodes -o wide

#只在 master 节点执行 得到
kubeadm token create --print-join-command
#获取的token信息,有效期2个小时
#kubeadm join itbestboy.com:6443 --token wn2p9z.ozp8qr2p1uz63nkk     --discovery-token-ca-cert-hash sha256:edb404c9759d0b9c4b76287d83999b22ced8457f6562a315c1a2ecb0b254ca23
#在worker节点中执行
#替换 x.x.x.x 为 master 节点的内网 IP
export MASTER_IP=192.168.277.10
#替换 apiserver.demo 为初始化 master 节点时所使用的 APISERVER_NAME
export APISERVER_NAME=itbestboy.com
echo "${MASTER_IP}    ${APISERVER_NAME}" >> /etc/hosts
#替换为 master 节点上 kubeadm token create 命令的输出
kubeadm join apiserver.demo:6443 --token mpfjma.4vjjg8flqihor4vt     --discovery-token-ca-cert-hash sha256:6f7a8e40a810323672de5eee6f4d19aa2dbdb38411845a1bf5dd63485c43d303

#安装可视化管理工具,只在master节点上执行
#kubectl apply -f https://addons.kuboard.cn/kuboard/kuboard-v3.yaml
#您也可以使用下面的指令,唯一的区别是,该指令使用华为云的镜像仓库替代 docker hub 分发 Kuboard 所需要的镜像
kubectl apply -f https://addons.kuboard.cn/kuboard/kuboard-v3-swr.yaml
#查看容器组是否全部running
watch kubectl get pods -n kuboard
#查看所有节点是否都处于reday状态
kubectl get nodes -o wide 
#卸载
kubectl delete -f https://addons.kuboard.cn/kuboard/kuboard-v3.yaml
rm -rf /usr/share/kuboard  #彻底清除数据在 master 节点以及带有 k8s.kuboard.cn/role=etcd 标签的节点上执行

Logo

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

更多推荐