KubeSphere 最佳实战:14 张高清大图带你抢先体验 KubeSphere v4.1.1, AIO 部署全攻略

KubeSphere 最佳实战:14 张高清大图带你抢先体验 KubeSphere v4.1.1, AIO 部署全攻略

KubeSphere 最佳实战:14 张高清大图带你抢先体验 KubeSphere v4.1.1, AIO 部署全攻略

2024 年云原生运维实战文档 99 篇原创计划 第 048 篇 |KubeSphere 最佳实战「2024」系列 第 020 篇

你好,欢迎来到运维有术。

2024年 9月 9号,备受广大网友期待的 KubeSphere v4 终于在GitHub 代码仓库发布了正式的代码,而且是直接越过了 v4.0 直接发布的 v4.1.1。

kubesphere-releases-v411KubeSphere 官方文档也同步发布了 KubeSphere 4.1.1 版本说明,并更新了相应的产品简介和安装部署等文档。

KubeSphere 自 v4.0 起,引入扩展机制,推出了全新的 KubeSphere 架构:KubeSphere LuBan,它构建在 Kubernetes 之上,是一个分布式的云原生可扩展开放架构,为扩展组件提供一个可热插拔的微内核。支持高度可配置和可扩展。自此,KubeSphere 所有功能组件及第三方组件都会基于 KubeSphere LuBan,以扩展组件的方式无缝融入到 KubeSphere 控制台中,并独立维护版本,真正实现即插即用的应用级云原生操作系统。

基于 KubeSphere LuBa 的 KubeSphere v4 新特性如下:

基于全新微内核架构 KubeSphere LuBan 重构内置 KubeSphere 扩展市场支持通过扩展中心统一管理扩展组件支持 UI、API 扩展支持通过 kubeconfig 一键导入 member 集群支持 KubeSphere 服务帐户支持动态扩展 Resource API支持添加集群、企业空间、项目到快捷访问支持通过容器终端进行文件上传和下载支持适配不同厂商的云原生网关(Kubernetes Ingress API)支持 API 限流支持在页面创建持久卷如何快速体验 KubeSphere LuBan 架构 及 v4.1.1 的新功能特性?All-in-One 部署模式无疑是一种快捷的方式。本文参考官方 「KubeSphere v4 快速入门指南」中的在 Kubernetes 上快速安装 KubeSphere,详细介绍如何在一台主机上,利用 KubeKey v3.1.6 一次性成功部署 KubeSphere v4.1.1 以及 Kubernetes v1.30.4 的 All-in-One 集群。

重要声明:截止 2024 年 9 月 14 日,KubeSphere 官方网站一直没有正式官宣发布 v4.4.1,可能还在筹备中或是代码还会有更新。所以,本文算是一个抢先体验版,最终结果以官方发布版为准。

实战服务器配置

主机名

IP

CPU

内存

系统盘

数据盘

用途

ksp-control-1

192.168.9.150

16

32

40

100

k8s-control-plane/k8s-worker/KubeSphere

合计

1

16

32

40

100

实战环境涉及软件版本信息

操作系统:openEuler 22.03 LTS SP3 x86_64KubeSphere:v4.1.1Kubernetes:v1.30.4KubeKey: v3.1.61. 前置条件1.1 初始化操作系统请参考 Kubernetes 集群节点 openEuler 22.03 LTS SP3 系统初始化指南,完成操作系统初始化配置。

初始化指南以 openEuler 22.03 LTS SP3 为例,初始化配置过程同样适用于其他 Linux 发行版,只是命令略有不同。

1.2 安装 HelmKubeSphere v4 的部署方式发生了变化,可以直接使用 Helm 在 k8s 集群上部署,因此需要提前安装 Helm(可选,使用 kk 部署 k8s 集群会自动安装,可以不执行下面的操作)。

Helm 官方安装文档中介绍的方式有很多种,本文采用比较灵活的二进制版本安装。

下载二进制版本 Helm代码语言:bash复制wget https://get.helm.sh/helm-v3.15.4-linux-amd64.tar.gz解压代码语言:bash复制tar -zxvf helm-v3.15.4-linux-amd64.tar.gz移动二进制文件到 /usr/local/bin 目录代码语言:bash复制 mv linux-amd64/helm /usr/local/bin/

# 清理残留

