KubeSphere——常用应用UI可视化部署实战(1)

2024/03 作者:ihunter 0 0

摘要

有关于的KubeSphere常用应用部署实战都这里。大家可以参考去部署自己的服务。

一、KubeSphere 应用商店的构建

KubeSphere 集成了 OpenPitrix(一个跨云管理应用程序的开源平台)来构建应用商店,管理应用程序的整个生命周期。应用商店支持两种应用程序部署方式:

  • 应用模板:这种方式让开发者和独立软件供应商 (ISV) 能够与企业空间中的用户共享应用程序。您也可以在企业空间中导入第三方应用仓库。

  • 自制应用:这种方式帮助用户使用多个微服务来快速构建一个完整的应用程序。KubeSphere 让用户可以选择现有服务或者创建新的服务,用于在一站式控制台上创建自制应用。

本教程使用 Redis 作为示例应用程序,演示如何进行应用全生命周期管理,包括提交、审核、测试、发布、升级和下架。

1.1 准备工作

  • 您需要启用 KubeSphere 应用商店 (OpenPitrix)。

  • 您需要创建一个企业空间、一个项目以及一个帐户 (project-regular)。有关更多信息,请参见创建企业空间、项目、帐户和角色。

1.2 创建自定义角色和帐户

首先,您需要创建两个帐户,一个是 ISV 的帐户 (isv),另一个是应用技术审核员的帐户 (reviewer)。

使用 admin 帐户登录 KubeSphere 控制台。点击左上角的平台管理,选择访问控制。转到帐户角色,点击创建

为角色设置一个名称,例如 app-review,然后点击编辑权限

转到应用管理,选择权限列表中的应用商店管理应用商店查看,然后点击确定

备注:被授予 app-review 角色的帐户能够查看平台上的应用商店并管理应用,包括审核和下架应用。

创建角色后,您需要创建一个帐户,把 app-review 角色授予它。转到帐户管理,点击创建。输入必需的信息,然后点击确定

再创建另一个帐户 isv,把 platform-regular 角色授予它。

邀请上面创建好的两个帐户进入现有的企业空间,例如 demo-workspace,并授予它们 workspace-admin 角色。

1.3 上传和提交应用程序

isv 身份登录控制台,转到您的企业空间。您需要上传示例应用 Redis 至该企业空间,供后续使用。首先,下载应用 Redis 11.3.4,然后转到应用模板,点击上传模板

备注:在本示例中,稍后会上传新版本的 Redis 来演示升级功能。

在弹出的对话框中,点击上传 Helm 配置文件上传 Chart 文件。点击确定继续。

应用信息下显示了应用的基本信息。要上传应用的图标,点击上传图标。您也可以跳过上传图标,直接点击确定

成功上传后,模板列表中会列出应用,状态为开发中,意味着该应用正在开发中。上传的应用对同一企业空间下的所有成员均可见。

点击列表中的 Redis 进入应用模板详情页面。您可以点击编辑信息来编辑该应用的基本信息。

您可以通过在弹出窗口中指定字段来自定义应用的基本信息。

点击确定保存更改,然后您可以通过将其部署到 Kubernetes 来测试该应用程序。点击待提交版本展开菜单,选择测试部署

备注:如果您不想测试应用,可以直接提交审核。但是,建议您先测试应用部署和功能,再提交审核,尤其是在生产环境中。这会帮助您提前发现问题,加快审核过程。

选择要部署应用的群集和项目,为应用设置不同的配置,然后点击部署

备注:有些应用可以在表单中设置所有配置后进行部署。您可以使用拨动开关查看它的 YAML 文件,文件中包含了需要在表单中指定的所有参数。

稍等几分钟,切换到部署实例选项卡。您会看到 Redis 已经部署成功。

测试应用并且没有发现问题后,便可以点击提交审核,提交该应用程序进行审核。

应用提交后,它的状态会变成等待审核。现在,应用审核员便可以进行审核。

1.4 审核应用程序

登出控制台,然后以 reviewer 身份重新登录 KubeSphere。点击左上角的平台管理,选择应用商店管理。在应用审核页面,上一步中提交的应用会显示在待处理选项卡下。

点击该应用进行审核,在弹出窗口中查看应用信息、介绍、配置文件和更新日志。

审核员的职责是决定该应用是否符合发布至应用商店的标准。点击通过来批准,或者点击拒绝来拒绝提交的应用。

1.5 发布应用程序至应用商店

应用获批后,isv 便可以将 Redis 应用程序发布至应用商店,让平台上的所有用户都能找到并部署该应用程序。登出控制台,然后以 isv 身份重新登录 KubeSphere。转到您的企业空间,点击应用模板页面上的 Redis。在详情页面上展开版本菜单,然后点击发布到商店。在弹出的提示框中,点击确定以确认操作。

应用审核下,您可以查看应用状态。已上架意味着它在应用商店中可用。

点击在商店查看转到应用商店的应用信息页面,或者点击左上角的应用商店也可以查看该应用。

