创建k8s集群
2019-12-09 本文已影响0人
快去学习不然怎么去看aimer
本实验使用kvm虚拟化进行
前提
master、node节点都要满足下列条件
cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
#得到的版本号必须大于7.5
hostname
rourou
#得到的结果不能为localhost
lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 8
#cpu个数不能小于2各
#下面的方法不适用与arm架构
echo "127.0.0.1 $(hostname)" >> /etc/hosts
#设置解析
必要条件
任意节点 centos 版本在兼容列表中
任意节点 hostname 不是 localhost
任意节点 CPU 内核数量大于等于 2
在master与node节点都要执行
curl -sSL https://kuboard.cn/install-script/v1.16.0/install-kubelet.sh | sh
初始化master节点
# 只在 master 节点执行
# 替换 x.x.x.x 为 master 节点实际 IP(请使用内网 IP)
# export 命令只在当前 shell 会话中有效,开启新的 shell 窗口后,如果要继续安装过程,请重新执行此处的 export 命令
export MASTER_IP=x.x.x.x
# 替换 apiserver.demo 为 您想要的 dnsName (不建议使用 master 的 hostname 作为 APISERVER_NAME)
export APISERVER_NAME=apiserver.demo
# Kubernetes 容器组所在的网段,该网段安装完成后,由 kubernetes 创建,事先并不存在于您的物理网络中
export POD_SUBNET=10.100.0.1/20
echo "${MASTER_IP} ${APISERVER_NAME}" >> /etc/hosts
curl -sSL https://kuboard.cn/install-script/v1.16.0/init-master.sh | sh
检查master初始化的结果
# 只在 master 节点执行
# 执行如下命令,等待 3-10 分钟,直到所有的容器组处于 Running 状态
watch kubectl get pod -n kube-system -o wide
# 查看 master 节点初始化结果
kubectl get nodes -o wide
初始化worker节点
# 只在 master 节点执行
kubeadm token create --print-join-command
# kubeadm token create 命令的输出
kubeadm join apiserver.demo:6443 --token mpfjma.4vjjg8flqihor4vt --discovery-token-ca-cert-hash sha256:6f7a8e40a810323672de5eee6f4d19aa2dbdb38411845a1bf5dd63485c43d303
下列操作只在worker节点执行
# 只在 worker 节点执行
# 替换 ${MASTER_IP} 为 master 节点实际 IP
# 替换 ${APISERVER_NAME} 为初始化 master 节点时所使用的 APISERVER_NAME
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
检查是否将worker节点添加到集群中
kubectl get nodes
NAME STATUS ROLES AGE VERSION
demo-master-a-1 Ready master 5m3s v1.16.0
demo-worker-a-1 Ready <none> 2m26s v1.16.0
demo-worker-a-2 Ready <none> 3m56s v1.16.0
移除节点
# 只在 worker 节点执行
kubeadm reset
# 只在 master 节点执行
kubectl delete node demo-worker-x-x