单节点一键部署k8s 脚本 (适用于课翻墙/墙外的节点,此处使用的是阿里云的香港主机)
#!/bin/bash
IP=$1
echo "安装dcoker"
sleep 2
# docker
wget -P /etc/yum.repos.d/ https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce
echo "启动docker"
sleep 2
systemctl start docker
systemctl enable docker
echo "配置hostname"
sleep 2
hostnamectl --static set-hostname k8s-master01
echo "关闭selinux"
sleep 2
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
echo "关闭swap分区"
sleep 2
swapoff -a
sed -i "/swap/d" /etc/fstab
echo "内核参数配置"
sleep 2
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system
echo "配置k8s 的yum源"
sleep 2
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
echo "安装k8s"
sleep 2
yum install -y kubelet-1.21.0-0 kubeadm-1.21.0-0 kubectl-1.21.0-0 --disableexcludes=kubernetes
echo "启动k8s"
sleep 2
systemctl start kubelet
systemctl enable kubelet
echo "初始化k8s"
sleep 2
kubeadm init \
--kubernetes-version=v1.21.0 \
--pod-network-cidr=10.244.0.0/16 \
--apiserver-advertise-address ${IP} \
--v=6
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
echo "安装网络插件flannel"
sleep 2
kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml