安装 kubernetes(Ubuntu20.04环境)

安装 kubernetes

环境

  • 操作系统: Ubuntu20.04
  • cpu 架构: x86
  • kubernetes 版本: v1.22.16

基础环境设置

添加 sudo 权限

1
sudo visudo
1
%sudo ALL=(ALL:ALL) NOPASSWD:ALL
1
sudo -i

关闭 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
1
sysctl --system

安装基础软件

更新

1
sudo apt-get update

安装 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}

立即生效

1
su - ${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

更新源

1
apt-get update

安装 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>
comments powered by Disqus