在配置基于Rocky Linux 8.9的Kubernetes集群时,您需要遵循一系列具体的步骤以确保集群的稳定性和性能。以下是这一过程的概要:
系统环境设置
- 系统更新:
首先,确保所有节点更新到最新版本。
sudo dnf update -y
sudo reboot
- 主机名设置:
每个节点都需要一个唯一的主机名。
sudo hostnamectl set-hostname
例如,master节点可设为 master-node,工作节点可设置为 worker-node1,worker-node2等。
- 配置hosts文件:
在所有节点上配置 /etc/hosts。
master-node
worker-node1
worker-node2
- 禁用SELinux:
由于SELinux可能与容器运行时产生冲突,因此建议将其禁用。
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
- 关闭Swap:
为了Kubernetes正常运行,需要关闭swap。
sudo swapoff -a
sudo sed -i '/ swap / s/^(.*)$/#\1/g' /etc/fstab
- 防火墙设置:
建议暂时关闭防火墙,以简化部署过程。
sudo systemctl stop firewalld
sudo systemctl disable firewalld
安装Docker和Kubernetes
- 安装Docker引擎:
Kubernetes要求存在容器运行环境,Docker是一个流行的选择。
sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
sudo dnf install docker-ce docker-ce-cli containerd.io -y
sudo systemctl start docker
sudo systemctl enable docker
- 配置Docker Cgroup驱动:
Kubernetes推荐使用 systemd作为cgroup驱动。
sudo mkdir /etc/docker
cat <<EOF | sudo tee /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
sudo systemctl restart docker
- 添加Kubernetes仓库:
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 https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
exclude=kube*
EOF
- 安装Kubernetes组件:
sudo dnf install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
sudo systemctl enable --now kubelet
初始化Kubernetes集群
- 初始化主节点:
在master节点上执行以下命令来初始化集群:
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
初始化成功后,记录下显示的 kubeadm join命令。
- 配置kubectl访问:
为 root用户或非 root用户设置kubectl访问权限。
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
- 安装网络插件:
可以安装任意网络插件,如Calico或Flannel。例如Flannel:
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
加入节点到集群
在每个worker节点上运行在初始化主节点时记录的 kubeadm join命令:
sudo kubeadm join : --token --discovery-token-ca-cert-hash sha256:
验证集群状态
执行以下命令在master节点查看集群状态:
kubectl get nodes
所有节点的状态应为 Ready,这表明它们已成功加入集群并可以运行Pod。
总结
这是在Rocky Linux 8.9上配置Kubernetes集群的高级概述。确保遵循每个步骤,不要跳过环境设置部分,因为这是集群稳定性的关键。