在CentOS上安装Kubernetes集群,你可以使用Kubeadm工具。以下是一个基本的步骤指南,用于在单节点或多节点CentOS集群上安装Kubernetes。
在每个节点上设置一个唯一的主机名,并在/etc/hosts文件中添加所有节点的IP地址和主机名。
# 在每个节点上执行
echo "your-node-name" > /etc/hostname
hostnamectl set-hostname your-node-name
编辑/etc/hosts文件,添加如下内容:
192.168.1.1 node1.example.com node1
192.168.1.2 node2.example.com node2
# ... 其他节点
Kubernetes要求关闭swap内存,因为Kubernetes的内存管理不支持swap。
swapoff -a
为了确保重启后swap仍然关闭,编辑/etc/fstab文件并注释掉swap条目。
Kubernetes使用容器运行时来运行Pod。你可以选择Docker、containerd或CRI-O。以下是安装Docker的示例:
yum install -y docker
systemctl enable docker
systemctl start docker
确保Docker不会在启动时自动重启容器:
setenforce 0
sed -i 's/^\(exec-start\)/#\1/' /lib/systemd/system/docker.service
systemctl daemon-reload
systemctl restart docker
在所有节点上安装Kubeadm, kubelet和kubectl:
cat <<EOF >/etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
EOF
yum install -y kubelet kubeadm kubectl --disable-gpg-check
systemctl enable kubelet
systemctl start kubelet
在控制平面节点上运行以下命令来初始化Kubernetes集群:
kubeadm init --pod-network-cidr=10.244.0.0/16
这个命令会输出一些信息,包括如何将工作节点加入到集群中。
运行kubeadm init命令后,你需要配置kubectl以便你可以使用它来管理集群:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Kubernetes需要一个网络插件来支持Pod之间的网络通信。你可以选择Flannel、Calico、Weave等。以下是安装Flannel的示例:
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
在工作节点上运行控制平面节点初始化时输出的命令来加入集群。这个命令通常看起来像这样:
kubeadm join 192.168.1.1:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>
确保使用正确的IP地址、token和hash。
在控制平面节点上运行以下命令来验证所有节点是否已经成功加入集群:
kubectl get nodes
如果所有节点都显示为Ready状态,那么你的Kubernetes集群就已经成功安装并运行了。
请注意,这些步骤提供了一个基本的Kubernetes安装过程。根据你的具体需求和环境,可能需要进行额外的配置和调整。