1、环境配置
(1)添加主机名称解析记录
cat > /etc/hosts << EOF
192.168.44.200 master01 master01.bypass.cn
192.168.44.201 node01 node01.bypass.cn
192.168.44.202 node02 node02.bypass.cn
EOF
(2)禁止K8s使用虚拟内存
swapoff -a
sed -ri 's@(.*swap.*)@#\1@g' /etc/fstab
(3)开启内核ipv4转发
modprobe br_netfiltercat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward=1
vm.swappiness=0
EOFsysctl -p /etc/sysctl.d/k8s.conf
(4) 安装ipvsadm,加载ipvs模块
apt-get install ipset ipvsadm -y
cat > /etc/modules-load.d/ipvs.conf << EOF
ip_vs
ip_vs_rr
ip_vs_wrr
ip_vs_sh
nf_conntrack
EOF
加载模块,并进行检查
modprobe --all ip_vs ip_vs_rr ip_vs_wrr ip_vs_sh nf_conntrack
lsmod|grep -e ip_vs -e nf_conntrack
(5)时间同步
apt-get install chrony -y
systemctl start chrony
systemctl enable chrony
timedatectl set-timezone Asia/Shanghai
chronyc sources
2、部署集群
(1)安装Containerd
wget http://file.oldxu.net/cri-containerd-1.6.18-linux-amd64.tar.gz
tar xf cri-containerd-1.6.18-linux-amd64.tar.gz -C /
systemctl daemon-reload
systemctl start containerd
systemctl enable containerd
ctr versionmkdir -p /etc/containerd
containerd config default > /etc/containerd/config.toml
vi /etc/containerd/config.toml
修改内容
[plugins."io.containerd.grpc.v1.cri"]sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.9"[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]SystemdCgroup = true
[plugins."io.containerd.grpc.v1.cri".registry.mirrors][plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]endpoint = ["https://kd88kykb.mirror.aliyuncs.com"]
测试
ctr image pull dokcer.io/library/nginx:1.20
(2)安装nerdctl
wget http://file.oldxu.net/nerdctl-1.2.1-linux-amd64.tar.gz
tar xf nerdctl-1.2.1-linux-amd64.tar.gz
mv nerdctl /usr/bin/#ln -s /usr/bin/docker /usr/bin/nerdctl
#docker imagesecho 'source <(nerdctl completion bash)' >> /etc/profile
source /etc/profilenerdctl pull nginx:1.18
nerdctl images
(3)安装集群工具
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOFapt update && apt-get install -y kubeadm=1.26.0-00 kubelet=1.26.0-00 kubectl=1.26.0-00#下载容器镜像
kubeadm config images list --kubernetes-version v1.26.0
kubeadm config images pull --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.26.0
(4)初始化Master节点
kubeadm init \
--apiserver-advertise-address=192.168.44.200 \
--control-plane-endpoint="master01.bypass.cn" \
--image-repository=registry.aliyuncs.com/google_containers \
--kubernetes-version=v1.26.0 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16 \
--cri-socket=/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
(5) 初始化node节点
kubeadm join master01.bypass.cn:6443 --token ai9eru.bueon1ib9bhlf5rz \
--discovery-token-ca-cert-hash sha256:50c21633205d2d47d1c4e496a422e2c56018a5bc03d62849ff5c5ceb8456407f
(6)安装Calico网络插件
https://docs.projectcalico.org/manifests/calico.yaml
vi calico.yaml # - name: CALICO_IPV4POOL_CIDR # value: "10.244.0.0/16"
kubectl apply -f calico.yaml