rm -rf linux-amd64/验证 Helm 可用性代码语言:bash复制$ helm version

version.BuildInfo{Version:"v3.15.4", GitCommit:"fa9efb07d9d8debbb4306d72af76a383895aa8c4", GitTreeState:"clean", GoVersion:"go1.22.6"}2. 部署 Kubernetes 集群使用 KubeKey 部署一个单节点的 Kubernetes 集群。

2.1 下载 KubeKey下载最新版的 KubeKey(v3.1.6)代码语言:shell复制mkdir ~/kubekey

cd ~/kubekey/

# 选择中文区下载(访问 GitHub 受限时使用)

export KKZONE=cn

curl -sfL https://get-kk.kubesphere.io | sh -查看 KubeKey 支持的 Kubernetes 版本列表 ./kk version --show-supported-k8s代码语言:shell复制$ ./kk version --show-supported-k8s

v1.19.0

v1.19.8

v1.19.9

v1.19.15

......(受限于篇幅,中间的不展示,请读者根据需求查看)

v1.28.12

v1.28.13

v1.29.0

v1.29.1

v1.29.2

v1.29.3

v1.29.4

v1.29.5

v1.29.6

v1.29.7

v1.29.8

v1.30.0

v1.30.1

v1.30.2

v1.30.3

v1.30.4

v1.31.0说明: 输出结果为 kk 支持的结果,但不代表 KubeSphere 和其他 k8s 也能完美支持。

kk 支持的 k8s 版本还是比较新的。本文选择 v1.30.4,生产环境可以选择 v1.28.13 或是其他次要版本是双数且补丁版本数超过 5 的版本。不建议选择太老的版本了,毕竟 v1.31 都已经发布了。

2.2 创建 Kubernetes 集群执行以下命令快速创建一个 Kubernetes 集群代码语言:bash复制export KKZONE=cn

./kk create cluster --with-local-storage --with-kubernetes v1.30.4 --container-manager containerd -y上面的命令执行后,KubeKey 先检查部署 Kubernetes 的依赖及其它配置是否符合要求。通过检查后,系统将提示您确认安装。输入 yes 并按 ENTER 继续部署。

部署过程需要大约 10分钟,具体看网速和机器配置。部署完成后,您应该会在终端上看到类似于下面的输出。

代码语言:yaml复制20:22:42 CST success: [LocalHost]

20:22:42 CST [AddonsModule] Install addons

20:22:42 CST message: [LocalHost]

[0/0] enabled addons

20:22:42 CST success: [LocalHost]

20:22:42 CST [DeployStorageClassModule] Generate OpenEBS manifest

20:22:43 CST success: [ksp-control-1]

20:22:43 CST [DeployStorageClassModule] Deploy OpenEBS as cluster default StorageClass

20:22:44 CST success: [ksp-control-1]

20:22:44 CST Pipeline[CreateClusterPipeline] execute successfully

Installation is complete.

Please check the result using the command:

kubectl get pod -A注意:此时,我们只是完成了 k8s 集群的部署。

2.3 验证 k8s 集群状态查看集群节点信息在 control-1 节点运行 kubectl 命令获取 Kubernetes 集群上的可用节点列表。

代码语言:shell复制kubectl get nodes -o wide正确执行后,输出结果如下 :

代码语言:shell复制$ kubectl get nodes -o wide

NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME

ksp-control-1 Ready control-plane,worker 4m v1.30.4 192.168.9.150 openEuler 22.03 (LTS-SP3) 5.10.0-182.0.0.95.oe2203sp3.x86_64 containerd://1.7.13在输出结果中可以看到当前的 Kubernetes 集群节点数量,并详细展示每个节点的名字、状态、角色、存活时间、Kubernetes 版本号、内部 IP、操作系统类型、内核版本和容器运行时等信息。

查看 Pod 列表输入以下命令获取在 Kubernetes 集群上运行的 Pod 列表,确保所有的容器状态都是 Running。

代码语言:shell复制kubectl get pods -A正确执行后,输出结果如下 :

代码语言:bash复制$ kubectl get pods -A

NAMESPACE NAME READY STATUS RESTARTS AGE

kube-system calico-kube-controllers-848b87ffbc-855n7 1/1 Running 0 4m23s

kube-system calico-node-68bxk 1/1 Running 0 4m23s