您可能会在应用商店看到两个 Redis 应用,其中一个是 KubeSphere 中的内置应用。请注意,新发布的应用会显示在应用商店列表的开头。现在,企业空间中的用户可以从应用商店中部署 Redis。要将应用部署至 Kubernetes,请点击应用转到应用信息页面,然后点击部署

1.6 创建应用分类

reviewer 可以根据不同类型应用程序的功能和用途创建多个分类。这类似于设置标签,可以在应用商店中将分类用作筛选器,例如大数据、中间件和物联网等。以 reviewer 身份登录 KubeSphere。要创建分类,请转到应用商店管理页面,再点击应用分类页面中的加号图标。

在弹出的对话框中设置分类名称和图标,然后点击确定。对于 Redis,您可以将分类名称设置为 Database

备注:通常,应用审核员会提前创建必要的分类,ISV 会选择应用所属的分类,然后提交审核。新创建的分类中没有应用。

创建好分类后,您可以给您的应用分配分类。在未分类中选择 Redis,点击调整分类

 

在弹出对话框的下拉列表中选择分类 (Database) 然后点击确定

该应用便会显示在对应分类中。

1.7 添加新版本

要让企业空间用户能够更新应用,您需要先向 KubeSphere 添加新的应用版本。按照下列步骤为示例应用添加新版本。再次以 isv 身份登录 KubeSphere,搜寻到应用模板,点击列表中的 Redis 应用。

下载 Redis 12.0.0,这是 Redis 的一个新版本,本教程用它来演示。在版本选项卡中点击右侧的添加版本,上传您刚刚下载的文件包。

点击上传 Helm 配置文件,上传完成后点击确定

新的应用版本会显示在版本列表中。您可以通过点击来展开菜单并测试新的版本。另外,您也可以提交审核并发布至应用商店,操作步骤和上面说明的一样。

1.8 升级

新版本发布至应用商店后,所有用户都可以升级该应用程序至新版本。

备注:要完成下列步骤,您必须先部署应用的一个旧版本。本示例中,Redis 11.3.4 已经部署至项目 demo-project,它的新版本 12.0.0 也已经发布至应用商店。

project-regular 身份登录 KubeSphere,搜寻到项目的应用页面,点击要升级的应用。

应用模板选项卡下,选择版本信息。您可以在列表中查看所有已发布的应用版本。您正在使用的应用版本标注为当前版本。要将应用升级至特定版本,点击版本号右侧的升级

备注:您必须把光标移至应用版本上才能看到升级按钮。

应用页面,您会看到应用正在升级中。升级完成后,应用状态会变成活跃

1.9 下架应用程序

您可以选择将应用完全从应用商店下架,或者下架某个特定版本。 reviewer 身份登录 KubeSphere。点击左上角的平台管理,选择应用商店管理。在应用商店页面,点击 Redis。

在详情页面,点击下架应用,在弹出的对话框中选择确定,确认将应用从应用商店下架的操作。

备注:将应用从应用商店下架不影响正在使用该应用的租户。

要让应用再次在应用商店可用,点击上架应用

要下架应用的特定版本,展开版本菜单,点击下架版本。在弹出的对话框中,点击确定以确认操作。

要让应用版本再次在应用商店可用,点击上架版本

二、KubeSphere 配置Harbor

KubeSphere Installer 集成了 Harbor 版本为 1.7.5,内置的 Harbor 作为可选安装项,用户可以根据团队项目的需求来配置安装,方便用户对项目的镜像管理,仅需 安装前 在配置文件 conf/vars.yml 中简单配置即可。参考以下步骤安装和访问 Harbor。

注意:

  • 若安装前未选择安装 Harbor,可参考本文末在安装后单独安装 Harbor 组件。

  • Harbor 安装需要额外挂载 5 块硬盘,若 KubeSphere 部署在云平台则需要考虑硬盘数量是否满足配额要求,若硬盘数量或容量配额不够则需要提工单申请提高配额。

2.1 修改安装配置文件

1、安装 KubeSphere 前,在 Installer 中的 conf/vars.yml 文件中,参考如下配置修改。
 
    # harbor deployment
    harbor_enable: true
    harbor_domain: harbor.devops.kubesphere.local
 
2、修改后保存,然后执行安装脚本,即可通过 Helm Chart 的方式来安装 Harbor。

2.2 单独安装 Harbor

若安装前并未开启安装 Harbor,但在安装完成后想再单独安装 Harbor,应该如何安装?
 
1、获取 yml 安装文件。
 
$ wget https://raw.githubusercontent.com/kubesphere/tutorial/master/tutorial%203%20-%20install-gitlab-harbor/install-gitlab-harbor.yml
 
2、将 install-gitlab-harbor.yml 文件放到安装包解压之后的 kubesphere 目录下;
 
3、获取安装脚本。
 
$ wget https://raw.githubusercontent.com/kubesphere/tutorial/master/tutorial%203%20-%20install-gitlab-harbor/gitlab-harbor.sh
 
4、将 gitlab-harbor.sh 文件放到安装包解压之后的 scripts 目录下;
 
