环境
- 操作系统: Ubuntu20.04
- cpu 架构: x86
- kubernetes 版本: v1.22.16
基础环境设置
添加 sudo 权限
1
| %sudo ALL=(ALL:ALL) NOPASSWD:ALL
|
关闭 Swap
1
2
| swapoff -a
vi /etc/fstab
|
remove the line with swap keyword
设置 iptables
1
2
3
| cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF
|
1
2
3
4
| cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
|
安装基础软件
更新
安装 docker
1
| sudo apt install docker.io -y
|
设置 docker
1
| vi /etc/docker/daemon.json
|
1
2
3
| {
"exec-opts": ["native.cgroupdriver=systemd"]
}
|
1
2
| systemctl daemon-reload
systemctl restart docker
|
添加普通用户
1
| sudo usermod -aG docker ${USER}
|
立即生效
安装 apt-transport-https ca-certificates curl
1
| apt-get install -y apt-transport-https ca-certificates curl
|
安装 kubeadm
添加库
1
| curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
|
1
2
3
| tee /etc/apt/sources.list.d/kubernetes.list <<-'EOF'
deb https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial main
EOF
|
更新源
安装 kubelet, kubeadm, kubectl
查看版本
1
| apt-cache madison kubectl|grep 1.22
|
1
2
| apt-get install -y kubelet=1.22.16-00 kubeadm=1.22.16-00 kubectl=1.22.16-00
apt-mark hold kubelet kubeadm kubectl
|
kubeadm init
1
2
3
4
| kubeadm init \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.22.16 \
--pod-network-cidr=192.168.0.0/16
|
如果用 containerd 的话
1
2
3
4
5
| kubeadm init \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.22.16 \
--pod-network-cidr=192.168.0.0/16 \
--cri-socket /run/containerd/containerd.sock
|
使用
普通用户
1
2
3
| mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
|
root 用户
1
| export KUBECONFIG=/etc/kubernetes/admin.conf
|
取消节点污点
1
2
| kubectl taint nodes --all node-role.kubernetes.io/master-
kubectl taint nodes --all node-role.kubernetes.io/control-plane- node-role.kubernetes.io/master-
|
安装 calico cni plugin
https://docs.projectcalico.org/getting-started/kubernetes/quickstart
1
2
| kubectl create -f https://docs.projectcalico.org/manifests/tigera-operator.yaml
kubectl create -f https://docs.projectcalico.org/manifests/custom-resources.yaml
|
添加节点
master
1
2
| kubeadm token create --print-join-command
kubeadm token list
|
node
1
| kubeadm join --token <token> <control-plane-host>:<control-plane-port> --discovery-token-ca-cert-hash sha256:<hash>
|