kubesphere——应用生命周期管理、部署内置应用nginx示例

文章目录

  • 准备工作
    • 启用kubesphere应用商店
    • 创建一个企业空间、一个项目以及一个用户 (project-regular)
      • kubesphere多租户系统的架构
      • 四个系统内置角色
      • 创建用户
      • 创建企业空间
      • 创建项目
      • 创建自定义角色和账户
      • 上传和提交应用程序
      • 发布应用程序
      • 发布应用程序至应用商店
      • 创建应用分类
      • 添加新版本
      • 应用程序升级
      • 下架应用程序
  • 部署内置应用nginx示例
    • 准备工作
    • 从应用商店中部署 nginx
    • 访问 nginx


使用阿里云主机:
10.0.0.5 ---- k8s集群master
10.0.0.88 ---- k8s集群工作节点node1
10.0.0.91 ---- k8s集群工作节点node2


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

  • 应用模板:这种方式让开发者和独立软件供应商 (ISV) 能够与企业空间中的用户共享应用程序。您也可以在企业空间中导入第三方应用仓库。
  • 自制应用:这种方式帮助用户使用多个微服务来快速构建一个完整的应用程序。KubeSphere 让用户可以选择现有服务或者创建新的服务,用于在一站式控制台上创建自制应用。

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

准备工作

启用kubesphere应用商店

参考官方文档:https://kubesphere.com.cn/docs/v3.3/pluggable-components/app-store/
在已经搭建好的集群上启用:

使用 admin 用户登录控制台,点击左上角的平台管理,选择集群管理。
点击定制资源定义,在搜索栏中输入 clusterconfiguration,点击结果查看其详细页面。

定制资源定义(CRD)允许用户在不增加额外 API 服务器的情况下创建一种新的资源类型,用户可以像使用其他 Kubernetes 原生对象一样使用这些定制资源。

kubesphere——应用生命周期管理、部署内置应用nginx示例_第1张图片
在自定义资源中,点击 ks-installer 右侧的 ,选择编辑 YAML。

kubesphere——应用生命周期管理、部署内置应用nginx示例_第2张图片
在该 YAML 文件中,搜索 openpitrix,将 enabled 的 false 改为 true。完成后,点击右下角的确定,保存配置。

kubesphere——应用生命周期管理、部署内置应用nginx示例_第3张图片在 kubectl 中执行以下命令检查安装过程:

kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l 'app in (ks-install, ks-installer)' -o jsonpath='{.items[0].metadata.name}') -f

kubesphere——应用生命周期管理、部署内置应用nginx示例_第4张图片
直接访问 <节点 IP 地址>:30880/apps 进入应用商店。

kubesphere——应用生命周期管理、部署内置应用nginx示例_第5张图片

创建一个企业空间、一个项目以及一个用户 (project-regular)

https://kubesphere.com.cn/docs/v3.3/quick-start/create-workspace-and-project/

kubesphere多租户系统的架构

  • KubeSphere 的多租户系统分三个层级,即集群、企业空间和项目。KubeSphere 中的项目等同于 Kubernetes 的命名空间。

  • 建议创建一个新的企业空间进行操作,而不是使用系统企业空间,系统企业空间中运行着系统资源,绝大部分仅供查看。出于安全考虑,强烈建议给不同的租户授予不同的权限在企业空间中进行协作。

  • 您可以在一个 KubeSphere 集群中创建多个企业空间,每个企业空间下可以创建多个项目。KubeSphere 为每个级别默认设有多个内置角色。此外,您还可以创建拥有自定义权限的角色。KubeSphere 多层次结构适用于具有不同团队或组织以及每个团队中需要不同角色的企业用户。

四个系统内置角色

内置角色由 KubeSphere 自动创建,无法编辑或删除。
kubesphere——应用生命周期管理、部署内置应用nginx示例_第6张图片

创建用户

一开始,系统默认只有一个用户 admin,具有 platform-admin 角色。
需要先创建用户 user-manager,然后使用 user-manager 创建新用户。

kubesphere——应用生命周期管理、部署内置应用nginx示例_第7张图片
切换用户使用 user-manager 重新登录,创建如下四个新用户,并赋予相应角色。

kubesphere——应用生命周期管理、部署内置应用nginx示例_第8张图片