5、在 scripts 目录下给执行脚本添加权限,同时执行安装脚本,输入 1 选择 Harbor 开始安装。
 
$ chmod +x gitlab-harbor.sh && ./gitlab-harbor.sh
################################################
             gitlab-harbor Installer Menu
################################################
*   1) Harbor
*   2) Gitlab
*   3) Harbor-Gitlab
################################################
https://kubesphere.io/               2019-09-27
################################################
Please input an option: 1
 
安装完成后,Harbor 的访问与使用

2.3 Harbor管理与使用

Docker 登录 Harbor
 
登录 Harbor 镜像仓库。
 
$ docker login -u admin -p Harbor12345 http://harbor.devops.kubesphere.local:30280
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
 
使用 Harbor 镜像仓库
 
关于如何制作镜像、打包上传镜像以及 Dockerfile 的使用详情,请参考 Docker 官方文档。
 
KubeSphere 安装成功后,本地已经有了 nginx:1.14-alpine 镜像,因此演示如何在本地给示例镜像 nginx 打 tag 后推送到 Harbor 镜像仓库的 library 项目中:
 
1、给本地 nginx 镜像打上 1.14-alpine 的 tag。
 
docker tag nginx:1.14-alpine harbor.devops.kubesphere.local:30280/library/nginx:1.14-alpine
 
2、推送至 Harbor 镜像仓库的 library 项目中。
 
docker push harbor.devops.kubesphere.local:30280/library/nginx:1.14-alpine
 
镜像推送成功即可通过浏览器登录 Harbor,验证推送的结果。

KubeSphere 安装成功后,即可在浏览器访问 Harbor 镜像仓库。Harbor 服务对外暴露的节点端口 (NodePort) 为 30280,内置的 Harbor 镜像仓库目前仅支持 http 协议,在浏览器中可以通过 {$IP}:{$NodePort}http://139.198.16.160:30280 访问 Harbor 登录页面。

注意:若需要在外网访问,可能需要绑定公网 EIP 并配置端口转发和防火墙规则,端口转发需要将内网端口 30280 转发到源端口 30280,然后在防火墙开放这个源端口,保证外网流量可以通过该端口,然后才可以通过 http://{$公网 IP}:{$NodePort} 访问。例如在 QingCloud 云平台进行上述操作,则可以参考 云平台配置端口转发和防火墙。 提示:在浏览器中还可通过域名访问 Harbor,在本地 /etc/hosts 添加一行记录 139.198.16.160 harbor.devops.kubesphere.local,即可通过 http://harbor.devops.kubesphere.local:30280 访问。

输入默认的管理员用户名和密码 admin / Harbor12345 登录 Harbor。

登录成功后,点击进入 library 项目。

可以看到 library 项目下已有了 nginx 镜像。

2.4 KubeSphere 中使用 Harbor

KubeSphere 添加 Harbor

提示:以下需要在企业空间下的项目中添加镜像仓库,若还未创建企业空间和项目,请参考 多租户管理快速入门。

登录控制台,在已创建的企业空间的项目下,左侧菜单栏选择 配置中心 → 密钥,点击 创建

第一步:填写基本信息

填写密钥的基本信息,完成后点击 下一步

  • 名称:起一个简洁明了的名称,填写 harbor

  • 别名:支持中文,帮助您更好的区分资源,比如 内置 Harbor 镜像仓库

  • 描述信息:简单介绍该密钥的功能

第二步:填写 Harbor 仓库信息

参考如下提示填写 Harbor 仓库的登录信息。

  • 仓库地址:填写内置的 Harbor 镜像仓库域名和节点端口 http://harbor.devops.kubesphere.local:30280

  • 用户名:admin

  • 密码:Harbor12345

  • 邮箱:填写个人邮箱

如果 Harbor 安装配置都正确,并且验证信息都填写无误,即可添加成功。Harbor 镜像仓库添加完成后,可以上传镜像和拉取镜像。

使用 Harbor 中的镜像

若需要在 KubeSphere 中使用 Harbor 镜像仓库中的镜像,需要先将相关的镜像构建后上传至 Harbor。

以创建 Deployment (部署) 为例展示如何使用镜像仓库来拉取仓库中的镜像。比如上述步骤已经将镜像 nginx:1.14-alpine 推送到了 library 项目,因此以下将演示如何创建工作负载并使用 Harbor 中的示例镜像 nginx:1.14-alpine

1、上述步骤中已将镜像仓库添加到了项目中,因此进入当前项目,选择「工作负载」→「部署」,点击「创建」。

2、 在弹窗中填写基本信息然后点击「下一步」,在容器组模板中需要先选择镜像仓库,镜像为 harbor.devops.kubesphere.local:30280/library/nginx:1.14-alpine,对应的格式为 镜像仓库地址/项目名称/镜像名称:tag,填写后点击「保存」,然后一直点击下一步直至创建,待创建成功后即可使用该镜像。

赞(0) 更多分享

上篇: KubeSphere——常用应用UI可视化部署实战(2)
下篇: KubeSphere构建mysql集群