46 lines
1.4 KiB
Bash
46 lines
1.4 KiB
Bash
#!/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
|
|
|
|
|
|
# 查看完整配置选项 https://godoc.org/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta2
|
|
rm -f ./kubeadm-config.yaml
|
|
cat <<EOF > ./kubeadm-config.yaml
|
|
apiVersion: kubeadm.k8s.io/v1beta2
|
|
kind: ClusterConfiguration
|
|
kubernetesVersion: v${1}
|
|
imageRepository: registry.aliyuncs.com/k8sxio
|
|
controlPlaneEndpoint: "${APISERVER_NAME}:6443"
|
|
networking:
|
|
serviceSubnet: "10.96.0.0/16"
|
|
podSubnet: "${POD_SUBNET}"
|
|
dnsDomain: "cluster.local"
|
|
EOF
|
|
|
|
# kubeadm init
|
|
# 根据您服务器网速的情况,您需要等候 3 - 10 分钟
|
|
kubeadm config images pull --config=kubeadm-config.yaml
|
|
kubeadm init --config=kubeadm-config.yaml --upload-certs
|
|
|
|
# 配置 kubectl
|
|
rm -rf /root/.kube/
|
|
mkdir /root/.kube/
|
|
cp -i /etc/kubernetes/admin.conf /root/.kube/config
|
|
|
|
# 安装 calico 网络插件
|
|
# 参考文档 https://docs.projectcalico.org/v3.13/getting-started/kubernetes/self-managed-onprem/onpremises
|
|
echo "安装calico-3.13.1"
|
|
rm -f calico-3.13.1.yaml
|
|
wget https://kuboard.cn/install-script/calico/calico-3.13.1.yaml
|
|
kubectl apply -f calico-3.13.1.yaml
|