# tar -zxvf nerdctl-1.1.0-linux-amd64.tar.gz
# mv nerdctl /bin/
# echo 'source <(nerdctl completion bash)' >> /etc/profile
# echo 'export CONTAINERD_NAMESPACE=k8s.io' >> /etc/profile
# source /etc/profile
# nerdctl images
四、修改系统内核配置
该章节的所有操作所有节点上均要执行。
设置系统允许转发,加载k8s所需的内核模块。
# cat > /etc/modules-load.d/containerd.conf <<EOF
overlay
br_netfilter
EOF
# modprobe overlay
# modprobe br_netfilter
# cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
# sysctl -p /etc/sysctl.d/k8s.conf
五、安装kubelet软件
该章节的所有操作所有节点上均要执行。
# yum install -y kubelet-1.26.0-0 kubeadm-1.26.0-0 kubectl-1.26.0-0 --disableexcludes=kubernetes
# systemctl restart kubelet ; systemctl enable kubelet
六、初始化K8S集群
初始化k8s环境
该操作只在master节点上执行。命令执行完成过后记录下结果。
# kubeadm init --apiserver-advertise-address=192.168.100.200 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version=v1.26.0 --pod-network-cidr=10.244.0.0/16
环境初始完成过后根据提示执行命令
# mkdir -p $HOME/.kube
# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
# sudo chown $(id -u):$(id -g) $HOME/.kube/config
# kubectl get nodes
命令执行完成过后会有如下输出,最好复制出来保存。
Your Kubernetes control-plane has initialized successfully!
To start using your cluster, you need to run the following as a regular user:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Alternatively, if you are the root user, you can run:
export KUBECONFIG=/etc/kubernetes/admin.conf
You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
https://kubernetes.io/docs/concepts/cluster-administration/addons/
Then you can join any number of worker nodes by running the following on each as root:
kubeadm join 192.168.100.200:6443 --token lskbcb.y1d3ch2a2in75y8x \
--discovery-token-ca-cert-hash sha256:0894894ba4f405f44499b71002c762bebfd9533be6a7d17fc6d56d77db645f84
配置kubectl命令自动补齐
该操作所有节点上均要执行。
# echo 'source <(kubectl completion bash)' >> /etc/profile
# source /etc/profile
六、子节点加入k8s集群
获取加入集群的命令
该操作只在master节点上执行。
master节点环境初始化过后会自动生成一个命令。使用这个命令直接复制到子节点上实现子节点加入集群。
如果忘记了使用命令如下获取。
# kubeadm token create --print-join-command
加入集群
该操作只在子节点上执行。
通过之前记录的命令或者上一步获取的命令,在子节点中复制执行。
# kubeadm join 192.168.100.200:6443 --token q6qmz0.wq7l7iavpqr6rd5b --discovery-token-ca-cert-hash sha256:0894894ba4f405f44499b71002c762bebfd9533be6a7d17fc6d56d77db645f84
七、安装网络插件calico
该章节操作只在master节点上执行。
下载calico配置文件
执行wget命令下载calico的yaml文件。
# wget https://docs.projectcalico.org/manifests/calico.yaml --no-check-certificate
修改calico配置文件
把calico.yaml文件中的CALICO_IPV4POOL_CIDR行和其下一行前的#删除掉,并CALICO_IPV4POOL_CIDR其下行的IP地址段改为规划文件中的网段。并在calico.yaml文件中增加蓝色字体内容,指定ens33为通信网卡(多网卡环境中必须要使用,请根据自己实际情况选择正确的网卡),格式要和CALICO_IPV4POOL_CIDR对齐。
# vim calico.yaml
- name: CALICO_IPV4POOL_CIDR
value: "10.244.0.0/16"
- name: IP_AUTODETECTION_METHOD
value: "interface=ens33"
下载caclio所需镜像(可选)
该操作只在master节点上执行。
手动下载calico所需镜像并上传到所有节点中,执行了kubectl apply -f calico.yaml命令后系统会自东下载,但是会有点慢。我们