创建企业空间

这里需要使用上一个步骤中创建的用户 ws-manager 创建一个企业空间。作为管理项目、DevOps 项目和组织成员的基本逻辑单元,企业空间是 KubeSphere 多租户系统的基础

以 ws-manager 身份登录 KubeSphere。点击左上角的平台管理,选择访问控制。在企业空间中,可以看到仅列出了一个默认企业空间 system-workspace,即系统企业空间,其中运行着与系统相关的组件和服务,该企业空间无法删除。
点击右侧的创建,将新企业空间命名为 demo-workspace,并将用户 ws-admin 设置为企业空间管理员。完成后,点击创建。

kubesphere——应用生命周期管理、部署内置应用nginx示例_第9张图片
出现错误
kubesphere——应用生命周期管理、部署内置应用nginx示例_第10张图片
根据:https://github.com/kubesphere/kubesphere/issues/5013#issuecomment-1171855269
在这里插入图片描述以 ws-admin 身份重新登录。在企业空间设置中,选择企业空间成员,然后点击邀请。
邀请 project-admin 和 project-regular 进入企业空间,分别授予 demo-workspace-self-provisioner 和 demo-workspace-viewer 角色,点击确定。
kubesphere——应用生命周期管理、部署内置应用nginx示例_第11张图片

创建项目

以 project-admin 身份登录 KubeSphere Web 控制台,在项目中,点击创建。

kubesphere——应用生命周期管理、部署内置应用nginx示例_第12张图片输入项目名称(例如 demo-project),点击确定。还可以为项目添加别名和描述。

kubesphere——应用生命周期管理、部署内置应用nginx示例_第13张图片
在项目设置 > 项目成员中,邀请 project-regular 至该项目,并授予该用户 operator(操作员) 角色。
具有 operator 角色的用户是项目维护者,可以管理项目中除用户和角色以外的资源。

kubesphere——应用生命周期管理、部署内置应用nginx示例_第14张图片启用该项目的网关。网关是在项目中运行的 NGINX Ingress 控制器。

kubesphere——应用生命周期管理、部署内置应用nginx示例_第15张图片选择访问方式 NodePort,然后点击确定。
kubesphere——应用生命周期管理、部署内置应用nginx示例_第16张图片在网关设置下,可以在页面上看到网关地址以及 http/https 的端口。
kubesphere——应用生命周期管理、部署内置应用nginx示例_第17张图片
完成上述步骤后,您已了解可以为不同级别的用户授予不同角色。先前步骤中使用的角色都是 KubeSphere 提供的内置角色。但是,kubesphere支持创建自定义角色以满足工作需求。

创建自定义角色和账户

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

首先创建对应的角色:
使用 admin 帐户登录 KubeSphere 控制台。点击左上角的平台管理,选择访问控制。转到平台角色,点击创建。
为角色设置一个名称,例如 app-review,然后点击编辑权限。

kubesphere——应用生命周期管理、部署内置应用nginx示例_第18张图片转到应用管理,选择权限列表中的应用商店管理和应用商店查看,然后点击确定。

kubesphere——应用生命周期管理、部署内置应用nginx示例_第19张图片被授予 app-review 角色的用户能够查看平台上的应用商店并管理应用,包括审核和下架应用。

创建角色后,需要创建一个用户reviewer,并授予 app-review 角色。
转到用户,点击创建。输入必需的信息,然后点击确定。

kubesphere——应用生命周期管理、部署内置应用nginx示例_第20张图片再创建另一个用户 isv,把 platform-regular 角色授予它。

kubesphere——应用生命周期管理、部署内置应用nginx示例_第21张图片
邀请上面创建好的两个帐户进入现有的企业空间,例如 demo-workspace,并授予它们 workspace-admin 角色。
kubesphere——应用生命周期管理、部署内置应用nginx示例_第22张图片

上传和提交应用程序

以 isv 身份登录控制台,转至企业空间。
首先,下载应用 Redis 11.3.4,然后转到应用模板,点击上传模板。

