引言

Kubernetes(简称K8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用。CentOS 8是一个流行的Linux发行版,它为Kubernetes提供了稳定的运行环境。本文将带您从入门到实战,详细介绍如何在CentOS 8上快速上手Kubernetes。

前提条件

在开始之前,请确保您的CentOS 8系统满足以下条件:

  • 系统已更新到最新版本
  • 系统已安装Docker
  • 系统已配置好SSH访问权限

第一步:安装Docker

Kubernetes依赖于Docker来运行容器,因此首先需要安装Docker。

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo systemctl enable docker

第二步:安装Kubeadm、Kubelet和Kubectl

Kubeadm、Kubelet和Kubectl是Kubernetes集群管理的关键组件。

sudo yum install -y kubeadm kubelet kubectl
sudo systemctl start kubelet
sudo systemctl enable kubelet

在首次启动Kubelet时,您可能需要执行以下命令以允许其在系统启动时运行:

sudo systemctl enable --now kubelet

第三步:初始化Kubernetes集群

使用kubeadm命令初始化Kubernetes集群。以下命令将初始化一个单节点集群。

sudo kubeadm init --pod-network-cidr=10.244.0.0/16

初始化完成后,您将看到一系列命令,用于将您的kubectl配置文件添加到您的~/.kube目录。请按照以下步骤操作:

  1. 打开终端。
  2. 导入kubeconfig文件:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
  1. 修改kubectl配置文件,允许非root用户执行kubectl命令:
sudo vi $HOME/.kube/config

找到kind: Config部分,将users中的user修改如下:

user:
  name: "k8s"
  user:
    token: "<你的token>"

第四步:安装Pod网络

为了使容器之间能够相互通信,我们需要安装一个Pod网络。以下是安装Calico网络的一个示例:

kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

第五步:验证集群状态

使用以下命令检查集群的状态:

kubectl get nodes

您应该看到节点状态为“Ready”,表明集群已成功初始化。

第六步:部署示例应用

现在我们已经有一个运行的Kubernetes集群,我们可以部署一个示例应用来测试它。

kubectl apply -f https://k8s.io/docs/tasks/deploy-app/deployment.yaml

使用以下命令检查Pod的状态:

kubectl get pods

当Pod状态为“Running”时,说明应用已成功部署。

总结

通过以上步骤,您已经在CentOS 8上成功初始化了一个Kubernetes集群,并部署了一个示例应用。现在,您可以开始探索Kubernetes的更多高级功能和最佳实践。希望本文能帮助您快速上手Kubernetes。