k8s集群为啥三个节点

Kubernetes(简称K8S)是一个用于管理容器化应用程序的开源平台。为了保证高可用性和容错性,K8S通常会搭建一个由多个节点组成的集群。为了帮助刚入行的小白理解为什么K8S集群需要三个节点,本文将详细介绍K8S集群搭建的步骤,并附上相应的代码示例。

整个K8S集群搭建的过程可以分为以下几个步骤:

步骤 | 描述
----|----
1 | 安装并配置Kubernetes Master节点
2 | 安装并配置Kubernetes Worker节点
3 | 添加节点到Kubernetes集群

下面我们将逐步介绍每个步骤需要做的事情,以及相应的代码示例。

步骤1:安装并配置Kubernetes Master节点

作为集群的控制中心,Master节点主要负责调度和管理整个Kubernetes集群的资源。在这个步骤中,我们将需要进行以下操作:

1.1 安装并配置Docker

首先,我们需要安装Docker以支持在Master节点上运行容器。可以使用以下命令进行安装:

```shell
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
```

1.2 安装并配置Kubernetes Master组件

接下来,我们需要安装和配置Kubernetes Master组件,包括kube-apiserver、kube-controller-manager和kube-scheduler。可以使用以下命令进行安装:

```shell
sudo apt-get update && sudo apt-get install -y apt-transport-https curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
sudo tee /etc/apt/sources.list.d/kubernetes.list <deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
```

1.3 初始化Kubernetes Master节点

最后,我们需要使用kubeadm初始化Kubernetes Master节点,并将其标记为根节点。可以使用以下命令进行初始化:

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

初始化完成后,系统会输出一些配置信息,包括Join命令。请记下这些信息,我们将在下一步中用到。

步骤2:安装并配置Kubernetes Worker节点

Worker节点主要负责运行容器并接收来自Master节点的指令。在这个步骤中,我们将需要进行以下操作:

2.1 安装并配置Docker

与Master节点类似,我们需要在Worker节点上安装Docker,以便支持容器运行。可以使用以下命令进行安装:

```shell
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
```

2.2 安装并配置Kubernetes Worker组件

接下来,我们需要在Worker节点上安装并配置Kubernetes Worker组件,包括kubelet和kube-proxy。可以使用以下命令进行安装:

```shell
sudo apt-get update && sudo apt-get install -y apt-transport-https curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
sudo tee /etc/apt/sources.list.d/kubernetes.list <deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
```

步骤3:添加节点到Kubernetes集群

在前两步骤完成后,我们已经成功搭建了一个包含Master节点和Worker节点的Kubernetes集群。但是现在集群中只有一个Master节点和一个Worker节点,并不能满足高可用性的要求。所以我们需要再增加一个Worker节点。

3.1 加入节点到Kubernetes集群

通过在新增的Worker节点上运行Master节点初始化时输出的Join命令,我们可以将该节点加入到Kubernetes集群中。可以使用以下命令将节点加入到集群:

```shell
sudo kubeadm join : --token --discovery-token-ca-cert-hash sha256:
```

这样,我们就成功将第三个节点添加到了Kubernetes集群中。

总结:

通过以上步骤,我们成功搭建了一个由3个节点组成的Kubernetes集群并实现了高可用性。其中,Master节点为集群提供了资源调度和管理的功能,Worker节点负责运行容器。添加多个节点可以增加集群的容错能力,确保在节点故障的情况下,Kubernetes集群仍然可用。

希望本文能够帮助刚入行的小白理解K8S集群为什么需要三个节点,并通过代码示例演示了集群搭建的过程。如果有任何问题或者疑问,请随时向我提问。