在Kubernetes (K8S) 中,一个CPU 是可以跑 K8S 的。Kubernetes 是一个用于自动部署、扩展和管理容器化应用程序的开源平台,它可以在各种硬件配置中运行。在本文中,我们将解释如何在一个 CPU 上运行 K8S,并提供一些代码示例来帮助你更好地理解这个过程。

### 整个流程

为了让一个 CPU 能够运行 K8S,你需要按照以下步骤进行操作:

| 步骤 | 操作 |
| ---- | ---- |
| 1 | 安装 Docker:K8S 依赖于容器技术,首先需要安装 Docker。 |
| 2 | 安装 kubeadm:kubeadm 是 K8S 的部署工具,用于在单个节点上部署 K8S 集群。 |
| 3 | 初始化 K8S 集群:使用 kubeadm 初始化一个单节点的 K8S 集群。 |
| 4 | 加入工作节点:将当前节点加入 K8S 集群作为工作节点。 |
| 5 | 部署应用程序:部署一个简单的应用程序到 K8S 集群中进行验证。 |

### 操作步骤

#### 步骤 1:安装 Docker

```bash
# 更新包管理器
sudo apt update

# 安装 Docker
sudo apt install docker.io

# 启动 Docker 服务
sudo systemctl start docker

# 设置 Docker 开机自启动
sudo systemctl enable docker
```

#### 步骤 2:安装 kubeadm

```bash
# 安装 kubeadm、kubelet 和 kubectl
sudo apt update && sudo apt install -y apt-transport-https curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
sudo touch /etc/apt/sources.list.d/kubernetes.list
echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list
sudo apt update
sudo apt install -y kubeadm kubelet kubectl

# 检查 kubeadm 版本
kubeadm version
```

#### 步骤 3:初始化 K8S 集群

```bash
# 使用 kubeadm 初始化一个单节点集群
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
```

#### 步骤 4:加入工作节点

在初始化完 K8S 集群后,会得到加入集群的命令,如下所示:
```bash
kubeadm join : --token --discovery-token-ca-cert-hash sha256:
```

你需要在工作节点上运行上述命令,将其加入到 K8S 集群中作为工作节点。

#### 步骤 5:部署应用程序

例如,可以使用以下 YAML 文件来部署一个简单的 Nginx 应用程序:
```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
```

将上述 YAML 文件保存为 `nginx-deployment.yaml`,然后使用以下命令部署该应用程序:
```bash
kubectl apply -f nginx-deployment.yaml
```

### 总结

通过以上步骤,你就可以在一个 CPU 上成功运行 K8S,并部署一个简单的应用程序进行验证。希望这篇文章能帮助你理解如何在单节点上搭建 K8S 环境。如果你有任何疑问或困惑,都可以随时通过各种方式向社区寻求帮助。祝你顺利!