# 从零开始使用Kubernetes(K8S)所需的机器数量

Kubernetes(常简称为K8S)是一种用于自动化部署、扩展和管理应用程序容器的开源平台。要使用K8S,我们至少需要准备一定数量的机器来搭建整个集群。接下来,我将向你详细解释在使用K8S之前需要准备多少台机器以及每个步骤应该做什么。

## 搭建K8S集群所需的机器数量

在搭建K8S集群之前,需要准备至少3台机器,包括1台Master节点和2台Worker节点。这是因为在K8S中,Master节点用于控制整个集群的状态和调度工作,而Worker节点用于运行应用程序容器。有了这样的架构,K8S才能实现高可用性和容错机制。

| 节点类型 | 数量 |
|----------|------|
| Master节点 | 1台 |
| Worker节点 | 2台 |

## 搭建K8S集群的步骤和代码示例

接下来,我将详细介绍搭建K8S集群所需的步骤以及每个步骤需要执行的操作和代码示例。

### 步骤1:安装Docker

在每台机器上安装Docker作为容器运行时,以便在K8S集群中运行容器。

```bash
# 安装Docker
sudo apt-get update
sudo apt-get install docker.io
```

### 步骤2:安装Kubernetes

在Master节点上安装Kubernetes组件,包括kubelet、kubeadm和kubectl。

```bash
# 安装Kubernetes组件
sudo apt-get update && sudo apt-get install -y apt-transport-https
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
```

### 步骤3:初始化Master节点

在Master节点上运行`kubeadm init`命令初始化K8S Master节点。

```bash
# 初始化Master节点
sudo kubeadm init
```

### 步骤4:加入Worker节点

在Worker节点上运行`kubeadm join`命令将Worker节点加入K8S集群。

```bash
# 将Worker节点加入集群
sudo kubeadm join :6443 --token --discovery-token-ca-cert-hash
```

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

在K8S集群中部署应用程序,将其调度到Worker节点上运行。

```yaml
# 部署一个示例NGINX应用程序
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
```

经过以上步骤,你已经成功搭建了一个包含1台Master节点和2台Worker节点的Kubernetes集群,并在集群中部署了一个示例NGINX应用程序。希望这篇文章对你有所帮助!