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