在CentOS上配置Kubernetes(K8s)安裝環境需要按照以下步驟進行:
安裝Docker: 在所有節點上安裝Docker,命令如下:
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install -y docker-ce-18.09.9-3.el7
systemctl enable docker && systemctl start docker
設置K8s環境準備條件:
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
swapoff -a
sed -i 's/.*swap.*/#&/' /etc/fstab
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system
配置主機名: 在所有節點上設置主機名,例如:
hostnamectl set-hostname k8s-master
配置hosts文件: 在所有節點上編輯/etc/hosts文件,添加集群內部的IP地址和主機名映射:
192.168.10.1 k8s-master
192.168.10.2 node1
192.168.10.3 node2
安裝Kubeadm、Kubelet和Kubectl: 添加K8s的YUM倉庫:
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearch
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg
EOF
安裝kubeadm、kubelet和kubectl:
yum install -y kubelet-1.22.15 kubeadm-1.22.15 kubectl-1.22.15
systemctl enable kubelet && systemctl start kubelet
初始化Master節點: 在Master節點上初始化Kubernetes集群:
kubeadm init --apiserver-advertise-address 192.168.10.3 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.22.15 --service-cidr 10.96.0.0/12 --pod-network-cidr 10.244.0.0/16
配置kubectl: 在Master節點上配置kubectl:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
添加Worker節點: 在所有Worker節點上運行初始化命令,該命令由Master節點初始化時生成:
kubeadm join 192.168.10.3:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef
部署CNI網絡插件: 例如,部署Calico網絡插件:
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml