install
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl
# If the folder `/etc/apt/keyrings` does not exist, it should be created before the curl command, read the note below.
# sudo mkdir -p -m 755 /etc/apt/keyrings
curl -fsSL <https://pkgs.k8s.io/core:/stable:/v1.30/deb/Release.key> | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
sudo chmod 644 /etc/apt/keyrings/kubernetes-apt-keyring.gpg # allow unprivileged APT programs to read this keyring
# This overwrites any existing configuration in /etc/apt/sources.list.d/kubernetes.list
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] <https://pkgs.k8s.io/core:/stable:/v1.30/deb/> /' | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo chmod 644 /etc/apt/sources.list.d/kubernetes.list
# helps tools such as command-not-found to work correctly
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl kubernetes-cni
sudo swapoff -a
sudo modprobe br_netfilter
lsmod | grep br_netfilter
sudo sysctl net.bridge.bridge-nf-call-iptables=1
kubectl cluster-info
systemctl start docker
echo 'KUBELET_EXTRA_ARGS="--node-ip=10.6.0.1"' | sudo tee /etc/sysconfig/kubelet
#sudo kubeadm init --pod-network-cidr=172.6.0.0/16 --apiserver-advertise-address "10.6.0.1" --cri-socket=unix:///var/run/containerd/containerd.sock
--ignore-preflight-errors=all
sudo kubeadm init --pod-network-cidr=10.6.0.0/24 --apiserver-advertise-address "10.6.0.1" --cri-socket=unix:///var/run/containerd/containerd.sock
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl apply -f <https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml>
kubeadm token create --print-join-command