kubesphere——应用生命周期管理、部署内置应用nginx示例_第23张图片
在弹出的对话框中,点击上传 Helm Chart 上传 Chart 文件。点击确定继续。
kubesphere——应用生命周期管理、部署内置应用nginx示例_第24张图片
在这里插入图片描述应用信息下显示了应用的基本信息。要上传应用的图标,点击上传图标。也可以跳过上传图标,直接点击确定。
kubesphere——应用生命周期管理、部署内置应用nginx示例_第25张图片成功上传后,模板列表中会列出应用,状态为开发中,意味着该应用正在开发中。上传的应用对同一企业空间下的所有成员均可见。
点击列表中的 Redis 进入应用模板详情页面。您可以点击编辑来编辑该应用的基本信息。
可以通过在弹出窗口中指定字段来自定义应用的基本信息。
kubesphere——应用生命周期管理、部署内置应用nginx示例_第26张图片

然后可以通过将其部署到 Kubernetes 来测试该应用程序。点击待提交版本展开菜单,选择安装。

kubesphere——应用生命周期管理、部署内置应用nginx示例_第27张图片选择要部署应用的集群和项目,为应用设置不同的配置,然后点击安装。
kubesphere——应用生命周期管理、部署内置应用nginx示例_第28张图片
kubesphere——应用生命周期管理、部署内置应用nginx示例_第29张图片
稍等几分钟,切换到应用实例选项卡。您会看到 Redis 已经部署成功。
测试应用并且没有发现问题后,便可以点击提交审核,提交该应用程序进行审核。

kubesphere——应用生命周期管理、部署内置应用nginx示例_第30张图片
kubesphere——应用生命周期管理、部署内置应用nginx示例_第31张图片应用提交后,它的状态会变成已提交。现在,应用审核员便可以进行审核。
kubesphere——应用生命周期管理、部署内置应用nginx示例_第32张图片

发布应用程序

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

kubesphere——应用生命周期管理、部署内置应用nginx示例_第33张图片点击该应用进行审核,在弹出窗口中查看应用信息、介绍、配置文件和更新日志。
kubesphere——应用生命周期管理、部署内置应用nginx示例_第34张图片审核员的职责是决定该应用是否符合发布至应用商店的标准。点击通过来批准,或者点击拒绝来拒绝提交的应用。
kubesphere——应用生命周期管理、部署内置应用nginx示例_第35张图片应用获批后,isv 便可以将 Redis 应用程序发布至应用商店,让平台上的所有用户都能找到并部署该应用程序。

发布应用程序至应用商店

以 isv 身份重新登录 KubeSphere。转到企业空间,点击应用模板页面上的 Redis。在详情页面上展开版本菜单,然后点击安装到商店。在弹出的提示框中,点击确定以确认操作。

kubesphere——应用生命周期管理、部署内置应用nginx示例_第36张图片
kubesphere——应用生命周期管理、部署内置应用nginx示例_第37张图片
kubesphere——应用生命周期管理、部署内置应用nginx示例_第38张图片可能会在应用商店看到两个 Redis 应用,其中一个是 KubeSphere 中的内置应用。请注意,新发布的应用会显示在应用商店列表的开头。

创建应用分类

reviewer 可以根据不同类型应用程序的功能和用途创建多个分类。这类似于设置标签,可以在应用商店中将分类用作筛选器,例如大数据、中间件和物联网等。

以 reviewer 身份登录 KubeSphere。要创建分类,请转到应用商店管理页面,再点击应用分类页面中的 +。
在弹出的对话框中设置分类名称和图标,然后点击确定。对于 Redis,可以将分类名称设置为 Database。
kubesphere——应用生命周期管理、部署内置应用nginx示例_第39张图片创建好分类后,可以给您的应用分配分类。在未分类中选择 Redis,点击调整分类。
kubesphere——应用生命周期管理、部署内置应用nginx示例_第40张图片在弹出对话框的下拉列表中选择分类 (Database) 然后点击确定。
kubesphere——应用生命周期管理、部署内置应用nginx示例_第41张图片
kubesphere——应用生命周期管理、部署内置应用nginx示例_第42张图片

添加新版本

要让企业空间用户能够更新应用,您需要先向 KubeSphere 添加新的应用版本。

