环境准备
- 三台Centos7虚拟机
- 三台的ip地址和hostname
192.168.120.221 node01
192.168.120.222 node02
192.168.120.223 node03
注意:三台虚拟机的hostname不能是一样的,否则会存在问题
- 虚拟机配置要求
2核CPU,4G内存以上
安装教程推荐
由于网络限制的问题,直接使用官网的教程进行安装是有问题的,因此,我们要使用国内的镜像进行安装
kuboard.cn 是小编见到的最适合新手入门的安装教程
- 本机host映射设置,即访问本机的hsotname时,能够映射到
127.0.0.1
上,三台主机上都要执行
echo "127.0.0.1 $(hostname)" >> /etc/hosts
- 安装docker及kubelet
使用root
账户,在三台主机上安装 docker、kubectl 、kubeadm 、 kubelet, kuboard.cn 提供了安装脚本,我们只需要在三台虚拟机上执行即可
export REGISTRY_MIRROR=https://registry.cn-hangzhou.aliyuncs.com
curl -sSL https://kuboard.cn/install-script/v1.18.x/install_kubelet.sh | sh -s 1.18.6
- 初始化 master 节点
设定192.168.120.221 node01
为master 节点,在master节点上执行初始化主节点脚本
# 只在 master 节点执行
# export 命令只在当前 shell 会话中有效,开启新的 shell 窗口后,如果要继续安装过程,请重新执行此处的 export 命令
export MASTER_IP=192.168.120.221
# 替换 apiserver.demo 为 您想要的 dnsName
export APISERVER_NAME=apiserver
# 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.18.x/init_master.sh | sh -s 1.18.6
在上述脚本执行完成之后,需要执行两个命令查看安装结果
kubectl get nodes
kubectl get pods -A
在第一个命令的STATUS
为Ready
和第二个命令的结果列表中所有的READY
都为1/1
后,master节点安装成功
- 初始化 worker节点
- 首先要从master中获取token
kubeadm token create --print-join-command
- . 在node02、node03节点上执行初始化命令
# 只在 worker 节点执行
export MASTER_IP=192.168.120.221
# 替换 apiserver.demo 为初始化 master 节点时所使用的 APISERVER_NAME
export APISERVER_NAME=apiserver
echo "${MASTER_IP} ${APISERVER_NAME}" >> /etc/hosts
kubeadm join apiserver:6443 --token 2dd0un.a4ibravo38l2k685 --discovery-token-ca-cert-hash sha256:e18183b5f80ab6946992195a47b47310e27c6b5ba160b4fdebf0ea4259702ae5
- 在两个worker节点上执行完成后,同样在master节点上执行
kubectl get nodes
和kubectl get pods -A
,显示结果为
此时,单 master节点的kubernetes集群就安装部署成功了!