kube-system coredns-6789f6859f-pphg2 1/1 Running 0 4m23s

kube-system coredns-6789f6859f-rx7wh 1/1 Running 0 4m23s

kube-system kube-apiserver-ksp-control-1 1/1 Running 0 4m40s

kube-system kube-controller-manager-ksp-control-1 1/1 Running 0 4m40s

kube-system kube-proxy-lh4k8 1/1 Running 0 4m23s

kube-system kube-scheduler-ksp-control-1 1/1 Running 0 4m40s

kube-system nodelocaldns-krx6g 1/1 Running 0 4m23s

kube-system openebs-localpv-provisioner-677c4fdd9b-w6gfb 1/1 Running 0 4m23s查看镜像列表(29 个)下面展示一下最小化部署一套 Kubernetes 集群到底依赖哪些镜像,以及镜像的下载地址、TAG、大小。

代码语言:bash复制$ crictl images

IMAGE TAG IMAGE ID SIZE

registry.cn-beijing.aliyuncs.com/kubesphereio/cni v3.27.4 dc6f84c32585f 88.8MB

registry.cn-beijing.aliyuncs.com/kubesphereio/coredns 1.9.3 5185b96f0becf 14.8MB

registry.cn-beijing.aliyuncs.com/kubesphereio/k8s-dns-node-cache 1.22.20 ff71cd4ea5ae5 30.5MB

registry.cn-beijing.aliyuncs.com/kubesphereio/kube-apiserver v1.30.4 8a97b1fb3e2eb 32.8MB

registry.cn-beijing.aliyuncs.com/kubesphereio/kube-controller-manager v1.30.4 8398ad49a121d 31.1MB

registry.cn-beijing.aliyuncs.com/kubesphereio/kube-controllers v3.27.4 6b1e38763f401 33.5MB

registry.cn-beijing.aliyuncs.com/kubesphereio/kube-proxy v1.30.4 568d5ba88d944 29MB

registry.cn-beijing.aliyuncs.com/kubesphereio/kube-scheduler v1.30.4 4939f82ab9ab4 19.3MB

registry.cn-beijing.aliyuncs.com/kubesphereio/node v3.27.4 3dd4390f2a85a 117MB

registry.cn-beijing.aliyuncs.com/kubesphereio/pause 3.9 e6f1816883972 321kB

registry.cn-beijing.aliyuncs.com/kubesphereio/provisioner-localpv 3.3.0 739e82fed8b2c 28.8MB3. 部署 KubeSphere3.1 安装核心组件 KubeSphere Core按官方文档示例,执行以下命令通过 helm 安装 KubeSphere 的核心组件 KubeSphere Core。

代码语言:bash复制helm upgrade --install -n kubesphere-system --create-namespace ks-core https://charts.kubesphere.io/main/ks-core-1.1.0.tgz --debug --wait网络受限时,执行以下命令:

代码语言:bash复制helm upgrade --install -n kubesphere-system --create-namespace ks-core https://charts.kubesphere.io/main/ks-core-1.1.0.tgz --debug --wait --set global.imageRegistry=registry.cn-beijing.aliyuncs.com \

--set apiserver.image.repository=kubesphereio/ks-apiserver \

--set console.image.repository=kubesphereio/ks-console \

--set controller.image.repository=kubesphereio/ks-controller-manager \

--set kubectl.image.repository=kubesphereio/kubectl部署过程需要大约 2分钟,具体看网速和机器配置,如果镜像提前下载到本地,基本上秒级就能部署一套 KubeSphere Core。

如果显示如下信息,则表明 ks-core 安装成功,输出信息会显示 KubeSphere Web 控制台的 IP 地址、管理员用户名和管理员密码。

代码语言:yaml复制NOTES:

Thank you for choosing KubeSphere Helm Chart.

Please be patient and wait for several seconds for the KubeSphere deployment to complete.

1. Wait for Deployment Completion

Confirm that all KubeSphere components are running by executing the following command:

kubectl get pods -n kubesphere-system

2. Access the KubeSphere Console

Once the deployment is complete, you can access the KubeSphere console using the following URL:

http://192.168.9.150:30880

3. Login to KubeSphere Console

Use the following credentials to log in:

Account: admin

Password: P@88w0rd

NOTE: It is highly recommended to change the default password immediately after the first login.

