github.com/qsunny/k8s@v0.0.0-20220101153623-e6dca256d5bf/k8s_install/init_master.sh (about) 1 #!/bin/bash 2 3 # 只在 master 节点执行 4 5 # 脚本出错时终止执行 6 set -e 7 8 if [ ${#POD_SUBNET} -eq 0 ] || [ ${#APISERVER_NAME} -eq 0 ]; then 9 echo -e "\033[31;1m请确保您已经设置了环境变量 POD_SUBNET 和 APISERVER_NAME \033[0m" 10 echo 当前POD_SUBNET=$POD_SUBNET 11 echo 当前APISERVER_NAME=$APISERVER_NAME 12 exit 1 13 fi 14 15 16 # 查看完整配置选项 https://godoc.org/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta2 17 rm -f ./kubeadm-config.yaml 18 cat <<EOF > ./kubeadm-config.yaml 19 --- 20 apiVersion: kubeadm.k8s.io/v1beta2 21 kind: ClusterConfiguration 22 kubernetesVersion: v${1} 23 imageRepository: registry.aliyuncs.com/k8sxio 24 controlPlaneEndpoint: "${APISERVER_NAME}:6443" 25 networking: 26 serviceSubnet: "10.96.0.0/16" 27 podSubnet: "${POD_SUBNET}" 28 dnsDomain: "cluster.local" 29 dns: 30 type: CoreDNS 31 imageRepository: swr.cn-east-2.myhuaweicloud.com${2} 32 imageTag: 1.8.0 33 34 --- 35 apiVersion: kubelet.config.k8s.io/v1beta1 36 kind: KubeletConfiguration 37 cgroupDriver: systemd 38 EOF 39 40 # kubeadm init 41 # 根据您服务器网速的情况,您需要等候 3 - 10 分钟 42 echo "" 43 echo "抓取镜像,请稍候..." 44 kubeadm config images pull --config=kubeadm-config.yaml 45 echo "" 46 echo "初始化 Master 节点" 47 kubeadm init --config=kubeadm-config.yaml --upload-certs 48 49 # 配置 kubectl 50 rm -rf /root/.kube/ 51 mkdir /root/.kube/ 52 cp -i /etc/kubernetes/admin.conf /root/.kube/config 53 54 # 安装 calico 网络插件 55 # 参考文档 https://docs.projectcalico.org/v3.13/getting-started/kubernetes/self-managed-onprem/onpremises 56 echo "" 57 echo "安装calico-3.17.1" 58 rm -f calico-3.17.1.yaml 59 kubectl create -f https://kuboard.cn/install-script/v1.21.x/calico-operator.yaml 60 wget https://kuboard.cn/install-script/v1.21.x/calico-custom-resources.yaml 61 sed -i "s#192.168.0.0/16#${POD_SUBNET}#" calico-custom-resources.yaml 62 kubectl create -f calico-custom-resources.yaml