kubeadm 快速安装kubernetes 1.20.4单机版
host规划
/bin/cp -arf /etc/hosts /etc/hosts_bak
:> /etc/hosts
cat <<EOF | tee /etc/hosts
127.0.0.1 localhost
172.16.0.10 master
172.16.0.11 node1
172.16.0.17 node2
172.16.0.3 edge
172.16.0.120 bare
172.16.0.13 nfs
172.16.0.13 hub.my.com
172.16.0.2 jenkins.my.com
EOF
cat /etc/hosts
准备环境
#clean
timedatectl set-timezone Asia/Shanghai
kubeadm reset
yum remove -y kubelet kubeadm kubectl
rm -rf /root/.kube /etc/kubernetes
#打开内置的桥功能
echo "1" >/proc/sys/net/bridge/bridge-nf-call-iptables
cat <<EOF | tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF
cat <<EOF | tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system
# swap SELINUX
swapoff -a && sysctl -w vm.swappiness=0
sed -i '/swap/d' /etc/fstab
systemctl disable firewalld && systemctl stop firewalld
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
# ipvs
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
docker安装
https://sre.ink/centos-quickly-docker/
aliyun kubernetes repo
rm -rf /etc/yum.repos.d/kubernetes.repo
cat <<EOF | tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
yum install -y kubelet kubeadm kubectl
systemctl enable --now kubelet
镜像拉取 初始化master
kubeadm config images pull --config kubeadm.yaml
kubeadm init --apiserver-advertise-address=172.16.0.10 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.20.4 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16
calico cni
# https://kubernetes.io/docs/concepts/cluster-administration/addons/
# https://docs.projectcalico.org/getting-started/kubernetes/self-managed-onprem/onpremises
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
kubectl -n kube-system get pods |grep calico
kubectl profile
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
or:
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> /etc/profile
source /etc/profile
ipvs mode
worker kubeadm join
kubeadm token create --print-join-command
kubeadm join 172.16.0.10:6443 --token znd5ff.y2b9bo2h40fero7x \
--discovery-token-ca-cert-hash sha256:4899a66e66216d9315107ac79fabe868f64bc97b0ca19803756fff586e10d187