KubeSphere 多机部署安装 KubeSphere 与 K8s 集群

用 KubeKey(kk)创建多节点 K8s 集群并部署 KubeSphere 控制台时读这篇

02-部署安装 / 部署方式 / KubeSphere多机部署
KubeKeykkKKZONEcreate configcreate clusterconfig-sample.yamlhostsroleGroupsetcdcontrol-planeworkercontrolPlaneEndpointaddonsOpenEBSLocalPVkubectl自动补全

KubeSphere 多机部署(二)安装 KubeSphere 与 K8s 集群

这是「KubeSphere 多机部署」系列的第 2 篇,概览与目录见 README。 开始前请先完成 01-主机环境与系统优化 的基线设置。

步骤 2:下载 KubeKey

请按 KubeSphere 官方文档下载 KubeKey(区分「能正常访问 GitHub/Googleapis」与「访问受限」两种情况)。

先执行以下命令以确保从国内区域下载 KubeKey:

export KKZONE=cn

执行以下命令下载 KubeKey:

curl -sfL https://get-kk.kubesphere.io | VERSION=v3.0.7 sh -

备注:

  • 下载 KubeKey 后,如果把它传到另一台访问 Googleapis 同样受限的机器,请在执行后续步骤前再次执行 export KKZONE=cn
  • 以上命令会下载指定版本(这里是 v3.0.7),可修改版本号下载其它版本。

kk 添加可执行权限:

chmod +x kk

步骤 3:创建集群

多节点安装需要通过指定配置文件来创建集群。

1. 创建示例配置文件

./kk create config [--with-kubernetes version] [--with-kubesphere version] [(-f | --file) path]

备注:

  • 安装 KubeSphere 3.3 建议的 Kubernetes 版本:v1.20.x、v1.21.x、v1.22.x、v1.23.x、v1.24.x(带星号的版本在边缘节点上可能有部分功能不可用,如需边缘节点推荐 v1.21.x)。不指定版本时 KubeKey 默认安装 Kubernetes v1.23.10
  • 命令中不加 --with-kubesphere 则不部署 KubeSphere(只能用配置文件中的 addons 字段安装,或后续 ./kk create cluster 时再加该标志)。
  • --with-kubesphere 但不指定版本时,会安装最新版 KubeSphere。

示例:

# 使用默认配置创建示例配置文件(也可用 -f 指定文件名/目录)
./kk create config [-f ~/myfolder/abc.yaml]

# 指定要安装的 KubeSphere 版本(例如 v3.3.2)
./kk create config --with-kubesphere [version]

2. 编辑配置文件

不改名时会创建默认文件 config-sample.yaml。下面是「一个主节点的多节点集群」示例:

spec:
  hosts:
  - {name: master, address: 192.168.0.2, internalAddress: 192.168.0.2, user: ubuntu, password: Testing123}
  - {name: node1, address: 192.168.0.3, internalAddress: 192.168.0.3, user: ubuntu, password: Testing123}
  - {name: node2, address: 192.168.0.4, internalAddress: 192.168.0.4, user: ubuntu, password: Testing123}
  roleGroups:
    etcd:
    - master
    control-plane:
    - master
    worker:
    - node1
    - node2
  controlPlaneEndpoint:
    domain: lb.kubesphere.local
    address: ""
    port: 6443

hosts(主机):列出所有机器并填写详细信息。

  • name:实例的主机名。
  • address:任务机与其它实例通过 SSH 互连所用的 IP(可公网或私网,视环境而定)。
  • internalAddress:实例的私有 IP 地址。

登录信息示例:

# 使用密码登录(端口非 22 时需显式写 port,22 为默认可省略)
hosts:
  - {name: master, address: 192.168.0.2, internalAddress: 192.168.0.2, port: 8022, user: ubuntu, password: Testing123}

# 默认 root 用户
hosts:
  - {name: master, address: 192.168.0.2, internalAddress: 192.168.0.2, password: Testing123}

# 使用 SSH 密钥免密登录
hosts:
  - {name: master, address: 192.168.0.2, internalAddress: 192.168.0.2, privateKeyPath: "~/.ssh/id_rsa"}

提示:

  • 安装前可用 hosts 里的信息通过 SSH 测试任务机与其它实例的网络连通性。
  • 安装前确保端口 6443(API 服务器默认端口)未被占用,否则会冲突。

roleGroups

  • etcd:etcd 节点名称
  • control-plane:主节点名称
  • worker:工作节点名称

controlPlaneEndpoint(仅高可用安装):仅当安装多个主节点时,才需要在此为高可用集群提供外部负载均衡器信息;address/port 需缩进两个空格,address 填负载均衡器地址。

addons:可在 addons 字段下指定持久化存储插件(NFS 客户端、Ceph RBD、GlusterFS 等)。KubeSphere 默认会安装 OpenEBS 并为开发/测试环境配置 LocalPV;本多节点示例使用默认本地存储卷。生产环境建议用 Ceph/GlusterFS/CSI 或商业存储。

也可编辑配置文件启用多集群功能、选择要安装的可插拔组件。完整 config-sample.yaml 示例见 KubeKey 仓库

3. 使用配置文件创建集群

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

用了其它文件名时,把 config-sample.yaml 改成你的文件名。整个安装可能需要 10~20 分钟,取决于机器和网络环境。

4. 验证安装

安装完成后会看到类似输出:

#####################################################
###              Welcome to KubeSphere!           ###
#####################################################

Console: http://192.168.0.2:30880
Account: admin
Password: P@88w0rd
...
#####################################################

之后可通过 <NodeIP>:30880 用默认帐户密码(admin / P@88w0rd)访问 KubeSphere Web 控制台。

备注:访问控制台可能需要按环境配置端口转发规则,并确保安全组放开了端口 30880。登录后请尽快修改默认密码。

启用 kubectl 自动补全

KubeKey 不会自动启用 kubectl 补全,按需打开(需先安装 bash-completion):

# 安装 bash-completion
apt-get install bash-completion

# 在 ~/.bashrc 中加载补全脚本
echo 'source <(kubectl completion bash)' >>~/.bashrc

# 把补全脚本放到 /etc/bash_completion.d
kubectl completion bash >/etc/bash_completion.d/kubectl

下一步:在 KubeSphere 集群上部署 CubeStudio,见 03-部署cube-studio

最后更新 2026-07-04完整文档以官方仓库为准:GitHub Wiki