---
title: 多节点模式部署
description: "多节点模式是指在多个节点上部署KubeSphere，是最常见的部署形态。多节点集群由至少一个主节点和一个工作节点组成。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengcpfs/ecosystemEnable/KubeSphere/kunpengkubesphere_03_0011.html
sourcePath: /source/zh/kunpengcpfs/ecosystemEnable/KubeSphere/kunpengkubesphere_03_0011.html
indexId: d127562cc93b6fb3caf9c4ea533ad3f9d5ea30b7888560a498b63a1322e25d1480
---
# 多节点模式部署

多节点模式是指在多个节点上部署KubeSphere，是最常见的部署形态。多节点集群由至少一个主节点和一个工作节点组成。

1. 在所有节点安装依赖。

```
yum install -y curl socat conntrack openssl ipset ipvsadm
```


2. 下载安装工具KubeKey。

  - 方式一：使用脚本获取KubeKey。

```
cd /home
curl -sfL https://get-kk.kubesphere.io | VERSION=v3.0.13 sh -
```


  - 方式二：下载    KubeKey可执行文件的压缩包(https://kubernetes.pek3b.qingstor.com/kubekey/releases/download/v3.0.13/kubekey-v3.0.13-linux-arm64.tar.gz)
并上传到“/home”目录下，解压压缩包后可直接使用。
    下载链接：

3. 预下载容器镜像包。
  默认拉取的defaultbackend容器镜像不支持ARM架构，为了确保容器能够在ARM架构上正常运行，需要拉取支持ARM架构的容器镜像包到本地，并替换为默认的镜像tag。操作如下：

```
docker pull mirrorgooglecontainers/defaultbackend-arm64:1.4
docker tag mirrorgooglecontainers/defaultbackend-arm64:1.4 mirrorgooglecontainers/defaultbackend-amd64:1.4
```


  如果在其他场景中遇到类似拉取的镜像不支持ARM架构的情况，都可以参考本步骤拉取支持ARM架构的容器镜像包到本地，并替换为默认的镜像tag，解决镜像的兼容性问题。 容器镜像tag修改命令参考如下： docker tag SOURCE_IMAGE:TAG1 TARGET_IMAGE:TAG2 SOURCE_IMAGE:TAG1为修改前tag，TARGET_IMAGE:TAG2为修改后tag。 如果您无法从dockerhub.io成功拉取镜像，强烈推荐您预先配置Docker镜像加速器，并尝试使用其他镜像源来下载所需版本的Docker镜像。更换镜像源的详细操作步骤请参见如何更换镜像源(https://www.hikunpeng.com/document/detail/zh/kunpengcpfs/ecosystemEnable/Kubernetes/kunpengk8s_04_0015.html)。

4. 使用KubeKey创建配置文件。
  本文中以指定Kubernetes v1.23.10和KubeSphere v3.4.1版本为例进行说明。

```
cd /home
./kk create config --with-kubernetes
v1.23.10
--with-kubesphere
v3.4.1
```


  默认生成的配置文件名为config-sample.yaml。 “--with-kubernetes version”参数用于指定安装的Kubernetes（支持的Kubernetes版本请参见KubernetesVersions(https://github.com/kubesphere/kubekey/blob/master/README_zh-CN.md#KubernetesVersions)）。如果不添加“--with-kubernetes”或不指定“version”的版本号，则将默认安装v1.23.10版本。 “--with-kubesphere version”参数用于指定安装的KubeSphere版本。如果不添加“--with-kubesphere”则不安装KubeSphere，如果不指定“version”的版本号则默认安装最新版本的KubeSphere。

5. 修改配置文件。

  a. 打开配置文件。

```
vi config-sample.yaml
```


  b. 按“i”进入编辑模式，在配置文件中添加节点信息。本示例包括以下三个节点，主节点充当任务机。| 主机IP地址 | 主机名 | 角色 |
| --- | --- | --- |
| 192.168.1.102 | master | control plane, etcd |
| 192.168.1.100 | node1 | worker |
| 192.168.1.103 | node2 | worker |


    将spec字段后面的信息配置为如下内容：

    1 2 3 4 5 6 7 8 9 10 11 12 13 spec: hosts: - {name: master, address: 192.168.1.102, internalAddress: 192.168.1.102, user: root, password: "kubesphere123", arch: arm64} - {name: node1, address: 192.168.1.100, internalAddress: 192.168.1.100, user: root, password: "kubesphere123", arch: arm64} - {name: node2, address: 192.168.1.103, internalAddress: 192.168.1.103, user: root, password: "kubesphere123", arch: arm64} roleGroups: etcd: - master control-plane: - master worker: - node1 - node2

    修改完成后如下图所示：

    参照上述配置内容在hosts中列出所有服务器的详细信息： name：节点的主机名。注意不支持大写的主机名，否则将导致安装过程无法正常结束。 address：该节点与其他节点之间ssh相互连接所使用的IP地址。根据实际环境填写，可以是公有IP地址或者私有IP地址。 internalAddress：节点的私有IP地址。 user：用户名。 password：密码。注意密码中不要带#。 arch：硬件架构。 在roleGroups中针对每个角色分配对应的节点： etcd：etcd节点。 control-plane：主节点。通常托管控制平面，控制和管理整个系统。 worker：工作节点。运行部署在工作节点上的实际应用程序。

    将etcd字段后面的信息修改为如下内容，开启etcd监控。

```
monitoring: true
```


    修改完成后如下图所示：

  c. 按“Esc”键退出编辑模式，输入:wq!，按“Enter”键保存并退出文件。
6. 部署Kubernetes集群。
  在管理节点执行如下命令创建一个Kubernetes集群。

```
./kk create cluster -f config-sample.yaml
```


  执行本步骤命令后，KubeKey将检查您的安装环境，结果显示为一张表格，并提示“Continue this installation? [yes/no]:”。请检查依赖项是否都满足，然后输入“yes”，再按回车继续。

  安装过程中会联网下载相关组件包。

  安装完成后输出信息中会显示Web控制台的IP地址和端口号，默认的端口号是“30880”。现在，您可以使用默认用户（admin）和密码（P@88w0rd）并通过<NodeIP>:30880（本例中为“http://192.168.1.102:30880”）访问KubeSphere的Web控制台。
