Kubernetes(K8s)是一个用于自动部署、扩展和管理容器化应用程序的开源平台。它由管理节点和工作节点组成,其中管理节点用于控制和管理整个集群,而工作节点用于运行应用程序的容器。本文将介绍K8s管理节点和工作节点的概念,并提供一些示例代码来帮助新手了解如何实现这些关键字。

首先,我们来看一下实现K8s管理节点和工作节点所涉及的步骤。

| 步骤 | 操作 | 代码示例 |
|------|----------|----------------------------------------|
| 1 | 安装 K8s | `sudo apt-get install kubeadm kubelet kubectl` |
| 2 | 初始化管理节点 | `sudo kubeadm init` |
| 3 | 配置管理节点 | `mkdir -p $HOME/.kube`
`sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config`
`sudo chown $(id -u):$(id -g) $HOME/.kube/config` |
| 4 | 部署网络插件 | `sudo kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml` |
| 5 | 加入工作节点 | `sudo kubeadm join <管理节点IP>:<管理节点端口> --token --discovery-token-ca-cert-hash ` |

接下来,我们来详细了解每个步骤需要做什么,并提供相应的代码示例。请确保你已经安装了Docker和Kubectl,并且有两个虚拟机(或物理机)用作管理节点和工作节点。

### 1. 安装 K8s
K8s的安装需要在所有节点进行操作。打开终端并运行以下命令,以安装Kubeadm、Kubelet和Kubectl三个组件。

```shell
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main"
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
```

### 2. 初始化管理节点
管理节点是整个K8s集群的控制中心。在管理节点上运行下面的命令以初始化。

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

这个命令将根据官方建议初始化管理节点,并为您提供一个用于将工作节点加入集群的令牌。

### 3. 配置管理节点
配置管理节点的目的是为kubectl命令提供访问集群的权限。运行以下命令以完成配置。

```shell
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
```

### 4. 部署网络插件
网络插件是实现K8s集群各节点之间通信的重要组件。这里我们使用Calico作为网络插件。运行以下命令部署Calico网络插件。

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

### 5. 加入工作节点
工作节点是K8s集群中运行应用程序的服务器。在工作节点上运行以下命令,将其加入到已经初始化的管理节点中。请替换<管理节点IP>、<管理节点端口>、为相应的值。

```shell
sudo kubeadm join <管理节点IP>:<管理节点端口> --token --discovery-token-ca-cert-hash
```

完成上述步骤后,您的K8s集群将包含一个管理节点和一个(或多个)工作节点,您可以使用kubectl命令在集群中进行应用程序的部署和管理。

这篇文章通过表格列出了实现K8s管理节点和工作节点的步骤,并提供了每个步骤所需的代码示例。希望这篇科普文章可以帮助刚入行的小白了解K8s关键词,并能够成功搭建自己的K8s集群。