For additional information and details, please visit https://kubesphere.io.3.2 命令行验证 KubeSphere Core 状态查看 Pod 列表代码语言:shell复制kubectl get pods -n kubesphere-system正确执行后,输出结果如下 :

代码语言:bash复制$ kubectl get pods -n kubesphere-system

NAME READY STATUS RESTARTS AGE

ks-apiserver-845ff5f5d7-zwnmc 1/1 Running 0 8m13s

ks-console-6ff47bf59c-cnc8v 1/1 Running 0 8m13s

ks-controller-manager-8cc4b554-shksk 1/1 Running 0 8m13s查看镜像列表(29 个)下面展示一下最小化部署一套 KubeSphere 和 Kubernetes 集群到底依赖哪些镜像,以及镜像的下载地址、TAG、大小。

代码语言:bash复制$ crictl images

IMAGE TAG IMAGE ID SIZE

registry.cn-beijing.aliyuncs.com/kubesphereio/cni v3.27.4 dc6f84c32585f 88.8MB

registry.cn-beijing.aliyuncs.com/kubesphereio/coredns 1.9.3 5185b96f0becf 14.8MB

registry.cn-beijing.aliyuncs.com/kubesphereio/k8s-dns-node-cache 1.22.20 ff71cd4ea5ae5 30.5MB

registry.cn-beijing.aliyuncs.com/kubesphereio/ks-apiserver v4.1.1 34fdf5bb4af7b 55.1MB

registry.cn-beijing.aliyuncs.com/kubesphereio/ks-console v4.1.1 b5ad6cea43b20 59.7MB

registry.cn-beijing.aliyuncs.com/kubesphereio/ks-controller-manager v4.1.1 2706b4d317067 54.5MB

registry.cn-beijing.aliyuncs.com/kubesphereio/kube-apiserver v1.30.4 8a97b1fb3e2eb 32.8MB

registry.cn-beijing.aliyuncs.com/kubesphereio/kube-controller-manager v1.30.4 8398ad49a121d 31.1MB

registry.cn-beijing.aliyuncs.com/kubesphereio/kube-controllers v3.27.4 6b1e38763f401 33.5MB

registry.cn-beijing.aliyuncs.com/kubesphereio/kube-proxy v1.30.4 568d5ba88d944 29MB

registry.cn-beijing.aliyuncs.com/kubesphereio/kube-scheduler v1.30.4 4939f82ab9ab4 19.3MB

registry.cn-beijing.aliyuncs.com/kubesphereio/kubectl v1.27.16 b18a58b880b6e 130MB

registry.cn-beijing.aliyuncs.com/kubesphereio/node v3.27.4 3dd4390f2a85a 117MB

registry.cn-beijing.aliyuncs.com/kubesphereio/pause 3.9 e6f1816883972 321kB

registry.cn-beijing.aliyuncs.com/kubesphereio/provisioner-localpv 3.3.0 739e82fed8b2c 28.8MB4. KubeSphere Core 功能概览我们打开浏览器访问 Control-1 节点的 IP 地址和端口 30880,可以打开熟悉的 KubeSphere 管理控制台的登录页面。

ksp-login-v411输入默认用户 admin 和默认密码 P@88w0rd,然后点击「登录」。

登录后,系统会要求您更改 KubeSphere 默认用户 admin 的默认密码,输入新的密码并点击「提交」。

ksp-password-confirm-v411提交完成后,系统会跳转到新的风格的 KubeSphere 用户工作台页面。

ksp-dashboard-v4114.1 集群管理在「工作台」页面,点击「集群管理」,进入集群管理页面,页面风格更方便多集群管理。

ksp-clusters-v411点击「host 」主集群,进入 host 集群管理页面。新版本的集群管理菜单去掉了不少的功能,默认只有基本的 k8s 管理功能。褒贬不一的开箱即用的监控功能也没了(我个人比较喜欢原来默认集成的监控功能,开箱即用,简单直观)。

集群概览ksp-clusters-host-overview-v411集群节点ksp-clusters-host-nodes-aio-v411集群节点状态ksp-clusters-host-nodes-status-v411pod 资源状态ksp-pods-resource-status-v4114.2 企业空间管理企业空间和用户管理,菜单入口分开了,整体功能没太大变化。