再次以 isv 身份登录 KubeSphere,点击应用模板,点击列表中的 Redis 应用。
kubesphere——应用生命周期管理、部署内置应用nginx示例_第43张图片下载 Redis 12.0.0,这是 Redis 的一个新版本。在版本选项卡中点击右侧的上传新版本,上传您刚刚下载的文件包。
kubesphere——应用生命周期管理、部署内置应用nginx示例_第44张图片
kubesphere——应用生命周期管理、部署内置应用nginx示例_第45张图片
新的应用版本会显示在版本列表中。您可以通过点击“安装”来展开菜单并测试新的版本。另外,您也可以提交审核并发布至应用商店,操作步骤和上面说明的一样。

kubesphere——应用生命周期管理、部署内置应用nginx示例_第46张图片
kubesphere——应用生命周期管理、部署内置应用nginx示例_第47张图片
kubesphere——应用生命周期管理、部署内置应用nginx示例_第48张图片

应用程序升级

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

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

kubesphere——应用生命周期管理、部署内置应用nginx示例_第49张图片点击更多操作,在下拉菜单中选择编辑设置。
在弹出窗口中,可以查看应用配置 YAML 文件。在右侧的下拉列表中选择新版本,还可以自定义新版本的 YAML 文件。在本实验中,点击更新,直接使用默认配置。
kubesphere——应用生命周期管理、部署内置应用nginx示例_第50张图片在应用页面,您会看到应用正在升级中。升级完成后,应用状态会变成运行中。
kubesphere——应用生命周期管理、部署内置应用nginx示例_第51张图片

下架应用程序

可以选择将应用完全从应用商店下架,或者下架某个特定版本。
以 reviewer 身份登录 KubeSphere。点击左上角的平台管理,选择应用商店管理。在应用商店页面,点击 Redis。
在详情页面,点击下架应用,在弹出的对话框中选择确定,确认将应用从应用商店下架的操作。
将应用从应用商店下架不影响正在使用该应用的租户。
要让应用再次在应用商店可用,点击上架应用。

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

kubesphere——应用生命周期管理、部署内置应用nginx示例_第52张图片要让应用版本再次在应用商店可用,点击发布版本。
kubesphere——应用生命周期管理、部署内置应用nginx示例_第53张图片

部署内置应用nginx示例

NGINX 是一个开源软件应用,用于 Web 服务、反向代理、缓存、负载均衡、流媒体等。下面实验展示了如何从 KubeSphere 应用商店部署 NGINX。

准备工作

请确保已启用 OpenPitrix 系统。
需要创建一个企业空间、一个项目和一个用户帐户 (project-regular) 。该帐户需要是平台普通用户,并邀请至项目demo-project中赋予 operator 角色作为项目操作员。

下面的实验以 project-regular 身份登录控制台,在企业空间 demo-workspace 中的 demo-project 项目中进行操作。

从应用商店中部署 nginx

在 demo-project 项目的概览页面,点击左上角的应用商店。

kubesphere——应用生命周期管理、部署内置应用nginx示例_第54张图片找到 nginx,点击应用信息页面上的安装。
kubesphere——应用生命周期管理、部署内置应用nginx示例_第55张图片设置名称并选择应用版本。请确保将 nginx部署在 demo-project 中,点击下一步。
在应用设置页面,指定要为该应用部署的副本数量,根据需要启用应用路由 (Ingress)。操作完成后,点击安装。
kubesphere——应用生命周期管理、部署内置应用nginx示例_第56张图片 nginx 启动并运行。
kubesphere——应用生命周期管理、部署内置应用nginx示例_第57张图片

访问 nginx

要从集群外部访问 nginx,您需要先通过 NodePort 暴露该应用。

转到服务页面,点击 nginx 的服务名称。
在服务详情页面,点击更多操作,在下拉菜单中选择编辑外部访问。
kubesphere——应用生命周期管理、部署内置应用nginx示例_第58张图片访问模式选择 NodePort,然后点击确定。
kubesphere——应用生命周期管理、部署内置应用nginx示例_第59张图片在端口下,您可以查看已暴露的端口。
kubesphere——应用生命周期管理、部署内置应用nginx示例_第60张图片通过 : 访问 nginx。
kubesphere——应用生命周期管理、部署内置应用nginx示例_第61张图片

你可能感兴趣的:(运维学习,笔记,Linux,kubernetes,运维,kubesphere)