近期,KubeSphere 社区版重新开放,尽管此前的文档与项目变动曾引发社区讨论,但作为曾经的原厂工程师,我依然认可其产品价值。鉴于目前手头缺少用于学习的 Kubernetes 环境,本文将演示如何使用 Kubekey 工具快速初始化一个集群并安装 KubeSphere。
01 准备工作
1.1 环境准备
在云环境中准备三台虚拟机,具体配置如下:
| 序号 |
OS |
ip |
role |
| 1 |
ubuntu 2204 |
172.20.200.5 |
master |
| 2 |
ubuntu 2204 |
172.20.200.6 |
node01 |
| 3 |
ubuntu 2204 |
172.20.200.7 |
node02 |
1.2 软件包准备
下载 Kubekey 安装工具:
export KKZONE=cn
curl -sfL https://get-kk.kubesphere.io | sh -
1.3 节点准备
在所有节点上安装必要的依赖软件包:
sudo apt install socat conntrack ebtables ipset -y
1.4 持久化存储
考虑到个人学习环境的资源限制,将使用 KubeSphere 默认集成的 OpenEBS LocalPV 存储类。
1.5 镜像仓库
使用已有的 Harbor 私有镜像仓库,地址为 172.20.100.253(用户名:admin,密码:Harbor12345)。
1.6 文档参考
本次安装主要参考当前最新的 KubeSphere 社区版在线安装文档:
https://docs.kubesphere.com.cn/v4.1.3/03-installation-and-upgrade/02-install-kubesphere/01-online-install-kubernetes-and-kubesphere/
02 安装部署
2.1 初始化 Kubernetes 集群
-
定义集群配置文件 config.yaml
此配置文件定义了集群节点、角色、网络及仓库等核心信息,是 Kubekey 这一云原生部署工具执行的关键依据。
apiVersion: kubekey.kubesphere.io/v1alpha2
kind: Cluster
metadata:
name: sample
spec:
hosts:
- {name: master1, address: 172.20.100.5, internalAddress: 172.20.100.5, user: root}
- {name: node1, address: 172.20.100.6, internalAddress: 172.20.100.6, user: root}
- {name: node2, address: 172.20.100.7, internalAddress: 172.20.100.7, user: root}
roleGroups:
etcd:
- master1
control-plane:
- master1
worker:
- node1
- node2
controlPlaneEndpoint:
domain: lb.kubesphere.local
address: ""
port: 6443
kubernetes:
version: v1.23.17
clusterName: cluster.local
autoRenewCerts: true
containerManager: docker
etcd:
type: kubekey
network:
plugin: calico
kubePodsCIDR: 10.233.64.0/18
kubeServiceCIDR: 10.233.0.0/18
registry:
type: harbor
privateRegistry: "dockerhub.kubekey.local/kse"
auths:
"dockerhub.kubekey.local":
skipTLSVerify: true
plainHTTP: true
username: admin
password: Harbor12345
-
执行集群初始化命令
./kk create cluster --with-local-storage --with-packages --container-manager containerd -f config-sample.yaml -a ./kubekey-artifact.tar.gz
注意:如果 Harbor 仓库中已存在所需镜像,可以添加 --skip-pull-images 参数以跳过拉取镜像的步骤。更多参数请使用 -h 查看。
-
验证 Kubernetes 集群状态
执行以下命令,确认所有节点状态均为 Ready。
kubectl get node
预期输出类似:
NAME STATUS ROLES AGE VERSION
master1 Ready control-plane,master 79s v1.23.17
node1 Ready worker 54s v1.23.17
node2 Ready worker 54s v1.23.17
2.2 安装 KubeSphere Core (ks-core)
使用 Helm 安装 KubeSphere 核心组件,并指定从私有仓库拉取镜像。
helm upgrade --install -n kubesphere-system --create-namespace ks-core charts/ks-core \
--debug \
--wait \
--set global.imageRegistry=dockerhub.kubekey.local/kse \
--set extension.imageRegistry=dockerhub.kubekey.local/kse
安装完成后,命令行会给出访问提示,包括控制台地址和默认管理员账号密码。
2.3 登录验证
访问 http://172.20.100.5:30880,使用默认用户名 admin 和密码 P@88w0rd 登录。

至此,KubeSphere 已成功安装,可用于后续的 Docker容器环境 学习与实验。
03 Kuboard 安装(可选)
虽然 KubeSphere 功能强大,但在为客户进行演示时,个人认为 Kuboard 的界面更为直观。我们可以在已有的 Harbor 服务器上快速部署 Kuboard。
-
定义 docker-compose.yaml 文件
configs:
create_db_sql:
content: |
CREATE DATABASE kuboard DEFAULT CHARACTER SET = 'utf8mb4' DEFAULT COLLATE = 'utf8mb4_unicode_ci';
create user 'kuboard'@'%' identified by 'kuboardpwd';
grant all privileges on kuboard.* to 'kuboard'@'%';
FLUSH PRIVILEGES;
services:
db:
image: swr.cn-east-2.myhuaweicloud.com/kuboard/mariadb:11.3.2-jammy
environment:
MARIADB_ROOT_PASSWORD: kuboardpwd
MYSQL_ROOT_PASSWORD: kuboardpwd
TZ: Asia/Shanghai
volumes:
- ./kuboard-mariadb-data:/var/lib/mysql:Z
configs:
- source: create_db_sql
target: /docker-entrypoint-initdb.d/create_db.sql
networks:
kuboard_v4_dev:
aliases:
- db
kuboard:
image: swr.cn-east-2.myhuaweicloud.com/kuboard/kuboard:v4
environment:
- DB_DRIVER=org.mariadb.jdbc.Driver
- DB_URL=jdbc:mariadb://db:3306/kuboard?serverTimezone=Asia/Shanghai
- DB_USERNAME=kuboard
- DB_PASSWORD=kuboardpwd
ports:
- "8000:80"
depends_on:
- db
networks:
kuboard_v4_dev:
aliases:
- kuboard
networks:
kuboard_v4_dev:
driver: bridge
-
启动服务
docker-compose up -d
-
登录与集群导入
- 访问 URL:
http://172.20.100.253:8000/login
- 用户名:
admin
- 密码:
Kuboard123
登录后,可在 Web 界面通过图形化操作导入刚才创建的 Kubernetes 集群。

|