在 CentOS 7 上部署 Kubernetes(k8s)而不使用 Docker,可以选择其他容器运行时,例如 Containerd。以下是一个简要的 CentOS 7 上部署 Kubernetes(k8s)并使用 Containerd 作为容器运行时的详细教程:
注意:请在执行这些步骤之前备份重要数据,并确保你的系统满足 Kubernetes 的最低要求。
# 关闭 SELinux
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
# 关闭防火墙
sudo systemctl disable firewalld
sudo systemctl stop firewalld
# 安装 Containerd
sudo yum install -y containerd
# 启动 Containerd 并设置为开机自启动
sudo systemctl enable containerd
sudo systemctl start containerd
# 安装 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=kubelet kubeadm kubectl
EOF
# 安装 kubelet、kubeadm、kubectl
sudo yum install -y kubelet kubeadm kubectl
# 启动 kubelet 并设置为开机自启动
sudo systemctl enable kubelet
sudo systemctl start kubelet
# 替换 <your_pod_network_cidr> 为你选择的 Pod 网络 CIDR
sudo kubeadm init --pod-network-cidr=<your_pod_network_cidr>
# 记下 kubeadm init 输出中的 "kubeadm join" 命令,稍后将在 Worker 节点上运行它
# 将配置文件拷贝到用户主目录下
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
这里以 Calico 为例:
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
在 Worker 节点上运行在第 5 步中获得的 “kubeadm join” 命令。
通过上述步骤,你应该成功在 CentOS 7 上部署了一个基本的 Kubernetes 集群,并使用 Containerd 作为容器运行时。你可以使用 kubectl
命令来管理和操作你的 Kubernetes 集群。