在「工作台」页面,点击「企业空间管理」,进入企业空间管理页面。

ksp-access-workspaces-v4114.3 用户和角色管理企业空间和用户管理,菜单入口分开了,整体功能没太大变化。

在「工作台」页面,点击「用户和角色管理」,进入用户和角色管理页面。

ksp-access-accounts-v4114.4 扩展中心在「工作台」页面,点击「扩展中心」,进入扩展中心管理页面,您可以在此对扩展组件进行安装、卸载、升级、配置变更、启用或禁用。

ksp-extensions-manager-v411因为,扩展市场里还没有任何扩展组件,所以该页面也是空的,需要后期添加。

4.5 扩展市场最小化安装的 KubeSphere v4.1.1 的扩展市场里是没有任何扩展组件的,需要在后期添加。

ksp-extensions-marketplace-v4114.6 应用商店新版本居然默认集成了应用商店,所有的默认组件都删除了,而且页面上部的黑色配色有问题,导致用户名 admin 被隐盖了。

ksp-apps-v4115. 常见问题5.1 问题 1部署失败时,可以执行下面的命令卸载 ks-core,然后重新执行安装命令。

代码语言:bash复制helm uninstall ks-core -n kubesphere-system6. 自动化 Shell 脚本文章中所有操作步骤,已全部编排为自动化脚本,包含以下内容(因篇幅限制,不在此文档中展示):

Ansible 初始化操作系统基础配置Ansible 初始化磁盘配置Ansible 自动化安装 Kubernetes 依赖组件运维有术星球会员请到专属代码仓库下载(价值内容,仅星球会员专享)。

以上,就是我今天分享的全部内容。下一期分享的内容还没想好,敬请期待开盲盒。

如果你喜欢本文,请分享、收藏、点赞、评论! 请持续关注 @运维有术,及时收看更多好文!

欢迎加入 「知识星球|运维有术」 ,获取更多的 KubeSphere、Kubernetes、云原生运维、自动化运维、AI 大模型等实战技能。未来运维生涯始终有我坐在你的副驾。

免责声明:

笔者水平有限,尽管经过多次验证和检查,尽力确保内容的准确性,但仍可能存在疏漏之处。敬请业界专家大佬不吝指教。本文所述内容仅通过实战环境验证测试,读者可学习、借鉴,但严禁直接用于生产环境。由此引发的任何问题,作者概不负责!Get 本文实战视频(请注意,文档视频异步发行,请先关注)

B 站|运维有术版权声明

所有内容均属于原创,感谢阅读、收藏,转载请联系授权,未经授权不得转载。

相关推荐

如何自制耳机线手链教程(耳机线做手绳)
365bet是什么

如何自制耳机线手链教程(耳机线做手绳)

🗓️ 07-09 👁️ 3317
胎压监测传感器在哪里安装
365bet是什么

胎压监测传感器在哪里安装

🗓️ 01-02 👁️ 6352
老干妈的做法
趣投必发365

老干妈的做法

🗓️ 10-21 👁️ 472
目前最全的汉语拼音表 (另附韦氏拼音表, 非常规拼音表)
《神武4》人物符石攻略 各门派二阶推荐命格
趣投必发365

《神武4》人物符石攻略 各门派二阶推荐命格

🗓️ 08-11 👁️ 7921
u盘哪里有卖?十大靠谱购买渠道推荐
365bet是什么

u盘哪里有卖?十大靠谱购买渠道推荐

🗓️ 07-15 👁️ 7563
IBM免费服务器试用
趣投必发365

IBM免费服务器试用

🗓️ 01-16 👁️ 4468
电信业务委托书 17
趣投必发365

电信业务委托书 17

🗓️ 09-19 👁️ 8982
足球在法国,一场松弛且浪漫的战斗
365bet提款条件

足球在法国,一场松弛且浪漫的战斗

🗓️ 10-01 👁️ 1018
CS新版本2.8更新:诸多BUG修复与调整
365bet是什么

CS新版本2.8更新:诸多BUG修复与调整

🗓️ 01-18 👁️ 8446
11月10日是什么星座?
365bet提款条件

11月10日是什么星座?

🗓️ 07-18 👁️ 4864
yaahp版本大全-3DM软件
365bet提款条件

yaahp版本大全-3DM软件

🗓️ 09-03 👁️ 7761