一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第20天,点击查看活动详情。
参考地址
www.kubernetes.org.cn/5650.htmlkuboard.cn/install/ins…
安装步骤
安装docker
在 master 节点和 worker 节点都要执行
最后一个参数 1.18.9 用于指定 kubenetes 版本,支持所有 1.18.x 版本的安装
腾讯云 docker hub 镜像
export REGISTRY_MIRROR="mirror.ccs.tencentyun.com"
DaoCloud 镜像
export REGISTRY_MIRROR="f1361db2.m.daocloud.io"
华为云镜像
export REGISTRY_MIRROR="05f073ad3c0010ea0f4bc00b7105ec20.mirror.swr.myhuaweicloud.com"
阿里云 docker hub 镜像
export REGISTRY_MIRROR=registry.cn-hangzhou.aliyuncs.com curl -sSL kuboard.cn/install-scr… | sh -s 1.18.9
初始化master
-
只在 master 节点执行
-
替换 x.x.x.x 为 master 节点实际 IP(请使用内网 IP)
export 命令只在当前 shell 会话中有效,开启新的 shell 窗口后,如果要继续安装过程,请重新执行此处的 export 命令
export MASTER_IP=172.25.9.160
- 替换 apiserver.demo 为 您想要的 dnsName
export APISERVER_NAME=apiserver.demo
- Kubernetes 容器组所在的网段,该网段安装完成后,由 kubernetes 创建,事先并不存在于您的物理网络中
export POD_SUBNET=10.100.0.1/16 echo "{APISERVER_NAME}" >> /etc/hosts
#!/bin/bash
-
只在 master 节点执行
-
脚本出错时终止执行
set -e if [ ${#POD_SUBNET} -eq 0 ] || [ ${#APISERVER_NAME} -eq 0 ]; then echo -e "\033[31;1m请确保您已经设置了环境变量 POD_SUBNET 和 APISERVER_NAME \033[0m" echo 当前POD_SUBNET=$POD_SUBNET echo 当前APISERVER_NAME=$APISERVER_NAME exit 1 fi
- 查看完整配置选项
rm -f ./kubeadm-config.yaml cat < ./kubeadm-config.yaml apiVersion: kubeadm.k8s.io/v1beta2 kind: ClusterConfiguration kubernetesVersion: v1.18.9 imageRepository: registry.aliyuncs.com/k8sxio controlPlaneEndpoint: "{POD_SUBNET}" dnsDomain: "cluster.local" EOF
- 您也可以只使用--ignore-preflight-errors=NumCPU标志运行命令。这实际上将跳过该问题。这就是我在实验室所做的。
kubeadm init --config=kubeadm-config.yaml --upload-certs --ignore-preflight-errors=NumCPU
- 配置 kubectl
rm -rf /root/.kube/ mkdir /root/.kube/ cp -i /etc/kubernetes/admin.conf /root/.kube/config
-
安装 calico 网络插件
echo "安装calico-3.13.1" rm -f calico-3.13.1.yaml wget kuboard.cn/install-scr… kubectl apply -f calico-3.13.1.yaml
验证
-
只在 master 节点执行
-
执行如下命令,等待 3-10 分钟,直到所有的容器组处于 Running 状态
watch kubectl get pod -n kube-system -o wide
- 查看 master 节点初始化结果
kubectl get nodes -o wide
初始化worker
- 替换 x.x.x.x 为 master 节点实际 IP(请使用内网 IP)
export MASTER_IP=172.17.63.184
- 替换 apiserver.demo 为初始化 master 节点时所使用的 APISERVER_NAME
export APISERVER_NAME=apiserver.demo echo "{APISERVER_NAME}" >> /etc/hosts
- 替换为 master 节点上 kubeadm token create 命令的输出
kubeadm join apiserver.demo:6443 --token gmlp9i.ev1vrtswzzhzlerg --discovery-token-ca-cert-hash sha256:731ac799afaed469f7f9ac5882abc4055cb7b42ca5bf2e86fade01c682682f8f
export MASTER_IP=172.17.63.184
- 替换 apiserver.demo 为 您想要的 dnsName
export APISERVER_NAME=apiserver.demo
- Kubernetes 容器组所在的网段,该网段安装完成后,由 kubernetes 创建,事先并不存在于您的物理网络中
export POD_SUBNET=10.100.0.1/16 echo "{APISERVER_NAME}" >> /etc/hosts