mirror of
https://github.com/kubesphere/website.git
synced 2025-12-26 00:12:48 +00:00
parent
e966e69966
commit
774c2bc1a9
|
|
@ -28,29 +28,9 @@ ignorefiles = [ ".*/_custom" ]
|
|||
toclevels = 2
|
||||
file_output_type = "html"
|
||||
relfilesuffix = "/"
|
||||
ks_product = " KubeSphere 企业版"
|
||||
ks_product_left = " KubeSphere 企业版"
|
||||
ks_product_right = "KubeSphere 企业版"
|
||||
ks_product_both = " KubeSphere 企业版"
|
||||
ks_product_full = "KubeSphere 企业版"
|
||||
ks_product_full_left = " KubeSphere 企业版"
|
||||
ks_product_full_right = "KubeSphere 企业版"
|
||||
ks_product_full_both = " KubeSphere 企业版"
|
||||
ks_product_abbr_full = "KubeSphere 企业版"
|
||||
ks_product_abbr_full_left = " KubeSphere 企业版"
|
||||
ks_product_abbr_full_right = "KubeSphere 企业版"
|
||||
ks_product_abbr_full_both = " KubeSphere 企业版"
|
||||
ks_product_low = "kubesphere-enterprise"
|
||||
ks_product_ver = "v3.4.0"
|
||||
clickhouse_product_ver = "v2.1.1"
|
||||
mysql_product_ver = "v2.3.0"
|
||||
kafka_product_ver = "v1.0.0"
|
||||
opensearch_product_ver = "v1.0.0"
|
||||
postgresql_product_ver = "v1.2.0"
|
||||
redis_cluster_product_ver = "v1.0.0"
|
||||
redis_sentinel_product_ver = "v1.0.0"
|
||||
eck_product_ver = "v2.2.0"
|
||||
mongodb_product_ver = "v2.1.2"
|
||||
ks_product_left = " KubeSphere "
|
||||
ks_product_right = " KubeSphere "
|
||||
ks_product_both = " KubeSphere "
|
||||
|
||||
[security]
|
||||
enableInlineShortcodes = false
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
// :ks_include_id: f3341457c4584e59b799240a35ca496d
|
||||
您需要加入一个集群并在集群中具有pass:a,q[{ks_permission}]权限。有关更多信息,请参阅xref:05-cluster-management/12-cluster-settings/03-cluster-members/_index.adoc[集群成员]和xref:05-cluster-management/12-cluster-settings/04-cluster-roles/_index.adoc[集群角色]。
|
||||
您需要加入一个集群并在集群中具有pass:a,q[{ks_permission}]权限。有关更多信息,请参阅xref:05-cluster-management/12-cluster-settings/03-cluster-members/[集群成员]和xref:05-cluster-management/12-cluster-settings/04-cluster-roles/[集群角色]。
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
// :ks_include_id: f3341457c4584e59b799240a35ca496d
|
||||
您需要加入一个集群或项目,并在集群或项目中具有pass:a,q[{ks_permission}]权限。有关更多信息,请参阅xref:07-cluster-management/09-cluster-settings/04-cluster-roles/_index.adoc[集群角色]和xref:09-project-management/06-project-settings/02-project-roles/_index.adoc[项目角色]。
|
||||
您需要加入一个集群或项目,并在集群或项目中具有pass:a,q[{ks_permission}]权限。有关更多信息,请参阅xref:07-cluster-management/09-cluster-settings/04-cluster-roles/[集群角色]和xref:09-project-management/06-project-settings/02-project-roles/[项目角色]。
|
||||
|
|
@ -1,2 +1,2 @@
|
|||
// :ks_include_id: f3341457c4584e59b799240a35ca496d
|
||||
您需要加入一个集群并在集群中具有pass:a,q[{ks_permission}]权限。有关更多信息,请参阅xref:07-cluster-management/09-cluster-settings/03-cluster-members/_index.adoc[集群成员]和xref:07-cluster-management/09-cluster-settings/04-cluster-roles/_index.adoc[集群角色]。
|
||||
您需要加入一个集群并在集群中具有pass:a,q[{ks_permission}]权限。有关更多信息,请参阅xref:07-cluster-management/09-cluster-settings/03-cluster-members/[集群成员]和xref:07-cluster-management/09-cluster-settings/04-cluster-roles/[集群角色]。
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
// :ks_include_id: 07a04c60e8c342db9bc6ec8108be9412
|
||||
ifeval::["{file_output_type}" == "html"]
|
||||
* {ks_product_right}平台需要启用容器组 IP 池扩展组件。
|
||||
有关更多信息,请参阅 xref:04-platform-management/01-extension-management/_index.adoc[启用可插拔组件]。
|
||||
有关更多信息,请参阅 xref:04-platform-management/01-extension-management/[启用可插拔组件]。
|
||||
endif::[]
|
||||
|
||||
ifeval::["{file_output_type}" == "pdf"]
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
// :ks_include_id: 7f602e6e82414c39b2434c3a6ef39aa0
|
||||
|分类
|
||||
|应用模板所属的分类。您可以将应用模板分配到一个分类中以便于管理。有关更多信息,请参阅xref:04-platform-management/05-app-store-management/02-app-categories/_index.adoc[应用分类]。
|
||||
|应用模板所属的分类。您可以将应用模板分配到一个分类中以便于管理。有关更多信息,请参阅xref:04-platform-management/05-app-store-management/02-app-categories/[应用分类]。
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
// :ks_include_id: 533e874085874479aae0d8bb598443f2
|
||||
您需要在{ks_product_both}平台具有 **platform-admin** 角色。有关更多信息,请参阅xref:04-platform-management/04-access-control/02-users/_index.adoc[用户]和xref:04-platform-management/04-access-control/03-platform-roles/_index.adoc[平台角色]。
|
||||
您需要在{ks_product_both}平台具有 **platform-admin** 角色。有关更多信息,请参阅xref:04-platform-management/04-access-control/02-users/[用户]和xref:04-platform-management/04-access-control/03-platform-roles/[平台角色]。
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
// :ks_include_id: dea142b7ab3e4c6292a968da83aa19c0
|
||||
* 您需要在主集群和成员集群中都具有 **platform-admin** 角色。有关更多信息,请参阅xref:04-platform-management/04-access-control/02-users/_index.adoc[用户]和xref:04-platform-management/04-access-control/03-platform-roles/_index.adoc[平台角色]。
|
||||
* 您需要在主集群和成员集群中都具有 **platform-admin** 角色。有关更多信息,请参阅xref:04-platform-management/04-access-control/02-users/[用户]和xref:04-platform-management/04-access-control/03-platform-roles/[平台角色]。
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
// :ks_include_id: 95e415bcbafa45ed8545cb7700801b09
|
||||
您需要在{ks_product_both}平台具有pass:a,q[{ks_permission}]权限。有关更多信息,请参阅xref:04-platform-management/04-access-control/02-users/_index.adoc[用户]和xref:04-platform-management/04-access-control/03-platform-roles/_index.adoc[平台角色]。
|
||||
您需要在{ks_product_both}平台具有pass:a,q[{ks_permission}]权限。有关更多信息,请参阅xref:04-platform-management/04-access-control/02-users/[用户]和xref:04-platform-management/04-access-control/03-platform-roles/[平台角色]。
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
// :ks_include_id: 95e415bcbafa45ed8545cb7700801b09
|
||||
您需要在{ks_product_both}平台具有pass:a,q[{ks_permission}]权限。有关更多信息,请参阅xref:05-users-and-roles/01-users/_index.adoc[用户]和xref:05-users-and-roles/02-platform-roles/_index.adoc[平台角色]。
|
||||
您需要在{ks_product_both}平台具有pass:a,q[{ks_permission}]权限。有关更多信息,请参阅xref:05-users-and-roles/01-users/[用户]和xref:05-users-and-roles/02-platform-roles/[平台角色]。
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
// :ks_include_id: 6579f3ef4c70439ca10c8e8de94ce9fb
|
||||
您需要加入一个项目并在项目中具有pass:a,q[{ks_permission}]权限。有关更多信息,请参阅xref:07-project-management/10-project-settings/04-project-members/_index.adoc[项目成员]和xref:07-project-management/10-project-settings/03-project-roles/02-view-a-project-role-list.adoc[项目角色]。
|
||||
您需要加入一个项目并在项目中具有pass:a,q[{ks_permission}]权限。有关更多信息,请参阅xref:07-project-management/10-project-settings/04-project-members/[项目成员]和xref:07-project-management/10-project-settings/03-project-roles/02-view-a-project-role-list.adoc[项目角色]。
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
// :ks_include_id: 6579f3ef4c70439ca10c8e8de94ce9fb
|
||||
您需要加入一个项目并在项目中具有pass:a,q[{ks_permission}]权限。有关更多信息,请参阅xref:09-project-management/06-project-settings/03-project-members/_index.adoc[项目成员]和xref:09-project-management/06-project-settings/02-project-roles/_index.adoc[项目角色]。
|
||||
您需要加入一个项目并在项目中具有pass:a,q[{ks_permission}]权限。有关更多信息,请参阅xref:09-project-management/06-project-settings/03-project-members/[项目成员]和xref:09-project-management/06-project-settings/02-project-roles/[项目角色]。
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
// :ks_include_id: 6113bcafa9264e92892a1889dbfe7330
|
||||
有关镜像构建器的更多信息,请参阅xref:07-project-management/08-image-builder/_index.adoc[镜像构建器]。
|
||||
有关镜像构建器的更多信息,请参阅xref:07-project-management/08-image-builder/[镜像构建器]。
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
// :ks_include_id: 716996e4cfe04beaa6a39a03ae610b86
|
||||
有关如何在项目中启用**收集卷上的日志**,请参阅link:/Users/keke/works/pitrix/repo/ks-qkcp-docs/ks-qkcp/docs-zh/@ks-qkcp/docs-zh/08-multi-cluster-project-management/06-project-settings/04-log-collection/_index.adoc[日志收集]。
|
||||
有关如何在项目中启用**收集卷上的日志**,请参阅link:/Users/keke/works/pitrix/repo/ks-qkcp-docs/ks-qkcp/docs-zh/@ks-qkcp/docs-zh/08-multi-cluster-project-management/06-project-settings/04-log-collection/[日志收集]。
|
||||
|
|
@ -1,2 +1,2 @@
|
|||
// :ks_include_id: 7318136ea443449a9e862e964a41299f
|
||||
有关如何在项目中启用**收集卷上的日志**,请参阅xref:07-project-management/10-project-settings/06-log-collection/_index.adoc[日志收集]。
|
||||
有关如何在项目中启用**收集卷上的日志**,请参阅xref:07-project-management/10-project-settings/06-log-collection/[日志收集]。
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
// :ks_include_id: 05d7ebe027f04cc589e8baa04343e651
|
||||
您需要加入一个企业空间并在企业空间中具有pass:a,q[{ks_permission}]权限。有关更多信息,请参阅xref:06-workspace-management/06-workspace-settings/03-workspace-members/_index.adoc[企业空间成员]、xref:06-workspace-management/06-workspace-settings/04-workspace-roles/_index.adoc[企业空间角色]和xref:06-workspace-management/06-workspace-settings/05-departments/_index.adoc[部门]。
|
||||
您需要加入一个企业空间并在企业空间中具有pass:a,q[{ks_permission}]权限。有关更多信息,请参阅xref:06-workspace-management/06-workspace-settings/03-workspace-members/[企业空间成员]、xref:06-workspace-management/06-workspace-settings/04-workspace-roles/[企业空间角色]和xref:06-workspace-management/06-workspace-settings/05-departments/[部门]。
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
// :ks_include_id: 05d7ebe027f04cc589e8baa04343e651
|
||||
您需要加入一个企业空间并在企业空间中具有pass:a,q[{ks_permission}]权限。有关更多信息,请参阅xref:08-workspace-management/05-workspace-settings/03-workspace-members/_index.adoc[企业空间成员]和xref:08-workspace-management/05-workspace-settings/04-workspace-roles/_index.adoc[企业空间角色]。
|
||||
您需要加入一个企业空间并在企业空间中具有pass:a,q[{ks_permission}]权限。有关更多信息,请参阅xref:08-workspace-management/05-workspace-settings/03-workspace-members/[企业空间成员]和xref:08-workspace-management/05-workspace-settings/04-workspace-roles/[企业空间角色]。
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
// :ks_include_id: 05d7ebe027f04cc589e8baa04343e651
|
||||
您需要加入一个企业空间并在企业空间中具有pass:a,q[{ks_permission}]权限。有关更多信息,请参阅xref:08-workspace-management/06-workspace-settings/03-workspace-members/_index.adoc[企业空间成员]和xref:08-workspace-management/06-workspace-settings/04-workspace-roles/_index.adoc[企业空间角色]。
|
||||
您需要加入一个企业空间并在企业空间中具有pass:a,q[{ks_permission}]权限。有关更多信息,请参阅xref:08-workspace-management/06-workspace-settings/03-workspace-members/[企业空间成员]和xref:08-workspace-management/06-workspace-settings/04-workspace-roles/[企业空间角色]。
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
---
|
||||
title: "KubeSphere LuBan"
|
||||
linkTitle: "KubeSphere LuBan"
|
||||
description: "介绍 KubeSphere LuBan 的背景和优势。"
|
||||
weight: 01
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
---
|
||||
title: "KubeSphere LuBan 架构"
|
||||
linkTitle: "KubeSphere LuBan 架构"
|
||||
description: "介绍 KubeSphere LuBan 架构及扩展组件。"
|
||||
weight: 02
|
||||
---
|
||||
|
||||
|
|
@ -32,11 +33,11 @@ KubeSphere 扩展组件是一个可以对 KubeSphere 功能进行扩展并借助
|
|||
. 覆盖 KubeSphere 已有的页面路由,实现您独有的业务逻辑。
|
||||
. 对 KubeSphere 的 API 进行扩展。
|
||||
|
||||
如果您想更全面地了解扩展 API,请参阅link:https://dev-guide.kubesphere.io/extension-dev-guide/zh/feature-customization/[功能定制]。
|
||||
如果您想更全面地了解扩展 API,请参阅link:https://dev-guide.kubesphere.io/extension-dev-guide/zh/feature-customization/[扩展能力]。
|
||||
|
||||
== 如何构建扩展组件?
|
||||
|
||||
请参阅link:https://dev-guide.kubesphere.io/extension-dev-guide/zh/development-procedure/[开发流程]章节来熟悉如何构建扩展组件。
|
||||
请参阅link:https://dev-guide.kubesphere.io/extension-dev-guide/zh/best-practice/develop-example/[开发案例]章节来熟悉如何构建扩展组件。
|
||||
|
||||
如果您在扩展组件的开发过程中有疑问,请尝试在 link:https://github.com/kubesphere/kubesphere/issues/new/choose[GitHub Issue] 获得帮助。
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
---
|
||||
title: "应用场景"
|
||||
linkTitle: "应用场景"
|
||||
description: "介绍 KubeSphere 的应用场景。"
|
||||
weight: 03
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ icon: "/images/docs/common/docs.svg"
|
|||
|
||||
本节介绍{ks_product_both}的产品优势,架构以及应用场景。
|
||||
|
||||
|
||||
ifeval::["{file_output_type}" == "pdf"]
|
||||
|
||||
== 产品版本
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
---
|
||||
title: "安装 KubeSphere 企业版"
|
||||
linkTitle: "安装 KubeSphere 企业版"
|
||||
title: "安装 KubeSphere"
|
||||
linkTitle: "安装 KubeSphere"
|
||||
keywords: "Kubernetes, KubeSphere, 快速入门, 安装, KubeSphere Core"
|
||||
description: "介绍如何安装 KubeSphere。"
|
||||
weight: 01
|
||||
---
|
||||
|
||||
// 以下内容与“安装 Kubernetes 和 KubeSphere 企业版”的内容完全一样,不同点:层级提升一层导致 include 链接有变化;修改 link 链接为 pdf 文档名称。
|
||||
// 以下内容与“安装 Kubernetes 和 KubeSphere”的内容完全一样,不同点:层级提升一层导致 include 链接有变化;修改 link 链接为 pdf 文档名称。
|
||||
|
||||
本节介绍如何安装 Kubernetes 和{ks_product_left}。
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
title: "控制用户权限"
|
||||
linkTitle: "控制用户权限"
|
||||
linkTitle: "创建企业空间、项目、用户和平台角色"
|
||||
keywords: "Kubernetes, KubeSphere, 快速入门, 用户, 权限"
|
||||
description: "介绍如何创建用户,并使用企业空间、项目和角色控制用户的访问权限。"
|
||||
weight: 03
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ weight: 01
|
|||
|平台级、多集群和多租户级扩展组件的全局访问入口,支持快捷访问已安装的扩展组件。
|
||||
|
||||
|平台设置
|
||||
|查看并自定义平台信息,管理许可证。
|
||||
|查看并自定义平台信息。
|
||||
|===
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,62 +1,28 @@
|
|||
---
|
||||
title: "查看和定制平台信息"
|
||||
linkTitle: "查看和定制平台信息"
|
||||
keywords: "Kubernetes, KubeSphere, 平台设置, 平台信息, 查看和定制平台信息"
|
||||
description: "介绍如何查看和定制平台信息。"
|
||||
title: "查看平台信息"
|
||||
linkTitle: "查看平台信息"
|
||||
keywords: "Kubernetes, KubeSphere, 平台设置, 平台信息, 查看平台信息"
|
||||
description: "介绍如何查看平台信息。"
|
||||
weight: 01
|
||||
---
|
||||
|
||||
|
||||
:ks_navigation: **平台信息**
|
||||
:ks_permission: **平台设置管理**
|
||||
本节介绍如何查看{ks_product_left} Web 控制台的信息。
|
||||
|
||||
|
||||
本节介绍如何查看和定制{ks_product_left} Web 控制台的信息。
|
||||
// == 前提条件
|
||||
|
||||
== 前提条件
|
||||
// :relfileprefix: ../../../
|
||||
|
||||
:relfileprefix: ../../../
|
||||
// include::../../../_custom/platformManagement/platformManagement-prer-requiredPermission_v4.adoc[]
|
||||
|
||||
include::../../../_custom/platformManagement/platformManagement-prer-requiredPermission_v4.adoc[]
|
||||
// :relfileprefix: ./
|
||||
|
||||
:relfileprefix: ./
|
||||
|
||||
== 操作步骤
|
||||
|
||||
include::../../../_custom/platformManagement/platformManagement-oper-logIn.adoc[]
|
||||
. 登录{ks_product_left} Web 控制台。
|
||||
|
||||
. 在页面右上角点击image:/images/ks-qkcp/zh/icons/cogwheel.svg[cogwheel,18,18]进入**平台设置**页面。
|
||||
|
||||
+
|
||||
|
||||
include::../../../../_ks_components/oper-navigate.adoc[]
|
||||
+
|
||||
--
|
||||
**平台信息**页面显示平台的访问地址、标题、描述、标识、浏览器图标和登录页面背景图片。
|
||||
--
|
||||
|
||||
. 在页面右上角点击**自定义平台信息**。
|
||||
|
||||
. 在**自定义平台信息**对话框设置平台的信息,然后点击**确定**。
|
||||
+
|
||||
--
|
||||
[%header,cols="1a,4a"]
|
||||
|===
|
||||
|参数 |描述
|
||||
|
||||
|平台标题
|
||||
|平台的名称。平台标题可包含任意字符,最长 63 个字符。
|
||||
|
||||
|平台描述
|
||||
|描述可包含任意字符,最长 256 个字符。
|
||||
|
||||
|平台标识
|
||||
|Web 控制台界面上方显示的标识。图片格式可以为 SVG、PNG 或 JPG,图片文件大小不能超过 2 MB,推荐的图片分辨率为 200 x 40 像素。
|
||||
|
||||
|浏览器图标
|
||||
|浏览器页签的图标。图片格式可以为 ICO、SVG、PNG 或 JPG,图片文件大小不能超过 2 MB,推荐图片分辨率为 40 x 40 像素,推荐长宽比为 1:1。
|
||||
|
||||
|登录页面背景图片
|
||||
|平台登录页面的背景图片。图片格式可以为 SVG、PNG 或 JPG,图片文件大小不能超过 2 MB,推荐的图片分辨率为 1920 x 1080 像素。
|
||||
|===
|
||||
--
|
||||
**平台信息**页面显示平台的访问地址、标识、标题和描述。
|
||||
|
|
|
|||
|
|
@ -1,118 +0,0 @@
|
|||
---
|
||||
title: "查看许可证信息"
|
||||
linkTitle: "查看许可证信息"
|
||||
keywords: "Kubernetes, KubeSphere, 平台设置, 许可证, 查看许可证信息"
|
||||
description: "介绍如何查看许可证信息。"
|
||||
weight: 01
|
||||
---
|
||||
|
||||
:ks_navigation: **许可证**
|
||||
:ks_permission: **平台设置管理**
|
||||
|
||||
|
||||
本节介绍如何查看许可证信息。
|
||||
|
||||
|
||||
== 前提条件
|
||||
|
||||
|
||||
:relfileprefix: ../../../../
|
||||
|
||||
include::../../../../_custom/platformManagement/platformManagement-prer-requiredPermission_v4.adoc[]
|
||||
|
||||
:relfileprefix: ./
|
||||
|
||||
|
||||
== 操作步骤
|
||||
|
||||
include::../../../../_custom/platformManagement/platformManagement-oper-logIn.adoc[]
|
||||
|
||||
. 在页面右上角点击image:/images/ks-qkcp/zh/icons/cogwheel.svg[cogwheel,18,18]进入**平台设置**页面。
|
||||
|
||||
+
|
||||
|
||||
include::../../../../../_ks_components/oper-navigate.adoc[]
|
||||
+
|
||||
. 在**许可证信息**页签,查看{ks_product_both}和已安装扩展组件的许可证。
|
||||
+
|
||||
====
|
||||
* {ks_product_both}许可
|
||||
+
|
||||
[%header,cols="1a,4a"]
|
||||
|===
|
||||
|参数 |描述
|
||||
|
||||
|授权组织
|
||||
|被授权使用{ks_product_both}的组织。
|
||||
|
||||
|授权状态
|
||||
|
|
||||
* **未授权**:未获得{ks_product_both}的许可证。
|
||||
* **授权已过期**:{ks_product_left}的许可证已过期。
|
||||
* **授权数量不足**:当前集群规模超出被许可使用{ks_product_both}的集群规模。
|
||||
* **已授权**:{ks_product_left}授权正常。
|
||||
|
||||
|维保状态
|
||||
|
|
||||
* **无维保**:不享受维保服务。
|
||||
* **维保过期**:维保服务已过期。
|
||||
* **维保中**:在维保服务期内。
|
||||
|
||||
|集群 ID
|
||||
|当前集群 ID,用于判断集群是否享有授权。
|
||||
|
||||
|授权类型
|
||||
|**未输入激活码**、**订阅**或**永久授权**。
|
||||
|
||||
|授权用量
|
||||
|显示当前集群规模以及被许可使用{ks_product_both}的集群规模,单位为**核**。
|
||||
|
||||
|生效时间
|
||||
|许可证的生效时间。
|
||||
|
||||
|截止时间
|
||||
|许可证的过期时间。
|
||||
|===
|
||||
|
||||
* 扩展组件许可
|
||||
+
|
||||
--
|
||||
显示当前平台已安装的扩展组件的许可证。
|
||||
|
||||
[%header,cols="1a,4a"]
|
||||
|===
|
||||
|参数 |描述
|
||||
|
||||
|名称
|
||||
|扩展组件的名称。
|
||||
|
||||
|授权状态
|
||||
|
|
||||
* **未授权**:未获得{ks_product_both}的许可证。
|
||||
* **授权已过期**:{ks_product_left}的许可证已过期。
|
||||
* **授权数量不足**:当前集群规模超出被许可使用{ks_product_both}的集群规模。
|
||||
* **已授权**:{ks_product_left}授权正常。
|
||||
|
||||
|授权类型
|
||||
|**未输入激活码**、**订阅**或**永久授权**。
|
||||
|
||||
|授权单位
|
||||
|CPU 或 vCPU。
|
||||
|
||||
|授权用量
|
||||
|显示当前集群规模以及被许可使用{ks_product_both}的集群规模,单位为**核**。
|
||||
|
||||
|生效时间
|
||||
|许可证的生效时间。
|
||||
|
||||
|截止时间
|
||||
|许可证的过期时间。
|
||||
|===
|
||||
|
||||
* 在列表上方点击搜索框并输入组件名称,可搜索组件的许可证。
|
||||
|
||||
include::../../../../../_ks_components/oper-refreshListData.adoc[]
|
||||
|
||||
include::../../../../../_ks_components/oper-customizeColumns.adoc[]
|
||||
--
|
||||
====
|
||||
|
|
@ -1,48 +0,0 @@
|
|||
---
|
||||
title: "添加许可证"
|
||||
linkTitle: "添加许可证"
|
||||
keywords: "Kubernetes, KubeSphere, 平台设置, 许可证, 管理许可证"
|
||||
description: "介绍如何管理许可证。"
|
||||
weight: 03
|
||||
---
|
||||
|
||||
:ks_navigation: **许可证**
|
||||
:ks_permission: **平台设置管理**
|
||||
|
||||
|
||||
本节介绍如何添加许可证。
|
||||
|
||||
|
||||
== 前提条件
|
||||
|
||||
|
||||
:relfileprefix: ../../../../
|
||||
|
||||
include::../../../../_custom/platformManagement/platformManagement-prer-requiredPermission_v4.adoc[]
|
||||
|
||||
:relfileprefix: ./
|
||||
|
||||
|
||||
== 操作步骤
|
||||
|
||||
include::../../../../_custom/platformManagement/platformManagement-oper-logIn.adoc[]
|
||||
|
||||
. 在页面右上角点击image:/images/ks-qkcp/zh/icons/cogwheel.svg[cogwheel,18,18]进入**平台设置**页面。
|
||||
|
||||
+
|
||||
|
||||
include::../../../../../_ks_components/oper-navigate.adoc[]
|
||||
|
||||
. 点击**许可证管理**页签,查看已添加的许可证信息。
|
||||
|
||||
. 点击**添加许可证**,输入激活码,点击**确定**完成添加。
|
||||
+
|
||||
--
|
||||
* 许可证添加完成后将显示在许可证管理列表中。
|
||||
|
||||
* 在列表上方点击搜索框并输入组件名称,可搜索组件的许可证。
|
||||
|
||||
include::../../../../../_ks_components/oper-refreshListData.adoc[]
|
||||
|
||||
include::../../../../../_ks_components/oper-customizeColumns.adoc[]
|
||||
--
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
---
|
||||
title: "删除许可证"
|
||||
linkTitle: "删除许可证"
|
||||
keywords: "Kubernetes, KubeSphere, 平台设置, 许可证, 管理许可证"
|
||||
description: "介绍如何管理许可证。"
|
||||
weight: 05
|
||||
---
|
||||
|
||||
:ks_navigation: **许可证**
|
||||
:ks_permission: **平台设置管理**
|
||||
|
||||
|
||||
本节介绍如何删除许可证。
|
||||
|
||||
[.admon.warning,cols="a"]
|
||||
|===
|
||||
|警告
|
||||
|
||||
|许可证被删除后,您将丢失该组件的授权,请谨慎执行此操作。
|
||||
|
||||
|===
|
||||
|
||||
== 前提条件
|
||||
|
||||
|
||||
:relfileprefix: ../../../../
|
||||
|
||||
include::../../../../_custom/platformManagement/platformManagement-prer-requiredPermission_v4.adoc[]
|
||||
|
||||
:relfileprefix: ./
|
||||
|
||||
|
||||
== 操作步骤
|
||||
|
||||
include::../../../../_custom/platformManagement/platformManagement-oper-logIn.adoc[]
|
||||
|
||||
. 在页面右上角点击image:/images/ks-qkcp/zh/icons/cogwheel.svg[cogwheel,18,18]进入**平台设置**页面。
|
||||
|
||||
+
|
||||
|
||||
include::../../../../../_ks_components/oper-navigate.adoc[]
|
||||
|
||||
. 点击**许可证管理**页签,查看已添加的许可证信息。
|
||||
|
||||
. 在需要删除的许可证右侧点击image:/images/ks-qkcp/zh/icons/trash-light.svg[trash-light,18,18]。
|
||||
|
||||
. 在**删除许可证**对话框,输入组件的名称,然后点击**确定**。
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
---
|
||||
title: "许可证 FAQ"
|
||||
linkTitle: "许可证 FAQ"
|
||||
weight: 07
|
||||
---
|
||||
|
||||
== 添加 license 时报错
|
||||
|
||||
问题描述:添加许可证时报错 `admission webhook "validator.config.kubesphere.io" denied the request: license for whizard-telemetry already exist`
|
||||
|
||||
原因:添加 license 或者 license bundle 时,其中的 whizard-telemetry(WhizardTelemetry 平台服务) 的 license 已在{ks_product_both}平台中存在。
|
||||
|
||||
解决办法:删除原有的 whizard-telemetry 许可证,再添加新的许可证。
|
||||
|
||||
[.admon.attention,cols="a"]
|
||||
|===
|
||||
|注意
|
||||
|
||||
|
|
||||
license 过期后,也要先删除过期的 license,再添加新的 license。
|
||||
|===
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
---
|
||||
title: "许可证"
|
||||
linkTitle: "许可证"
|
||||
keywords: "Kubernetes, KubeSphere, 平台设置, 许可证"
|
||||
description: "介绍如何管理 KubeSphere 平台和扩展组件的许可证。"
|
||||
layout: "second"
|
||||
weight: 02
|
||||
---
|
||||
|
||||
|
||||
本节介绍如何查看及管理{ks_product_both}平台和扩展组件的许可证。
|
||||
|
||||
{ks_product_right}许可证,用于激活{ks_product_both}平台。如果您需要购买或更新平台许可证,请联系 KubeSphere 技术支持。
|
||||
|
||||
扩展组件许可证,用于激活某些需购买的扩展组件,此处仅展示扩展组件的授权信息。
|
||||
有关扩展组件许可的更多信息,请访问扩展中心的组件详情页,联系扩展组件供应商获取支持。
|
||||
|
|
@ -6,4 +6,4 @@ layout: "second"
|
|||
---
|
||||
|
||||
|
||||
本节介绍如何管理{ks_product_left} Web 控制台的基本信息以及许可证。
|
||||
本节介绍如何管理{ks_product_left} Web 控制台的基本信息。
|
||||
|
|
|
|||
|
|
@ -1,39 +0,0 @@
|
|||
---
|
||||
title: "订阅扩展组件"
|
||||
linkTitle: "订阅扩展组件"
|
||||
keywords: "Kubernetes, KubeSphere,订阅,组件,KubeSphere Cloud,云账号"
|
||||
description: "介绍如何订阅扩展组件。"
|
||||
weight: 01
|
||||
---
|
||||
|
||||
本节介绍如何订阅扩展组件。
|
||||
|
||||
在安装组件之前,您需要使用 KubeSphere 云账号在扩展市场订阅组件。
|
||||
|
||||
== 前提条件
|
||||
|
||||
* 以 platform-admin 角色登录到{ks_product_left} Web 控制台。
|
||||
* 已注册一个 https://kubesphere.cloud/login/[KubeSphere 云账号]。
|
||||
|
||||
== 操作步骤
|
||||
|
||||
. 点击{ks_product_left} Web 控制台左上角的**扩展市场**,进入扩展市场页面。
|
||||
|
||||
. 搜索您要安装的扩展组件,点击**订阅**。
|
||||
+
|
||||
--
|
||||
* 点击扩展组件名称进入组件的详情页面,查看基本信息、概览、更新日志、权限需求等。
|
||||
* 点击详情页面左侧的image:/images/ks-qkcp/zh/icons/chevron-down.svg[chevron-down,18,18],选择扩展组件的版本。
|
||||
* 点击**订阅**安装当前版本的扩展组件。
|
||||
* 点击**查看文件**查看该扩展组件 Helm Chart 包中的所有文件。点击页面右侧的image:/images/ks-qkcp/zh/icons/copy.svg[copy,18,18]复制当前查看文件的内容,点击image:/images/ks-qkcp/zh/icons/download-dark.svg[download-dark,18,18]将当前查看的文件下载到本地。
|
||||
--
|
||||
. 如果您未绑定 https://kubesphere.cloud/login/[KubeSphere 云账号],前往**扩展中心**绑定您的 KubeSphere 云账户,然后进入订阅流程。
|
||||
. 在订单确认与支付页面,选择**订阅方案**、**订阅时长**后,提交订单进行支付。
|
||||
. 支付完成后,在扩展市场的组件详情页面,点击**安装**,进入组件安装流程。
|
||||
|
||||
+
|
||||
include::../../../../_ks_components/admonitions/note.adoc[]
|
||||
|
||||
扩展市场中部分组件可免费订阅,部分需要付费订阅。
|
||||
|
||||
include::../../../../_ks_components/admonitions/admonEnd.adoc[]
|
||||
|
|
@ -1,56 +0,0 @@
|
|||
---
|
||||
title: "安装扩展组件"
|
||||
linkTitle: "安装扩展组件"
|
||||
keywords: "Kubernetes, KubeSphere,安装,组件,多集群"
|
||||
description: "介绍如何安装扩展组件。"
|
||||
weight: 02
|
||||
---
|
||||
|
||||
本节介绍如何安装扩展组件。
|
||||
|
||||
== 前提条件
|
||||
|
||||
ifeval::["{file_output_type}" == "html"]
|
||||
* 以 platform-admin 角色登录到{ks_product_left} Web 控制台。有关平台角色的更多信息,请参阅link:../../../05-users-and-roles/02-platform-roles/[平台角色]。
|
||||
endif::[]
|
||||
|
||||
ifeval::["{file_output_type}" == "pdf"]
|
||||
* 以 platform-admin 角色登录到{ks_product_left} Web 控制台。有关平台角色的更多信息,请参阅《{ks_product_right}用户和角色管理指南》。
|
||||
endif::[]
|
||||
|
||||
* 请先订阅您要安装的扩展组件。
|
||||
|
||||
|
||||
== 安装步骤
|
||||
|
||||
. 采用以下方式之一,进入安装页面,开始安装流程。
|
||||
|
||||
* 点击扩展市场中组件详情页的**安装**按钮,进入组件安装页面。
|
||||
* 在扩展中心绑定 KubeSphere 云账号后,对已订阅未安装的组件,点击右侧的**安装**按钮,进入组件安装页面。
|
||||
|
||||
. 在组件安装对话框的**版本选择**页签,选择扩展组件的版本号,并安装好所有必装组件,点击**下一步**。
|
||||
|
||||
+
|
||||
|
||||
include::../../../../_ks_components/admonitions/note.adoc[]
|
||||
|
||||
安装检测时,会识别扩展组件是否有依赖组件。依赖组件分为必装组件和选装组件。
|
||||
|
||||
若必装组件的状态为**未就绪**,您需要先行安装正确版本的必装组件,以确保扩展组件的正常使用。而选装组件不会影响扩展组件的安装。
|
||||
|
||||
include::../../../../_ks_components/admonitions/admonEnd.adoc[]
|
||||
|
||||
. 在**扩展组件安装**页签,修改扩展组件的配置后(可选),点击**开始安装**,开始安装扩展组件。
|
||||
+
|
||||
image:/images/ks-qkcp/zh/v4.0/install-extensions.png[,100%]
|
||||
|
||||
. 在**集群选择**页签,根据名称,标识,标签选择集群,可选择多个集群。
|
||||
|
||||
. 在**差异化配置**页签,分别编辑选中集群的 YAML 配置,也可不修改,使用初始默认配置。点击**确定**,开始配置集群 Agent。
|
||||
+
|
||||
include::../../../../_ks_components/admonitions/note.adoc[]
|
||||
部分扩展组件可能需要安装集群 Agent,以便能正常使用扩展组件的功能。
|
||||
|
||||
include::../../../../_ks_components/admonitions/admonEnd.adoc[]
|
||||
|
||||
安装完成后,默认启用该组件。您可以在扩展中心配置、升级、禁用、卸载扩展组件,还可以点击顶部导航栏上的image:/images/ks-qkcp/zh/icons/grid.svg[grid,18,18]图标,查看使用该组件。
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
---
|
||||
title: "同步和设置云账号"
|
||||
linkTitle: "同步和设置云账号"
|
||||
keywords: "Kubernetes, KubeSphere,同步,设置,KubeSphere Cloud,云账号"
|
||||
description: "介绍如何同步和设置 KubeSphere 云账号。"
|
||||
weight: 01
|
||||
---
|
||||
|
||||
本节介绍如何在扩展中心同步和设置 KubeSphere 云账号。
|
||||
|
||||
== 前提条件
|
||||
|
||||
* 您需要在{ks_product_both}平台具有 **platform-admin** 角色。有关更多信息,请参阅link:../../../../05-users-and-roles/01-users/[用户]和link:../../../../05-users-and-roles/02-platform-roles/[平台角色]。
|
||||
* 您需要在扩展中心授权登录 KubeSphere 云账号。
|
||||
|
||||
== 同步云账号
|
||||
|
||||
完成组件订阅后,若扩展中心的组件列表未更新,您可能需要手动同步订阅信息。
|
||||
|
||||
. 以具有 **platform-admin** 角色的用户登录{ks_product_left} Web 控制台。
|
||||
. 点击**扩展中心**。
|
||||
. 点击组件列表右上角的云账号头像,选择**同步云账户**,即可在组件列表查看您已订阅的所有组件。
|
||||
|
||||
== 设置云账号
|
||||
. 以具有 **platform-admin** 角色的用户登录{ks_product_left} Web 控制台。
|
||||
. 点击**扩展中心**。
|
||||
. 点击组件列表右上角的云账号头像,选择**云账户设置**。
|
||||
. 设置账号信息、安全验证、支付货币等。
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
---
|
||||
title: "管理订阅"
|
||||
linkTitle: "管理订阅"
|
||||
keywords: "Kubernetes, KubeSphere,组件,订阅管理,KubeSphere Cloud,云账号"
|
||||
description: "介绍如何管理 KubeSphere 云账号下已订阅的组件。"
|
||||
weight: 02
|
||||
|
||||
---
|
||||
|
||||
本节介绍如何管理 KubeSphere 云账号下已订阅的组件。
|
||||
|
||||
== 前提条件
|
||||
|
||||
* 您需要在{ks_product_both}平台具有 **platform-admin** 角色。有关更多信息,请参阅link:../../../../05-users-and-roles/01-users/[用户]和link:../../../../05-users-and-roles/02-platform-roles/[平台角色]。
|
||||
* 您需要在扩展中心授权登录 KubeSphere 云账号。
|
||||
|
||||
== 操作步骤
|
||||
|
||||
. 以具有 **platform-admin** 角色的用户登录{ks_product_left} Web 控制台。
|
||||
. 点击**扩展中心**。
|
||||
. 点击组件列表右上角的头像,选择**订阅管理**。
|
||||
. 在订阅管理页面,查看各组件的订阅状态、订阅计划、订阅时长、到期时间等。
|
||||
. 在需要操作的组件右侧点击image:/images/ks-qkcp/zh/icons/more.svg[more,18,18],选择**查看订单**,或**订阅**已过期的组件。
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
---
|
||||
title: "管理订单"
|
||||
linkTitle: "管理订单"
|
||||
keywords: "Kubernetes, KubeSphere,组件,订单管理,KubeSphere Cloud,云账号"
|
||||
description: "介绍如何管理 KubeSphere 云账号下的订单。"
|
||||
weight: 03
|
||||
---
|
||||
|
||||
本节介绍如何管理 KubeSphere 云账号下的订单。
|
||||
|
||||
== 前提条件
|
||||
|
||||
* 您需要在{ks_product_both}平台具有 **platform-admin** 角色。有关更多信息,请参阅link:../../../../05-users-and-roles/01-users/[用户]和link:../../../../05-users-and-roles/02-platform-roles/[平台角色]。
|
||||
* 您需要在扩展中心授权登录 KubeSphere 云账号。
|
||||
|
||||
== 操作步骤
|
||||
|
||||
. 以具有 **platform-admin** 角色的用户登录{ks_product_left} Web 控制台。
|
||||
. 点击**扩展中心**。
|
||||
. 点击组件列表右上角的头像,选择**订单管理**。
|
||||
. 在订单页面,查看您账号下所有订单的详情,包括未支付完成的订单。
|
||||
. 点击未支付完成的订单,可以继续支付或取消订单。
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
---
|
||||
title: "解绑云账号"
|
||||
linkTitle: "解绑云账号"
|
||||
keywords: "Kubernetes, KubeSphere,解绑,组件,KubeSphere Cloud,云账号"
|
||||
description: "介绍如何解绑 KubeSphere 云账号。"
|
||||
weight: 04
|
||||
---
|
||||
|
||||
本节介绍如何解绑 KubeSphere 云账号。
|
||||
|
||||
解绑后,再次授权登录可以绑定新账号。
|
||||
|
||||
|
||||
== 前提条件
|
||||
|
||||
* 您需要在{ks_product_both}平台具有 **platform-admin** 角色。有关更多信息,请参阅link:../../../../05-users-and-roles/01-users/[用户]和link:../../../../05-users-and-roles/02-platform-roles/[平台角色]。
|
||||
* 您需要在扩展中心授权登录 KubeSphere 云账号。
|
||||
|
||||
== 操作步骤
|
||||
|
||||
. 以具有 **platform-admin** 角色的用户登录{ks_product_left} Web 控制台。
|
||||
. 点击**扩展中心**。
|
||||
. 点击组件列表右上角的头像,选择**解绑云账号**。
|
||||
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
---
|
||||
title: "管理 KubeSphere 云账号"
|
||||
linkTitle: "管理 KubeSphere 云账号"
|
||||
keywords: "Kubernetes, KubeSphere,订阅,安装,组件,KubeSphere Cloud,云账号"
|
||||
description: "介绍如何管理 KubeSphere 云账号的订阅订单等功能。"
|
||||
layout: "second"
|
||||
weight: 03
|
||||
---
|
||||
|
||||
本节介绍如何在扩展中心管理 KubeSphere 云账号下的订阅订单等功能。
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
---
|
||||
title: "订阅与安装扩展组件"
|
||||
linkTitle: "订阅与安装扩展组件"
|
||||
keywords: "Kubernetes, KubeSphere,订阅,安装,组件, KubeSphere Cloud,云账号"
|
||||
description: "介绍如何订阅、安装扩展组件,以及管理 KubeSphere 云账号的相关功能。"
|
||||
layout: "second"
|
||||
draft: true
|
||||
weight: 02
|
||||
---
|
||||
|
||||
// 导出说明:此文档用于在线订阅 pdf 版本,不可与 01-install-components-pdf 同时存在。
|
||||
|
||||
本节介绍如何订阅、安装扩展组件,以及管理 KubeSphere 云账号的相关功能。
|
||||
|
|
@ -14,7 +14,7 @@ ifeval::["{file_output_type}" == "html"]
|
|||
|
||||
KubeSphere 扩展组件,是构建在 KubeSphere LuBan 之上、用以扩展并增强 KubeSphere 产品能力、进一步满足企业各类型业务需求的应用形态。{ks_product_right}安装完成后默认仅启用了核心组件。建议您在扩展市场订阅安装扩展组件以充分利用{ks_product_both}的功能特性。
|
||||
|
||||
有关如何使用各个扩展组件的更多信息,请参阅link:../11-use-extensions[扩展组件使用]章节。
|
||||
// 有关如何使用各个扩展组件的更多信息,请参阅link:../11-use-extensions[扩展组件使用]章节。
|
||||
|
||||
endif::[]
|
||||
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ include::../../../../_custom/clusterManagement/workloads/workloads-desc-rollBack
|
|||
== 前提条件
|
||||
|
||||
:relfileprefix: ../../../../
|
||||
* 您需要加入一个集群并在集群中具有pass:a,q[{ks_permission}]权限。有关更多信息,请参阅xref:07-cluster-management/09-cluster-settings/03-cluster-members/_index.adoc[集群成员]和xref:07-cluster-management/09-cluster-settings/04-cluster-roles/_index.adoc[集群角色]。
|
||||
* 您需要加入一个集群并在集群中具有pass:a,q[{ks_permission}]权限。有关更多信息,请参阅xref:07-cluster-management/09-cluster-settings/03-cluster-members/[集群成员]和xref:07-cluster-management/09-cluster-settings/04-cluster-roles/[集群角色]。
|
||||
|
||||
:relfileprefix: ./
|
||||
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ include::../../../../_custom/clusterManagement/routes/routes-desc-createARoute.a
|
|||
== 前提条件
|
||||
|
||||
:relfileprefix: ../../../../
|
||||
* 您需要加入一个集群并在集群中具有pass:a,q[{ks_permission}]权限。有关更多信息,请参阅xref:07-cluster-management/09-cluster-settings/03-cluster-members/_index.adoc[集群成员]和xref:07-cluster-management/09-cluster-settings/04-cluster-roles/_index.adoc[集群角色]。
|
||||
* 您需要加入一个集群并在集群中具有pass:a,q[{ks_permission}]权限。有关更多信息,请参阅xref:07-cluster-management/09-cluster-settings/03-cluster-members/[集群成员]和xref:07-cluster-management/09-cluster-settings/04-cluster-roles/[集群角色]。
|
||||
|
||||
:relfileprefix: ./
|
||||
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ include::../../../../_custom/clusterManagement/routes/routes-desc-accessABackend
|
|||
== 前提条件
|
||||
|
||||
:relfileprefix: ../../../../
|
||||
* 您需要加入一个集群并在集群中具有pass:a,q[{ks_permission}]权限。有关更多信息,请参阅xref:07-cluster-management/09-cluster-settings/03-cluster-members/_index.adoc[集群成员]和xref:07-cluster-management/09-cluster-settings/04-cluster-roles/_index.adoc[集群角色]。
|
||||
* 您需要加入一个集群并在集群中具有pass:a,q[{ks_permission}]权限。有关更多信息,请参阅xref:07-cluster-management/09-cluster-settings/03-cluster-members/[集群成员]和xref:07-cluster-management/09-cluster-settings/04-cluster-roles/[集群角色]。
|
||||
|
||||
:relfileprefix: ./
|
||||
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ include::../../../../_custom/clusterManagement/persistentVolumeClaims/persistent
|
|||
== 前提条件
|
||||
|
||||
:relfileprefix: ../../../../
|
||||
* 您需要加入一个集群并在集群中具有pass:a,q[{ks_permission}]权限。有关更多信息,请参阅xref:07-cluster-management/09-cluster-settings/03-cluster-members/_index.adoc[集群成员]和xref:07-cluster-management/09-cluster-settings/04-cluster-roles/_index.adoc[集群角色]。
|
||||
* 您需要加入一个集群并在集群中具有pass:a,q[{ks_permission}]权限。有关更多信息,请参阅xref:07-cluster-management/09-cluster-settings/03-cluster-members/[集群成员]和xref:07-cluster-management/09-cluster-settings/04-cluster-roles/[集群角色]。
|
||||
|
||||
:relfileprefix: ./
|
||||
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ include::../../../../_custom/clusterManagement/persistentVolumeClaims/persistent
|
|||
== 前提条件
|
||||
|
||||
:relfileprefix: ../../../../
|
||||
* 您需要加入一个集群并在集群中具有pass:a,q[{ks_permission}]权限。有关更多信息,请参阅xref:07-cluster-management/09-cluster-settings/03-cluster-members/_index.adoc[集群成员]和xref:07-cluster-management/09-cluster-settings/04-cluster-roles/_index.adoc[集群角色]。
|
||||
* 您需要加入一个集群并在集群中具有pass:a,q[{ks_permission}]权限。有关更多信息,请参阅xref:07-cluster-management/09-cluster-settings/03-cluster-members/[集群成员]和xref:07-cluster-management/09-cluster-settings/04-cluster-roles/[集群角色]。
|
||||
|
||||
:relfileprefix: ./
|
||||
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ draft: true
|
|||
== 前提条件
|
||||
|
||||
:relfileprefix: ../../../../
|
||||
* 您需要加入一个集群并在集群中具有pass:a,q[{ks_permission}]权限。有关更多信息,请参阅xref:07-cluster-management/09-cluster-settings/03-cluster-members/_index.adoc[集群成员]和xref:07-cluster-management/09-cluster-settings/04-cluster-roles/_index.adoc[集群角色]。
|
||||
* 您需要加入一个集群并在集群中具有pass:a,q[{ks_permission}]权限。有关更多信息,请参阅xref:07-cluster-management/09-cluster-settings/03-cluster-members/[集群成员]和xref:07-cluster-management/09-cluster-settings/04-cluster-roles/[集群角色]。
|
||||
|
||||
:relfileprefix: ./
|
||||
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ include::../../../../_custom/clusterManagement/persistentVolumeClaims/persistent
|
|||
== 前提条件
|
||||
|
||||
:relfileprefix: ../../../../
|
||||
* 您需要加入一个集群并在集群中具有pass:a,q[{ks_permission}]权限。有关更多信息,请参阅xref:07-cluster-management/09-cluster-settings/03-cluster-members/_index.adoc[集群成员]和xref:07-cluster-management/09-cluster-settings/04-cluster-roles/_index.adoc[集群角色]。
|
||||
* 您需要加入一个集群并在集群中具有pass:a,q[{ks_permission}]权限。有关更多信息,请参阅xref:07-cluster-management/09-cluster-settings/03-cluster-members/[集群成员]和xref:07-cluster-management/09-cluster-settings/04-cluster-roles/[集群角色]。
|
||||
|
||||
:relfileprefix: ./
|
||||
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ include::../../../../../_ks_components/admonitions/admonEnd.adoc[]
|
|||
== 前提条件
|
||||
|
||||
:relfileprefix: ../../../../
|
||||
* 您需要加入一个集群并在集群中具有pass:a,q[{ks_permission}]权限。有关更多信息,请参阅xref:07-cluster-management/09-cluster-settings/03-cluster-members/_index.adoc[集群成员]和xref:07-cluster-management/09-cluster-settings/04-cluster-roles/_index.adoc[集群角色]。
|
||||
* 您需要加入一个集群并在集群中具有pass:a,q[{ks_permission}]权限。有关更多信息,请参阅xref:07-cluster-management/09-cluster-settings/03-cluster-members/[集群成员]和xref:07-cluster-management/09-cluster-settings/04-cluster-roles/[集群角色]。
|
||||
|
||||
:relfileprefix: ./
|
||||
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ weight: 01
|
|||
== 前提条件
|
||||
|
||||
:relfileprefix: ../../../../
|
||||
* 您需要加入一个集群并在集群中具有pass:a,q[{ks_permission}]权限。有关更多信息,请参阅xref:07-cluster-management/09-cluster-settings/03-cluster-members/_index.adoc[集群成员]和xref:07-cluster-management/09-cluster-settings/04-cluster-roles/_index.adoc[集群角色]。
|
||||
* 您需要加入一个集群并在集群中具有pass:a,q[{ks_permission}]权限。有关更多信息,请参阅xref:07-cluster-management/09-cluster-settings/03-cluster-members/[集群成员]和xref:07-cluster-management/09-cluster-settings/04-cluster-roles/[集群角色]。
|
||||
|
||||
:relfileprefix: ./
|
||||
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ include::../../../../../_ks_components/admonitions/admonEnd.adoc[]
|
|||
== 前提条件
|
||||
|
||||
:relfileprefix: ../../../../
|
||||
* 您需要加入一个集群并在集群中具有pass:a,q[{ks_permission}]权限。有关更多信息,请参阅xref:07-cluster-management/09-cluster-settings/03-cluster-members/_index.adoc[集群成员]和xref:07-cluster-management/09-cluster-settings/04-cluster-roles/_index.adoc[集群角色]。
|
||||
* 您需要加入一个集群并在集群中具有pass:a,q[{ks_permission}]权限。有关更多信息,请参阅xref:07-cluster-management/09-cluster-settings/03-cluster-members/[集群成员]和xref:07-cluster-management/09-cluster-settings/04-cluster-roles/[集群角色]。
|
||||
|
||||
:relfileprefix: ./
|
||||
|
||||
|
|
|
|||
|
|
@ -14,7 +14,8 @@ weight: 02
|
|||
* 您可以将一个集群授权给多个企业空间,从而允许企业空间中的资源运行在该集群上。
|
||||
|
||||
ifeval::["{file_output_type}" == "html"]
|
||||
* 您也可以将多个集群授权给同一个企业空间,从而在企业空间中创建联邦项目。有关联邦项目的更多信息,请参阅link:../../../11-use-extensions/04-kubefed[联邦项目]。
|
||||
* 您也可以将多个集群授权给同一个企业空间,从而在企业空间中创建联邦项目。
|
||||
// 有关联邦项目的更多信息,请参阅link:../../../11-use-extensions/04-kubefed[联邦项目]。
|
||||
endif::[]
|
||||
|
||||
ifeval::["{file_output_type}" == "pdf"]
|
||||
|
|
|
|||
|
|
@ -22,7 +22,8 @@ weight: 01
|
|||
|说明
|
||||
|
||||
|
|
||||
若要使用代理连接,{ks_product_both}平台需要安装并启用 **KubeSphere 多集群代理连接**扩展组件。有关更多信息,请参阅link:../../../../11-use-extensions/19-tower/02-add-a-member-cluster-using-proxy-connection/[通过代理连接添加成员集群]。
|
||||
若要使用代理连接,{ks_product_both}平台需要安装并启用 **KubeSphere 多集群代理连接**扩展组件。
|
||||
// 有关更多信息,请参阅link:../../../../11-use-extensions/19-tower/02-add-a-member-cluster-using-proxy-connection/[通过代理连接添加成员集群]。
|
||||
|===
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ weight: 02
|
|||
. 点击**企业空间管理**。
|
||||
+
|
||||
--
|
||||
* 企业空间列表显示当前{ks_product}平台的所有企业空间。
|
||||
* 企业空间列表显示当前 KubeSphere 平台的所有企业空间。
|
||||
|
||||
* 在企业空间列表中,点击企业空间的名称可进入企业空间,查看和管理企业空间中的资源。
|
||||
--
|
||||
|
|
|
|||
|
|
@ -21,7 +21,8 @@ include::../../../../_custom/projectManagement/projectManagement-prer-requiredPe
|
|||
|
||||
:relfileprefix: ./
|
||||
|
||||
* {ks_product_right}平台需要安装并启用 **KubeSphere 网关**扩展组件,然后启用集群网关或项目网关。有关更多信息,请参阅 link:../../../../11-use-extensions/12-gateway[KubeSphere 网关]。
|
||||
* {ks_product_right}平台需要安装并启用 **KubeSphere 网关**扩展组件,然后启用集群网关或项目网关。
|
||||
// 有关更多信息,请参阅 link:../../../../11-use-extensions/12-gateway[KubeSphere 网关]。
|
||||
|
||||
include::../../../../_custom/clusterManagement/routes/routes-prer-accessABackendServiceOfARoute.adoc[]
|
||||
|
||||
|
|
|
|||
|
|
@ -1,45 +0,0 @@
|
|||
---
|
||||
title: "概述"
|
||||
linkTitle: "概述"
|
||||
keywords: "Kubernetes, KubeSphere, DevOps, 概述"
|
||||
description: "介绍 KubeSphere DevOps 的基本原理。"
|
||||
weight: 01
|
||||
---
|
||||
|
||||
DevOps 提供一系列持续集成 (CI) 和持续交付 (CD) 工具,可以使 IT 和软件开发团队之间的流程实现自动化。在 CI/CD 工作流中,每次集成都通过自动化构建来验证,包括编码、发布和测试,从而帮助开发者提前发现集成错误,团队也可以快速、安全、可靠地将内部软件交付到生产环境。
|
||||
|
||||
不过,传统的 Jenkins Controller-Agent 架构(即多个 Agent 为一个 Controller 工作)有以下不足。
|
||||
|
||||
* 如果 Controller 宕机,整个 CI/CD 流水线会崩溃。
|
||||
* 资源分配不均衡,一些 Agent 的流水线任务 (Job) 出现排队等待,而其他 Agent 处于空闲状态。
|
||||
* 不同的 Agent 可能配置环境不同,并需要使用不同的编码语言。这种差异会给管理和维护带来不便。
|
||||
|
||||
DevOps 组件支持源代码管理工具,例如 GitHub、Git 和 Bitbucket,支持通过图形编辑面板 (Jenkinsfile out of SCM) 构建 CI/CD 流水线,或者从代码仓库 (Jenkinsfile in SCM) 创建基于 Jenkinsfile 的流水线。
|
||||
|
||||
== 功能
|
||||
|
||||
DevOps 组件提供以下功能:
|
||||
|
||||
* 独立的 DevOps 项目,提供访问可控的 CI/CD 流水线。
|
||||
* 开箱即用的 DevOps 功能,无需复杂的 Jenkins 配置。
|
||||
// * 支持 S2I(Source-to-Image),快速交付镜像。
|
||||
* link:../03-how-to-use/02-pipelines/02-create-a-pipeline-using-jenkinsfile/[基于 Jenkinsfile 的流水线],提供一致的用户体验,支持多个代码仓库。
|
||||
* link:../03-how-to-use/02-pipelines/01-create-a-pipeline-using-graphical-editing-panel/[图形编辑面板],用于创建流水线,学习成本低。
|
||||
* 强大的工具集成机制,例如 link:../04-how-to-integrate/01-sonarqube/[SonarQube],用于代码质量检查。
|
||||
* 基于 ArgoCD 的持续交付能力,自动化部署到多集群环境。
|
||||
|
||||
== DevOps 流水线工作流
|
||||
|
||||
DevOps CI/CD 流水线基于底层 Kubernetes Jenkins Agent 运行。这些 Jenkins Agent 可以动态扩缩,即根据任务状态进行动态供应或释放。Jenkins Controller 和 Agent 以 Pod 的形式运行在{ks_product_both}节点上。Controller 运行在其中一个节点上,其配置数据存储在一个持久卷声明中。Agent 运行在各个节点上,但可能不会一直处于运行状态,而是根据需求动态创建并自动删除。
|
||||
|
||||
当 Jenkins Controller 收到构建请求,会根据标签动态创建运行在 Pod 中的 Jenkins Agent 并注册到 Controller 上。当 Agent 运行完任务后,将会被释放,相关的 Pod 也会被删除。
|
||||
|
||||
== 动态供应 Jenkins Agent
|
||||
|
||||
动态供应 Jenkins Agent 有以下优势:
|
||||
|
||||
**资源分配合理**:动态分配已创建的 Agent 至空闲节点,避免因单个节点资源利用率高而导致任务排队等待。
|
||||
|
||||
**高可扩缩性**:当集群因资源不足而导致任务长时间排队等待时,支持向集群新增节点。
|
||||
|
||||
**高可用性**:当 Jenkins Controller 故障时,DevOps 会自动创建一个新的 Jenkins Controller 容器,并将持久卷挂载至新创建的容器,保证数据不会丢失,从而实现集群高可用。
|
||||
|
|
@ -1,55 +0,0 @@
|
|||
---
|
||||
title: "创建 DevOps 项目"
|
||||
linkTitle: "创建 DevOps 项目"
|
||||
keywords: "Kubernetes, KubeSphere, 企业空间, DevOps 项目, 创建 DevOps 项目"
|
||||
description: "介绍如何创建 DevOps 项目。"
|
||||
weight: 01
|
||||
---
|
||||
|
||||
:ks_permission: **DevOps 项目创建**
|
||||
:ks_navigation: **DevOps 项目**
|
||||
|
||||
|
||||
本节介绍如何创建 DevOps 项目。
|
||||
|
||||
|
||||
== 前提条件
|
||||
|
||||
:relfileprefix: ../../../../
|
||||
* {empty}
|
||||
include::../../../../_custom/workspaceManagement/workspaceManagement-prer-requiredPermission_v4.adoc[]
|
||||
|
||||
:relfileprefix: ./
|
||||
|
||||
* {ks_product_right}平台需要安装并启用 **DevOps** 扩展组件。
|
||||
|
||||
|
||||
== 操作步骤
|
||||
|
||||
include::../../../../_custom/workspaceManagement/workspaceManagement-oper-openWorkspacePage.adoc[]
|
||||
|
||||
+
|
||||
|
||||
include::../../../../../_ks_components/oper-navigate.adoc[]
|
||||
|
||||
. 在 **DevOps 项目**页面,点击**创建**。
|
||||
|
||||
. 在**创建 DevOps 项目**对话框,设置 DevOps 项目的参数,然后点击**确定**。
|
||||
+
|
||||
--
|
||||
[%header,cols="1a,4a"]
|
||||
|===
|
||||
|参数 |描述
|
||||
|
||||
|名称
|
||||
|DevOps 项目的名称。名称只能包含小写字母、数字和连字符(-),必须以小写字母开头并以小写字母或数字结尾,最长 63 个字符。
|
||||
|
||||
include::../../../../_custom/workspaceManagement/devopsProjects/devopsProject-para-aliasAndDescription.adoc[]
|
||||
|
||||
|集群设置
|
||||
|可供 DevOps 项目使用的集群。DevOps 项目中的资源运行在此处选择的集群中。
|
||||
|===
|
||||
|
||||
DevOps 项目创建完成后,您可以邀请用户加入 DevOps 项目并在 DevOps 项目中部署业务。
|
||||
|
||||
--
|
||||
|
|
@ -1,75 +0,0 @@
|
|||
---
|
||||
title: "查看 DevOps 项目列表"
|
||||
linkTitle: "查看 DevOps 项目列表"
|
||||
keywords: "Kubernetes, KubeSphere, 企业空间, DevOps 项目, 查看 DevOps 项目列表"
|
||||
description: "介绍如何查看 DevOps 项目列表。"
|
||||
weight: 02
|
||||
---
|
||||
|
||||
|
||||
:ks_permission: **DevOps 项目查看**
|
||||
:ks_navigation: **DevOps 项目**
|
||||
|
||||
|
||||
本节介绍如何查看 DevOps 项目列表。
|
||||
|
||||
|
||||
== 前提条件
|
||||
|
||||
|
||||
:relfileprefix: ../../../../
|
||||
|
||||
* {empty}
|
||||
include::../../../../_custom/workspaceManagement/workspaceManagement-prer-requiredPermission_v4.adoc[]
|
||||
|
||||
:relfileprefix: ./
|
||||
|
||||
* {ks_product_right}平台需要安装并启用 **DevOps** 扩展组件。
|
||||
|
||||
|
||||
== 操作步骤
|
||||
|
||||
include::../../../../_custom/workspaceManagement/workspaceManagement-oper-openWorkspacePage.adoc[]
|
||||
|
||||
+
|
||||
|
||||
include::../../../../../_ks_components/oper-navigate.adoc[]
|
||||
+
|
||||
====
|
||||
* DevOps 项目列表提供以下信息:
|
||||
+
|
||||
--
|
||||
[%header,cols="1a,4a"]
|
||||
|===
|
||||
|参数 |描述
|
||||
|
||||
|名称
|
||||
|DevOps 项目的名称。
|
||||
|
||||
|状态
|
||||
|DevOps 项目当前的状态。
|
||||
|
||||
* **成功**:DevOps 项目已创建成功并且可用。
|
||||
|
||||
* **等待中**:DevOps 项目正在创建中。
|
||||
|
||||
* **删除中**:DevOps 项目正在删除中。
|
||||
|
||||
|创建者
|
||||
|创建 DevOps 项目的用户。
|
||||
|
||||
|创建时间
|
||||
|DevOps 项目的创建时间。
|
||||
|===
|
||||
--
|
||||
|
||||
* 在列表上方点击搜索框并输入关键字,可搜索名称包含特定关键字的 DevOps 项目。
|
||||
|
||||
include::../../../../../_ks_components/oper-refreshListData.adoc[]
|
||||
|
||||
include::../../../../../_ks_components/oper-customizeColumns.adoc[]
|
||||
|
||||
* 在列表中点击一个 DevOps 项目的名称可打开 DevOps 项目管理页面。您可以在 DevOps 项目管理页面查看和管理 DevOps 项目中的资源。
|
||||
|
||||
|
||||
====
|
||||
|
|
@ -1,52 +0,0 @@
|
|||
---
|
||||
title: "编辑 DevOps 项目信息"
|
||||
linkTitle: "编辑 DevOps 项目信息"
|
||||
keywords: "Kuberentes, KubeSphere, 企业空间管理, DevOps 项目, 编辑 DevOps 项目信息"
|
||||
description: "介绍如何编辑 DevOps 项目信息。"
|
||||
weight: 03
|
||||
---
|
||||
|
||||
:ks_permission: **DevOps 项目管理**
|
||||
:ks_navigation: **DevOps 项目**
|
||||
|
||||
|
||||
本节介绍如何编辑项目信息。
|
||||
|
||||
您可以编辑项目的别名和描述。{ks_product_right}不支持编辑已创建 DevOps 项目的名称。
|
||||
|
||||
|
||||
== 前提条件
|
||||
|
||||
:relfileprefix: ../../../../
|
||||
|
||||
* {empty}
|
||||
include::../../../../_custom/workspaceManagement/workspaceManagement-prer-requiredPermission_v4.adoc[]
|
||||
|
||||
:relfileprefix: ./
|
||||
|
||||
|
||||
* {ks_product_right}平台需要安装并启用 **DevOps** 扩展组件。
|
||||
|
||||
|
||||
== 操作步骤
|
||||
|
||||
include::../../../../_custom/workspaceManagement/workspaceManagement-oper-openWorkspacePage.adoc[]
|
||||
|
||||
+
|
||||
|
||||
include::../../../../../_ks_components/oper-navigate.adoc[]
|
||||
|
||||
+
|
||||
|
||||
. 在需要操作的 DevOps 项目右侧点击image:/images/ks-qkcp/zh/icons/more.svg[more,18,18],然后在下拉列表中选择**编辑信息**。
|
||||
|
||||
. 在**编辑信息**对话框,设置 DevOps 项目的别名和描述,然后点击**确定**。
|
||||
+
|
||||
--
|
||||
[%header,cols="1a,4a"]
|
||||
|===
|
||||
|参数 |描述
|
||||
|
||||
include::../../../../_custom/workspaceManagement/devopsProjects/devopsProject-para-aliasAndDescription.adoc[]
|
||||
|===
|
||||
--
|
||||
|
|
@ -1,64 +0,0 @@
|
|||
---
|
||||
title: "删除 DevOps 项目"
|
||||
linkTitle: "删除 DevOps 项目"
|
||||
keywords: "Kuberentes, KubeSphere, 企业空间管理, DevOps 项目, 删除 DevOps 项目"
|
||||
description: "介绍如何编辑删除 DevOps 项目。"
|
||||
weight: 04
|
||||
---
|
||||
|
||||
:ks_permission: **DevOps 项目管理**
|
||||
:ks_navigation: **DevOps 项目**
|
||||
|
||||
本节介绍如何删除 DevOps 项目。
|
||||
|
||||
// Note
|
||||
include::../../../../../_ks_components/admonitions/note.adoc[]
|
||||
|
||||
DevOps 项目删除后不能恢复,同时 DevOps 项目中的所有的资源也将被删除,请谨慎执行此操作。
|
||||
|
||||
include::../../../../../_ks_components/admonitions/admonEnd.adoc[]
|
||||
|
||||
|
||||
== 前提条件
|
||||
|
||||
:relfileprefix: ../../../../
|
||||
* {empty}
|
||||
include::../../../../_custom/workspaceManagement/workspaceManagement-prer-requiredPermission_v4.adoc[]
|
||||
|
||||
:relfileprefix: ./
|
||||
|
||||
* {ks_product_right}平台需要安装并启用 **DevOps** 扩展组件。
|
||||
|
||||
|
||||
== 删除单个项目
|
||||
|
||||
include::../../../../_custom/workspaceManagement/workspaceManagement-oper-openWorkspacePage.adoc[]
|
||||
|
||||
+
|
||||
|
||||
include::../../../../../_ks_components/oper-navigate.adoc[]
|
||||
|
||||
+
|
||||
|
||||
. 在需要删除的 DevOps 项目右侧点击image:/images/ks-qkcp/zh/icons/more.svg[more,18,18],然后在下拉列表中选择**删除**。
|
||||
|
||||
. 在**删除 DevOps 项目**对话框,输入 DevOps 项目的名称,然后点击**确定**。
|
||||
|
||||
|
||||
== 批量删除项目
|
||||
|
||||
include::../../../../_custom/workspaceManagement/workspaceManagement-oper-openWorkspacePage.adoc[]
|
||||
|
||||
+
|
||||
|
||||
include::../../../../../_ks_components/oper-navigate.adoc[]
|
||||
|
||||
+
|
||||
|
||||
. 选择需要删除的 DevOps 项目左侧的复选框,然后在 DevOps 项目列表上方点击**删除**。
|
||||
|
||||
. 在**批量删除 DevOps 项目**对话框,输入 DevOps 项目的名称,然后点击**确定**。
|
||||
+
|
||||
--
|
||||
include::../../../../_custom/note-separateNamesByComma.adoc[]
|
||||
--
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
---
|
||||
title: "管理 DevOps 项目"
|
||||
linkTitle: "管理 DevOps 项目"
|
||||
keywords: "Kubernetes, KubeSphere, 企业空间, DevOps 项目"
|
||||
description: "介绍如何查看 DevOps 项目信息以及管理 DevOps 项目。"
|
||||
layout: "second"
|
||||
weight: 02
|
||||
---
|
||||
|
||||
|
||||
|
||||
本节介绍如何管理 DevOps 项目。
|
||||
|
||||
DevOps 项目为用户提供了持续集成和持续部署(CI/CD)功能。您可以在 DevOps 项目中将{ks_product_both}与第三方代码仓库对接,然后通过流水线或持续部署使源代码变化自动更新到目标环境中。
|
||||
|
|
@ -1,74 +0,0 @@
|
|||
---
|
||||
title: "创建和管理 DevOps 项目"
|
||||
linkTitle: "创建和管理 DevOps 项目"
|
||||
keywords: "Kubernetes, KubeSphere, DevOps 项目, DevOps 项目管理"
|
||||
description: "演示如何创建和管理 DevOps 项目。"
|
||||
weight: 01
|
||||
---
|
||||
|
||||
本节演示如何创建和管理 DevOps 项目。
|
||||
|
||||
== 前提条件
|
||||
|
||||
ifeval::["{file_output_type}" == "html"]
|
||||
* 已创建一个企业空间和一个用户 (**project-admin**),需要邀请该用户至该企业空间并赋予 **workspace-self-provisioner** 角色。有关更多信息,请参阅link:../../../../02-quickstart/03-control-user-permissions[控制用户权限]。
|
||||
endif::[]
|
||||
|
||||
ifeval::["{file_output_type}" == "pdf"]
|
||||
* 已创建一个企业空间和一个用户 (**project-admin**),需要邀请该用户至该企业空间并赋予 **workspace-self-provisioner** 角色。有关更多信息,请参阅《{ks_product_right}快速入门》的“控制用户权限”章节。
|
||||
endif::[]
|
||||
|
||||
* {ks_product_right}平台需要安装并启用 **DevOps** 扩展组件。
|
||||
|
||||
|
||||
|
||||
== 创建 DevOps 项目
|
||||
|
||||
. 以 **project-admin** 用户登录{ks_product_both} Web 控制台,进入一个企业空间。
|
||||
|
||||
. 点击 **DevOps 项目**,然后点击**创建**。
|
||||
|
||||
. 输入 DevOps 项目的基本信息,然后点击**确定**。
|
||||
+
|
||||
--
|
||||
* **名称**:DevOps 项目的简明名称,便于用户识别,例如 **demo-devops**。
|
||||
|
||||
* **别名**:DevOps 项目的别名。
|
||||
|
||||
* **描述信息**:DevOps 项目的简要介绍。
|
||||
|
||||
* **集群设置**:在当前版本中,DevOps 项目无法同时跨多个集群运行。如果有多个集群,则必须选择一个集群来运行 DevOps 项目。
|
||||
--
|
||||
|
||||
. DevOps 项目创建后,会显示在 DevOps 项目页面的列表中。
|
||||
|
||||
|
||||
== 查看 DevOps 项目
|
||||
|
||||
点击刚刚创建的 DevOps 项目,转到其详情页面。
|
||||
|
||||
在 DevOps 项目中,用户可以创建 CI/CD 流水线、凭证,以及管理项目成员和角色。根据权限不同,用户在 DevOps 项目中可以执行的操作也不同。
|
||||
|
||||
* 流水线
|
||||
+
|
||||
--
|
||||
流水线是一系列插件的集合,支持持续地集成、测试和构建代码。流水线将持续集成 (CI) 和持续交付 (CD) 进行结合,提供精简的工作流,使您的代码可以自动交付给任何目标。
|
||||
--
|
||||
|
||||
* 凭证
|
||||
+
|
||||
--
|
||||
具有相应权限的 DevOps 项目用户可以为流水线配置凭证,以便与外部环境进行交互。用户在 DevOps 项目中添加凭证后,DevOps 项目就可以使用这些凭证与第三方应用程序(例如 GitHub、GitLab 和 Docker Hub)进行交互。有关更多信息,请参阅link:../../03-how-to-use/05-devops-settings/01-credential-management/[凭证管理]。
|
||||
--
|
||||
|
||||
* 成员和角色
|
||||
+
|
||||
--
|
||||
与项目相似,DevOps 项目也需要为用户授予角色,以便用户在 DevOps 项目拥有不同的权限。项目管理员(例如 **project-admin**)负责邀请用户并授予他们不同的角色。有关更多信息,请参阅link:../../03-how-to-use/05-devops-settings/02-role-and-member-management/[角色和成员管理]。
|
||||
--
|
||||
|
||||
== 编辑或删除 DevOps 项目
|
||||
|
||||
. 点击 **DevOps 项目设置**下的**基本信息**,查看当前 DevOps 项目的概述,如项目角色和项目成员的数量、项目名称和项目创建者等。
|
||||
|
||||
. 点击右侧的**管理**按钮,编辑此 DevOps 项目的基本信息或删除 DevOps 项目。
|
||||
|
|
@ -1,501 +0,0 @@
|
|||
---
|
||||
title: "使用图形编辑面板创建流水线"
|
||||
linkTitle: "使用图形编辑面板创建流水线"
|
||||
keywords: "Kubernetes, KubeSphere, DevOps 项目, 使用 DevOps, 流水线, 使用图形编辑面板创建流水线"
|
||||
description: "介绍如何管理 DevOps 项目,以及如何在 DevOps 项目中管理流水线和 DevOps 项目设置。"
|
||||
weight: 01
|
||||
---
|
||||
|
||||
|
||||
DevOps 中的图形编辑面板包含用于 Jenkins link:https://www.jenkins.io/zh/doc/book/pipeline/#阶段[阶段 (Stage)] 和link:https://www.jenkins.io/zh/doc/book/pipeline/#步骤[步骤 (Step)] 的所有必要操作。DevOps 支持直接在交互式面板上定义这些阶段和步骤,无需创建任何 Jenkinsfile。
|
||||
|
||||
本文档演示如何在{ks_product_both}中使用图形编辑面板创建流水线。在整个过程中,DevOps 将根据编辑面板上的设置自动生成 Jenkinsfile,您无需手动创建 Jenkinsfile。待流水线成功运行,它会将镜像推送至 Docker Hub。
|
||||
|
||||
|
||||
== 前提条件
|
||||
|
||||
* {ks_product_right}平台需要安装并启用 **DevOps** 扩展组件。
|
||||
|
||||
* 已有一个 link:http://www.dockerhub.com/[Docker Hub] 账户。
|
||||
|
||||
* 已创建一个企业空间、一个 DevOps 项目和一个用户 (例如 **project-regular**),并已邀请该用户至 DevOps 项目且授予 **operator** 角色。请参阅link:../../05-devops-settings/02-role-and-member-management[角色和成员管理]。
|
||||
|
||||
* 已设置 CI 专用节点用于运行流水线。请参阅link:../../05-devops-settings/04-set-ci-node/[为缓存依赖项设置 CI 节点]。
|
||||
|
||||
* 配置电子邮件服务器用于接收流水线通知(可选)。
|
||||
请参阅link:../09-jenkins-email/[为流水线设置电子邮件服务器]。
|
||||
|
||||
* 配置 SonarQube 将代码分析纳入流水线中(可选)。
|
||||
请参阅link:../../../04-how-to-integrate/01-sonarqube/[将 SonarQube 集成到流水线]。
|
||||
|
||||
|
||||
== 流水线概述
|
||||
|
||||
本示例流水线包括以下阶段。
|
||||
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
* **阶段 1:Checkout SCM**:从 GitHub 仓库拉取源代码。
|
||||
|
||||
* **阶段 2:单元测试**:待该测试通过后才会进行下一阶段。
|
||||
|
||||
* **阶段 3:代码分析**:配置 SonarQube 用于静态代码分析。
|
||||
|
||||
* **阶段 4:构建并推送**:构建镜像并附上标签 **snapshot-$BUILD_NUMBER** 推送至 Docker Hub,其中 **$BUILD_NUMBER** 是流水线运行记录列表中的记录的运行 ID。
|
||||
|
||||
* **阶段 5:制品**:生成一个制品(JAR 文件包)并保存。
|
||||
|
||||
// * **阶段 6:部署至开发环境**:在开发环境中创建一个部署和一个服务。该阶段需要进行审核,部署成功运行后,会发送电子邮件通知。
|
||||
|===
|
||||
|
||||
|
||||
== 步骤 1:创建凭证
|
||||
|
||||
. 以 **project-regular** 用户登录{ks_product_both} Web 控制台。
|
||||
|
||||
. 点击**企业空间管理**并进入您的 DevOps 项目,在 **DevOps 项目设置**下的**凭证**页面创建以下凭证。有关如何创建凭证的更多信息,请参阅link:../../05-devops-settings/01-credential-management/[凭证管理]。
|
||||
+
|
||||
--
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
如果您的账户或密码中包含任何特殊字符,例如 **@** 和 **$**,可能会因为无法识别而在流水线运行时导致错误。在这种情况下,请先在一些第三方网站(例如 link:https://www.urlencoder.org/[urlencoder])上对账户或密码进行编码,然后将输出结果复制粘贴作为您的凭证信息。
|
||||
|
||||
|===
|
||||
|
||||
[%header,cols="1a,2a,2a"]
|
||||
|===
|
||||
|凭证 ID |类型 |用途
|
||||
|
||||
|dockerhub-id
|
||||
|用户名和密码
|
||||
|Docker Hub
|
||||
|
||||
// |demo-kubeconfig
|
||||
// |kubeconfig
|
||||
// |Kubernetes
|
||||
|===
|
||||
--
|
||||
|
||||
. 再为 SonarQube 创建一个凭证 (**sonar-token**),用于上述的阶段 3(代码分析)。凭证类型选择**访问令牌**,在**令牌**字段输入 SonarQube 令牌,请参阅link:../../../04-how-to-integrate/01-sonarqube/[为新项目创建 SonarQube 令牌 (Token)]。点击**确定**完成操作。
|
||||
|
||||
. 创建完成后,您将在凭证页面看到已创建的凭证。
|
||||
|
||||
// == 步骤 2:创建项目
|
||||
|
||||
// 本示例中,流水线会将 link:https://github.com/kubesphere/devops-maven-sample/tree/sonarqube[sample] 应用部署至一个项目。因此,需要创建一个项目(例如 **kubesphere-sample-dev**)。待流水线成功运行,将在该项目中自动创建该应用的部署和服务。
|
||||
|
||||
// . 使用 **project-admin** 账户创建项目,该用户也将是 CI/CD 流水线的审核员。
|
||||
|
||||
// . 邀请 **project-regular** 账户至该项目,并授予 **operator** 角色。
|
||||
|
||||
|
||||
== 步骤 2:创建流水线
|
||||
|
||||
. 以 **project-regular** 用户登录{ks_product_both} Web 控制台。
|
||||
|
||||
. 点击**企业空间管理**并进入您的 DevOps 项目,在**流水线**页面点击**创建**。
|
||||
|
||||
. 在弹出的对话框中,将其命名为 **graphical-pipeline**,点击**下一步**。
|
||||
|
||||
. 在**高级设置**页面,点击**添加**,添加以下字符串参数。这些参数将用于流水线的 Docker 命令。添加完成后,点击**创建**。
|
||||
+
|
||||
--
|
||||
[%header,cols="1a,2a,2a,2a"]
|
||||
|===
|
||||
|参数类型 |名称 |值 |参数说明
|
||||
|
||||
|字符串
|
||||
|REGISTRY
|
||||
|`docker.io`
|
||||
|镜像仓库地址。本示例使用 **docker.io**。
|
||||
|
||||
|字符串
|
||||
|DOCKERHUB_NAMESPACE
|
||||
|您的 Docker ID
|
||||
|您的 Docker Hub 账户或该账户下的组织名称。
|
||||
|
||||
|字符串
|
||||
|APP_NAME
|
||||
|`devops-sample`
|
||||
|应用名称。本示例使用 **devops-sample**。
|
||||
|===
|
||||
|
||||
// note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
有关其他字段,请直接使用默认值或者参阅link:../05-pipeline-settings/[流水线设置]以自定义配置。
|
||||
|===
|
||||
--
|
||||
|
||||
== 步骤 3:编辑流水线
|
||||
|
||||
. 点击流水线名称进入其详情页面。
|
||||
|
||||
. 要使用图形编辑面板,点击**流水线配置**页签下的**编辑流水线**。在弹出的对话框中:
|
||||
|
||||
* 点击**自定义流水线**,按照以下步骤设置各个阶段。
|
||||
|
||||
* 或使用 DevOps 提供的link:../03-use-pipeline-templates/[内置流水线模板]。
|
||||
|
||||
. 点击**下一步**,然后点击**创建**。
|
||||
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
流水线详情页面的**同步状态**,显示了{ks_product_both}和 Jenkins 之间的同步结果。也可点击**编辑 Jenkinsfile** 手动为流水线创建一个 Jenkinsfile。
|
||||
|
||||
|===
|
||||
|
||||
=== 阶段 1:拉取源代码 (Checkout SCM)
|
||||
|
||||
图形编辑面板包括两个区域:左侧的**画布**和右侧的**内容**。它会根据您对不同阶段和步骤的配置自动生成一个 Jenkinsfile,为开发者提供更加用户友好的操作体验。
|
||||
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
流水线包括link:https://www.jenkins.io/zh/doc/book/pipeline/syntax/#声明式流水线[声明式流水线]和link:https://www.jenkins.io/zh/doc/book/pipeline/syntax/#脚本化流水线[脚本化流水线]。目前,支持使用该面板创建声明式流水线。有关流水线语法的更多信息,请参阅 link:https://www.jenkins.io/zh/doc/book/pipeline/syntax/[Jenkins 文档]。
|
||||
|
||||
|===
|
||||
|
||||
. 在图形编辑面板上,从**类型**下拉列表中选择 **node**,从 **Label** 下拉列表中选择 **maven**。
|
||||
+
|
||||
--
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
**Agent** 用于定义执行环境。**Agent** 指令指定 Jenkins 执行流水线的位置和方式。有关更多信息,请参阅link:../10-choose-jenkins-agent/[选择 Jenkins Agent]。
|
||||
|
||||
|===
|
||||
|
||||
image:/images/ks-qkcp/zh/devops-user-guide/use-devops/create-a-pipeline-using-graphical-editing-panel/graphical_panel.png[,100%]
|
||||
--
|
||||
|
||||
. 点击左侧的加号图标来添加阶段。点击**添加步骤**上方的文本框,然后在右侧的**名称**字段中为该阶段设置名称(例如 **Checkout SCM**)。
|
||||
+
|
||||
image:/images/ks-qkcp/zh/devops-user-guide/use-devops/create-a-pipeline-using-graphical-editing-panel/edit_panel.png[,100%]
|
||||
|
||||
. 点击**添加步骤**。在列表中选择 **Git Clone**,以从 GitHub 拉取示例代码。在弹出的对话框中,填写必需的字段。点击**确定**完成操作。
|
||||
+
|
||||
--
|
||||
* **URL**:输入 GitHub 仓库地址 link:https://github.com/kubesphere/devops-maven-sample.git[]。注意,这里是示例地址,请使用自己的仓库地址。
|
||||
|
||||
* **凭证 ID**:本示例中无需输入凭证 ID。
|
||||
|
||||
* **分支**:输入 **v4.1.0-sonarqube**。如果不需要代码分析阶段,则使用默认的 v4.1.0 分支。
|
||||
|
||||
image:/images/ks-qkcp/zh/devops-user-guide/use-devops/create-a-pipeline-using-graphical-editing-panel/enter_repo_url.png[,100%]
|
||||
--
|
||||
|
||||
=== 阶段 2:单元测试
|
||||
|
||||
. 点击阶段 1 右侧的加号图标添加新的阶段,以在容器中执行单元测试。将它命名为 **Unit Test**。
|
||||
+
|
||||
image:/images/ks-qkcp/zh/devops-user-guide/use-devops/create-a-pipeline-using-graphical-editing-panel/unit_test.png[,100%]
|
||||
|
||||
. 点击**添加步骤**,在列表中选择**指定容器**。将其命名为 **maven** 然后点击**确定**。
|
||||
+
|
||||
image:/images/ks-qkcp/zh/devops-user-guide/use-devops/create-a-pipeline-using-graphical-editing-panel/container_maven.png[,100%]
|
||||
|
||||
. 点击 **maven** 容器步骤下的**添加嵌套步骤**,在列表中选择 **shell** 并输入以下命令。点击**确定**保存操作。
|
||||
+
|
||||
--
|
||||
[,bash]
|
||||
----
|
||||
mvn clean test
|
||||
----
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
在图形编辑面板上,可指定在给定阶段指令中执行的一系列link:https://www.jenkins.io/zh/doc/book/pipeline/syntax/#steps[步骤]。
|
||||
|===
|
||||
--
|
||||
|
||||
=== 阶段 3:代码分析(可选)
|
||||
|
||||
本阶段使用 SonarQube 用于测试代码。如果不需要代码分析,可以跳过该阶段。
|
||||
|
||||
. 点击 **Unit Test** 阶段右侧的加号图标添加一个阶段,以在容器中进行 SonarQube 代码分析。将它命名为 **Code Analysis**。
|
||||
+
|
||||
image:/images/ks-qkcp/zh/devops-user-guide/use-devops/create-a-pipeline-using-graphical-editing-panel/code_analysis_stage.png[,100%]
|
||||
|
||||
. 在 **Code Analysis** 中,点击**添加步骤**,选择**指定容器**。将其命名为 **maven** 然后点击**确定**。
|
||||
+
|
||||
image:/images/ks-qkcp/zh/devops-user-guide/use-devops/create-a-pipeline-using-graphical-editing-panel/maven_container.png[,100%]
|
||||
|
||||
. 点击 **maven** 容器步骤下的**添加嵌套步骤**,以添加一个嵌套步骤。点击**添加凭证**并从**凭证 ID** 列表中选择 SonarQube 令牌 (**sonar-token**)。在**文本变量**中输入 **SONAR_TOKEN**,然后点击**确定**。
|
||||
+
|
||||
image:/images/ks-qkcp/zh/devops-user-guide/use-devops/create-a-pipeline-using-graphical-editing-panel/sonarqube_credentials.png[,100%]
|
||||
|
||||
. 在**添加凭证**步骤下,点击**添加嵌套步骤**为其添加一个嵌套步骤。
|
||||
+
|
||||
image:/images/ks-qkcp/zh/devops-user-guide/use-devops/create-a-pipeline-using-graphical-editing-panel/nested_step.png[,100%]
|
||||
|
||||
. 点击 **Sonarqube 配置**,在弹出的对话框中保持默认名称 **sonar** 不变,点击**确定**保存操作。
|
||||
+
|
||||
image:/images/ks-qkcp/zh/devops-user-guide/use-devops/create-a-pipeline-using-graphical-editing-panel/sonar_env.png[,100%]
|
||||
|
||||
. 在 **Sonarqube 配置**步骤下,点击**添加嵌套步骤**为其添加一个嵌套步骤。
|
||||
+
|
||||
image:/images/ks-qkcp/zh/devops-user-guide/use-devops/create-a-pipeline-using-graphical-editing-panel/add_nested_step.png[,100%]
|
||||
|
||||
. 点击 **shell** 并在命令行中输入以下命令,用于 sonarqube 认证和分析,点击**确定**完成操作。
|
||||
+
|
||||
--
|
||||
[,bash]
|
||||
----
|
||||
mvn sonar:sonar -Dsonar.login=$SONAR_TOKEN
|
||||
----
|
||||
--
|
||||
|
||||
. 点击**指定容器**步骤下的**添加嵌套步骤**(第三个),选择**超时**。在时间中输入 **1** 并将单位选择为**小时**,点击**确定**完成操作。
|
||||
+
|
||||
image:/images/ks-qkcp/zh/devops-user-guide/use-devops/create-a-pipeline-using-graphical-editing-panel/add_nested_step_2.png[,100%]
|
||||
+
|
||||
image:/images/ks-qkcp/zh/devops-user-guide/use-devops/create-a-pipeline-using-graphical-editing-panel/timeout_set.png[,100%]
|
||||
|
||||
. 点击**超时**步骤下的**添加嵌套步骤**,选择**代码质量检查 (SonarQube)**。在弹出的对话框中选择**检查通过后开始后续任务**。点击**确定**保存操作。
|
||||
+
|
||||
image:/images/ks-qkcp/zh/devops-user-guide/use-devops/create-a-pipeline-using-graphical-editing-panel/waitforqualitygate_set.png[,100%]
|
||||
+
|
||||
image:/images/ks-qkcp/zh/devops-user-guide/use-devops/create-a-pipeline-using-graphical-editing-panel/sonar_ready.png[,100%]
|
||||
|
||||
|
||||
=== 阶段 4:构建并推送镜像
|
||||
|
||||
. 点击前一个阶段右侧的加号图标添加一个新的阶段,以构建并推送镜像至 Docker Hub。将其命名为 **Build and Push**。
|
||||
|
||||
. 在 **Build and Push** 中,点击**添加步骤**,选择**指定容器**,将其命名为 **maven**,然后点击**确定**。
|
||||
|
||||
. 点击 **maven** 容器步骤下的**添加嵌套步骤**,在列表中选择 **shell** 并在弹出窗口中输入以下命令,点击**确定**完成操作。
|
||||
+
|
||||
--
|
||||
[,bash]
|
||||
----
|
||||
mvn -Dmaven.test.skip=true clean package
|
||||
----
|
||||
--
|
||||
|
||||
. 再次点击**添加嵌套步骤**,选择 **shell**。在命令行中输入以下命令,以根据 link:https://github.com/kubesphere/devops-maven-sample/blob/sonarqube/Dockerfile-online[Dockerfile] 构建 Docker 镜像。点击**确定**确认操作。
|
||||
+
|
||||
--
|
||||
[,bash]
|
||||
----
|
||||
docker build -f Dockerfile-online -t $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:SNAPSHOT-$BUILD_NUMBER .
|
||||
----
|
||||
image:/images/ks-qkcp/zh/devops-user-guide/use-devops/create-a-pipeline-using-graphical-editing-panel/shell_command.png[,100%]
|
||||
--
|
||||
|
||||
. 再次点击**添加嵌套步骤**,选择**添加凭证**。在弹出的对话框中填写以下字段,点击**确定**确认操作。
|
||||
+
|
||||
--
|
||||
* **凭证名称**:选择您创建的 Docker Hub 凭证,例如 **dockerhub-id**。
|
||||
* **用户名变量**:输入 **DOCKER_USERNAME**。
|
||||
* **密码变量**:输入 **DOCKER_PASSWORD**。
|
||||
|
||||
image:/images/ks-qkcp/zh/devops-user-guide/use-devops/create-a-pipeline-using-graphical-editing-panel/docker_credential.png[,100%]
|
||||
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
出于安全原因,账户信息在脚本中显示为变量。
|
||||
|
||||
|===
|
||||
--
|
||||
|
||||
. 在**添加凭证**步骤中点击**添加嵌套步骤**(第一个)。选择 **shell** 并在弹出窗口中输入以下命令,用于登录 Docker Hub。点击**确定**确认操作。
|
||||
+
|
||||
--
|
||||
[,bash]
|
||||
----
|
||||
echo "$DOCKER_PASSWORD"|docker login $REGISTRY -u "$DOCKER_USERNAME" --password-stdin
|
||||
----
|
||||
|
||||
image:/images/ks-qkcp/zh/devops-user-guide/use-devops/create-a-pipeline-using-graphical-editing-panel/login_docker_command.png[,100%]
|
||||
--
|
||||
|
||||
. 在**添加凭证**步骤中点击**添加嵌套步骤**。选择 **shell** 并输入以下命令,将 SNAPSHOT 镜像推送至 Docker Hub。点击**确定**完成操作。
|
||||
+
|
||||
--
|
||||
[,bash]
|
||||
----
|
||||
docker push $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:SNAPSHOT-$BUILD_NUMBER
|
||||
----
|
||||
image:/images/ks-qkcp/zh/devops-user-guide/use-devops/create-a-pipeline-using-graphical-editing-panel/push_to_docker.png[,100%]
|
||||
--
|
||||
|
||||
=== 阶段 5:生成制品
|
||||
|
||||
. 点击 **Build and Push** 阶段右侧的加号图标添加一个新的阶段,以保存制品,将其命名为 **Artifacts**。本示例使用 JAR 文件包。
|
||||
+
|
||||
image:/images/ks-qkcp/zh/devops-user-guide/use-devops/create-a-pipeline-using-graphical-editing-panel/add_artifact_stage.png[,100%]
|
||||
|
||||
. 选中 **Artifacts** 阶段,点击**添加步骤**,选择**保存制品**。在弹出的对话框中输入 **target/*.jar**,将其设置为 Jenkins 中制品的保存路径。点击**确定**完成操作。
|
||||
+
|
||||
image:/images/ks-qkcp/zh/devops-user-guide/use-devops/create-a-pipeline-using-graphical-editing-panel/artifact_info.png[,100%]
|
||||
|
||||
// === 阶段 6:部署至开发环境
|
||||
|
||||
// . 点击 **Artifacts** 阶段右侧的加号图标添加最后一个阶段,将其命名为 **Deploy to Dev**。该阶段用于将资源部署至您的开发环境(即 **kubesphere-sample-dev** 项目)。
|
||||
// +
|
||||
// image:/images/ks-qkcp/zh/devops-user-guide/use-devops/create-a-pipeline-using-graphical-editing-panel/deploy_to_dev.png[,100%]
|
||||
|
||||
// . 点击 **Deploy to Dev** 阶段下的**添加步骤**,在列表中选择**审核**,然后在**消息**字段中填入 **@project-admin**,即 **project-admin** 账户在流水线运行到该阶段时会进行审核。点击**确定**保存操作。
|
||||
// +
|
||||
// --
|
||||
// image:/images/ks-qkcp/zh/devops-user-guide/use-devops/create-a-pipeline-using-graphical-editing-panel/input_message.png[,100%]
|
||||
// //note
|
||||
// [.admon.note,cols="a"]
|
||||
// |===
|
||||
// |说明
|
||||
|
||||
// |
|
||||
// 在{ks_product_both}中,能够运行流水线的账户也能够继续或终止该流水线。
|
||||
|
||||
// 此外,流水线创建者、拥有该项目管理员角色的用户或者您指定的账户也有权限继续或终止流水线。
|
||||
|
||||
// |===
|
||||
// --
|
||||
|
||||
// . 再次点击 **Deploy to Dev** 阶段下的**添加步骤**。在列表中选择**指定容器**,将其命名为 **maven**,然后点击**确定**。
|
||||
|
||||
// . 点击 **maven** 容器步骤下的**添加嵌套步骤**。在列表中选择**添加凭证**,在弹出的对话框中填写以下字段,然后点击**确定**。
|
||||
// +
|
||||
// --
|
||||
// * 凭证名称:选择您创建的 kubeconfig 凭证,例如 **demo-kubeconfig**。
|
||||
|
||||
// * kubeconfig 变量:输入 **KUBECONFIG_CONTENT**。
|
||||
// --
|
||||
|
||||
// . 点击**添加凭证**步骤下的**添加嵌套步骤**。在列表中选择 **shell**,在弹出的对话框中输入以下命令,然后点击**确定**。
|
||||
// +
|
||||
// --
|
||||
// [,bash]
|
||||
// ----
|
||||
// mkdir ~/.kube
|
||||
// echo "$KUBECONFIG_CONTENT" > ~/.kube/config
|
||||
// envsubst < deploy/no-branch-dev/devops-sample-svc.yaml | kubectl apply -f -
|
||||
// envsubst < deploy/no-branch-dev/devops-sample.yaml | kubectl apply -f -
|
||||
// ----
|
||||
// --
|
||||
|
||||
// . 如果想在流水线运行成功时接收电子邮件通知,请点击**添加步骤**,选择**邮件**,以添加电子邮件信息。注意,配置电子邮件服务器是可选操作,如果跳过该步骤,依然可以运行流水线。
|
||||
// +
|
||||
// --
|
||||
// //note
|
||||
// [.admon.note,cols="a"]
|
||||
// |===
|
||||
// |说明
|
||||
|
||||
// |
|
||||
// 有关配置电子邮件服务器的更多信息,请参阅link:../09-jenkins-email/[为{ks_product_both}流水线设置电子邮件服务器]。
|
||||
|
||||
// |===
|
||||
// --
|
||||
|
||||
// . 待完成上述步骤,在右下角点击**确定**,结束编辑流水线。该流水线将展示完整的工作流,并且清晰列示每个阶段。
|
||||
// +
|
||||
// --
|
||||
// 在用图形编辑面板定义流水线时,DevOps 会自动创建相应的 Jenkinsfile。点击**编辑 Jenkinsfile** 查看该 Jenkinsfile。
|
||||
|
||||
// //note
|
||||
// [.admon.note,cols="a"]
|
||||
// |===
|
||||
// |说明
|
||||
|
||||
// |
|
||||
// 在**流水线**列表页面,点击该流水线右侧的image:/images/ks-qkcp/zh/icons/more.svg[more,18,18],选择**复制**来创建该流水线的副本。
|
||||
// |===
|
||||
// --
|
||||
|
||||
== 步骤 4:运行流水线
|
||||
|
||||
. 使用图形编辑面板创建的流水线需要手动运行。点击**运行**,弹出的对话框会显示link:#_步骤_2创建流水线[步骤 2:创建流水线]中已定义的三个字符串参数。点击**确定**来运行流水线。
|
||||
// . 使用图形编辑面板创建的流水线需要手动运行。点击**运行**,弹出的对话框会显示link:#_步骤_3创建流水线[步骤 3:创建流水线]中已定义的三个字符串参数。点击**确定**来运行流水线。
|
||||
+
|
||||
image:/images/ks-qkcp/zh/devops-user-guide/use-devops/create-a-pipeline-using-graphical-editing-panel/run_pipeline.png[,100%]
|
||||
|
||||
. 点击**运行记录**页签,查看流水线的运行状态,点击记录查看详情。
|
||||
|
||||
. 流水线如果运行到 **Push with Tag** 阶段,会在此阶段暂停,需要具有审核权限的用户点击**继续**。
|
||||
// . 稍等片刻,流水线如果运行成功,会在 **Deploy to Dev** 阶段停止。**project-admin** 作为流水线的审核员,需要进行审批,然后资源才会部署至开发环境。
|
||||
|
||||
. 以 **project-admin** 用户登录{ks_product_both} Web 控制台,点击**企业空间管理**并进入您的 DevOps 项目,点击 **graphical-pipeline** 流水线。在**运行记录**页签下,点击要审核的记录,点击**继续**以批准流水线。
|
||||
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
如果要同时运行多个不包含多分支的流水线,在**流水线**列表页面,全部选中这些流水线,然后点击**运行**来批量运行它们。
|
||||
|===
|
||||
|
||||
== 步骤 5:查看流水线详情
|
||||
|
||||
. 以 **project-regular** 用户登录 {ks_product_both} Web 控制台,点击**企业空间管理**并进入您的 DevOps 项目,点击 **graphical-pipeline** 流水线。
|
||||
|
||||
. 在**运行记录**页签下,点击**状态**下的记录,进入**运行记录**详情页。如果任务状态为**成功**,流水线所有阶段都会显示**成功**。
|
||||
|
||||
. 在**运行日志**页签下,点击每个阶段查看其详细日志。点击**查看完整日志**,根据日志排除故障和问题,也可以将日志下载到本地进行进一步分析。
|
||||
|
||||
== 步骤 6:下载制品
|
||||
|
||||
在**运行记录**详情页,点击**制品**页签,然后点击制品右侧的图标下载该制品。
|
||||
|
||||
== 步骤 7:查看代码分析结果
|
||||
|
||||
在**代码检查**页面,查看由 SonarQube 提供的本示例流水线的代码分析结果。如果没有事先配置 SonarQube,则该部分不可用。有关更多信息,请参阅link:../../../04-how-to-integrate/01-sonarqube/[将 SonarQube 集成到流水线]。
|
||||
|
||||
== 步骤 8:验证 Kubernetes 资源
|
||||
|
||||
如果流水线的每个阶段都成功运行,则会自动构建一个 Docker 镜像并推送至您的 Docker Hub 仓库。
|
||||
// 如果流水线的每个阶段都成功运行,则会自动构建一个 Docker 镜像并推送至您的 Docker Hub 仓库。最终,流水线会在您事先设置的项目中自动创建一个部署和一个服务。
|
||||
|
||||
// . 进入项目(本示例中即 **kubesphere-sample-dev**),点击**应用负载**下的**工作负载**,查看流水线自动创建的部署。
|
||||
|
||||
// . 点击**应用负载**下的**服务**,查看示例服务通过 NodePort 暴露的端口号。使用 **<Node IP>:<NodePort>** 访问该服务。
|
||||
// +
|
||||
// --
|
||||
// //note
|
||||
// [.admon.note,cols="a"]
|
||||
// |===
|
||||
// |说明
|
||||
|
||||
// |
|
||||
// 访问服务前,您可能需要配置端口转发规则并在安全组中放行该端口。
|
||||
|
||||
// |===
|
||||
// --
|
||||
|
||||
. 流水线成功运行后,会推送一个镜像至 Docker Hub。登录 Docker Hub 查看结果。
|
||||
+
|
||||
image:/images/ks-qkcp/zh/devops-user-guide/use-devops/create-a-pipeline-using-graphical-editing-panel/dockerhub_image.png[,100%]
|
||||
|
||||
. 该应用名称为 **APP_NAME** 的值,本示例中即 **devops-sample**。Tag 为 **SNAPSHOT-$BUILD_NUMBER** 的值,**$BUILD_NUMBER** 即**运行记录**页签下记录的**运行 ID**。
|
||||
|
||||
// . 如果您在link:#_阶段_6部署至开发环境[阶段 6:部署至开发环境]配置了电子邮件服务器并添加了电子邮件信息,运行完成后还会收到邮件通知。
|
||||
|
|
@ -1,456 +0,0 @@
|
|||
---
|
||||
title: "使用 Jenkinsfile 创建流水线"
|
||||
linkTitle: "使用 Jenkinsfile 创建流水线"
|
||||
keywords: "Kubernetes, KubeSphere, DevOps 项目, 使用 DevOps, 流水线, 使用 Jenkinsfile 创建流水线"
|
||||
description: "介绍如何管理 DevOps 项目,以及如何在 DevOps 项目中管理流水线和 DevOps 项目设置。"
|
||||
weight: 02
|
||||
---
|
||||
|
||||
Jenkinsfile 是一个文本文件,包含 Jenkins 流水线的定义,并被检入源代码控制仓库。Jenkinsfile 将整个工作流存储为代码,因此它是代码审查和流水线迭代过程的基础。有关更多信息,请参阅 link:https://www.jenkins.io/zh/doc/book/pipeline/jenkinsfile/[Jenkins 官方文档]。
|
||||
|
||||
本文档演示如何基于 GitHub 仓库中的 Jenkinsfile 创建流水线。
|
||||
// 本文档演示如何基于 GitHub 仓库中的 Jenkinsfile 创建流水线,并使用该流水线将示例应用程序分别部署到可从外部访问的开发环境和生产环境。
|
||||
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
DevOps 支持创建两种类型的流水线:一种是本文档中介绍的基于 SCM 中 Jenkinsfile 创建的流水线,另一种是link:../01-create-a-pipeline-using-graphical-editing-panel/[通过图形编辑面板创建的流水线]。
|
||||
|
||||
Jenkinsfile in SCM 需要源代码管理 (SCM) 中有内置 Jenkinsfile,换句话说,Jenkinsfile 必须是 SCM 的一部分。DevOps 系统会根据代码仓库的现有 Jenkinsfile 自动构建 CI/CD 流水线。通过定义工作流,例如 **stage** 和 **step** 可以满足特定的构建、测试和部署要求。
|
||||
|
||||
|===
|
||||
|
||||
|
||||
== 前提条件
|
||||
|
||||
* {ks_product_right}平台需要安装并启用 **DevOps** 扩展组件。
|
||||
|
||||
* 已有一个 link:https://hub.docker.com/[Docker Hub] 账户和一个 link:https://github.com/[GitHub] 账户。
|
||||
|
||||
* 已创建一个企业空间、一个 DevOps 项目和一个用户 (例如 **project-regular**),并已邀请该用户至 DevOps 项目且授予 **operator** 角色。请参阅link:../../05-devops-settings/02-role-and-member-management[角色和成员管理]。
|
||||
|
||||
* 已设置 CI 专用节点用于运行流水线。请参阅link:../../05-devops-settings/04-set-ci-node/[为依赖项缓存设置 CI 节点]。
|
||||
|
||||
* 已安装和配置 SonarQube(可选)。请参阅link:../../../04-how-to-integrate/01-sonarqube/[将 SonarQube 集成到流水线]。如果跳过这一部分,则没有下面的 **SonarQube 分析**阶段。
|
||||
|
||||
== 流水线概述
|
||||
|
||||
本示例流水线包括以下阶段。
|
||||
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
* **阶段 1:Checkout SCM**:从 GitHub 仓库检出源代码。
|
||||
|
||||
* **阶段 2:单元测试**:待该测试通过后才会进行下一阶段。
|
||||
|
||||
* **阶段 3:SonarQube 分析**:SonarQube 代码质量分析。
|
||||
|
||||
* **阶段 4:构建并推送快照镜像**:根据**策略设置**中选定的分支来构建镜像,并将 **SNAPSHOT-$BRANCH_NAME-$BUILD_NUMBER** 标签推送至 Docker Hub,其中 **$BUILD_NUMBER** 是流水线运行记录列表中的记录的运行 ID。
|
||||
|
||||
* **阶段 5:推送最新镜像**:将 v4.1.0-sonarqube 分支标记为 **latest**,并推送至 Docker Hub。
|
||||
|
||||
// * **阶段 6:部署至开发环境**:将 v4.1.0-sonarqube 分支部署到开发环境,此阶段需要审核。
|
||||
|
||||
* **阶段 6:带标签推送**:生成标签并发布到 GitHub,该标签会推送到 Docker Hub。
|
||||
|
||||
// * **阶段 8:部署至生产环境**:将已发布的标签部署到生产环境。
|
||||
|
||||
|===
|
||||
|
||||
== 步骤 1:创建凭证
|
||||
|
||||
. 以 **project-regular** 用户登录{ks_product_both} Web 控制台。
|
||||
|
||||
. 点击**企业空间管理**并进入您的 DevOps 项目,在 **DevOps 项目设置**下的**凭证**页面创建以下凭证。有关如何创建凭证的更多信息,请参阅link:../../05-devops-settings/01-credential-management/[凭证管理]。
|
||||
+
|
||||
--
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
如果您的账户或密码中包含任何特殊字符,例如 **@** 和 **$**,可能会因为无法识别而在流水线运行时导致错误。在这种情况下,请先在一些第三方网站(例如 link:https://www.urlencoder.org/[urlencoder])上对账户或密码进行编码,然后将输出结果复制粘贴作为您的凭证信息。
|
||||
|===
|
||||
|
||||
[%header,cols="1a,2a,2a"]
|
||||
|===
|
||||
|凭证 ID |类型 |用途
|
||||
|
||||
|dockerhub-id
|
||||
|用户名和密码
|
||||
|Docker Hub
|
||||
|
||||
|github-id
|
||||
|用户名和密码
|
||||
|GitHub
|
||||
|
||||
// |demo-kubeconfig
|
||||
// |kubeconfig
|
||||
// |Kubernetes
|
||||
|===
|
||||
--
|
||||
|
||||
. 再为 SonarQube 创建一个凭证 (**sonar-token**),用于上述的阶段 3(代码分析)。凭证类型选择**访问令牌**,在**令牌**字段输入 SonarQube 令牌,请参阅link:../../../04-how-to-integrate/01-sonarqube/[为新项目创建 SonarQube 令牌 (Token)]。点击**确定**完成操作。
|
||||
|
||||
. 还需要创建具有如下图所示权限的 GitHub 个人访问令牌 (PAT),然后在 DevOps 项目中,使用生成的令牌创建用于 GitHub 认证的账户凭证(例如,**github-token**)。
|
||||
+
|
||||
--
|
||||
image:/images/ks-qkcp/zh/devops-user-guide/use-devops/create-a-pipeline-using-a-jenkinsfile/github-token-scope.png[,100%]
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
如需创建 GitHub 个人访问令牌,请转到您 GitHub 账户的 **Settings**,点击 **Developer settings**,选择 **Personal access tokens**,然后点击 **Generate new token**。
|
||||
|
||||
|===
|
||||
--
|
||||
|
||||
. 您将在凭证页面看到已创建的凭证。
|
||||
|
||||
|
||||
== 步骤 2:在 GitHub 仓库中修改 Jenkinsfile
|
||||
|
||||
. 登录 GitHub 并 Fork GitHub 仓库 link:https://github.com/kubesphere/devops-maven-sample[devops-maven-sample] 的所有分支至您的 GitHub 个人账户。
|
||||
|
||||
. 在您自己的 GitHub 仓库 **devops-maven-sample** 中,切换到 v4.1.0-sonarqube 分支,点击根目录中的文件 **Jenkinsfile-online**。
|
||||
|
||||
. 点击右侧的编辑图标,编辑环境变量。
|
||||
+
|
||||
--
|
||||
[%header,cols="1a,2a,2a"]
|
||||
|===
|
||||
|条目 |值 |描述信息
|
||||
|
||||
|DOCKER_CREDENTIAL_ID
|
||||
|dockerhub-id
|
||||
|您在{ks_product_both}中为 Docker Hub 账户设置的**名称**。
|
||||
|
||||
|GITHUB_CREDENTIAL_ID
|
||||
|github-id
|
||||
|您在{ks_product_both}中为 GitHub 账户设置的**名称**,用于将标签推送至您的 GitHub 仓库。
|
||||
|
||||
// |KUBECONFIG_CREDENTIAL_ID
|
||||
// |demo-kubeconfig
|
||||
// |您在{ks_product_both}中为 kubeconfig 设置的**名称**,用于访问运行中的 Kubernetes 集群。
|
||||
|
||||
|REGISTRY
|
||||
|docker.io
|
||||
|默认为 **docker.io**,用作推送镜像的地址。
|
||||
|
||||
|DOCKERHUB_NAMESPACE
|
||||
|your-dockerhub-id
|
||||
|请替换为您的 Docker Hub 账户名,也可以替换为该账户下的 Organization 名称。
|
||||
|
||||
|GITHUB_ACCOUNT
|
||||
|your-github-id
|
||||
|请替换为您的 GitHub 账户名。例如,如果您的 GitHub 地址是 link:https://github.com/kubesphere/[],则您的 GitHub 账户名为 **kubesphere**,也可以替换为该账户下的 Organization 名称。
|
||||
|
||||
|APP_NAME
|
||||
|devops-maven-sample
|
||||
|应用名称。
|
||||
|
||||
|SONAR_CREDENTIAL_ID
|
||||
|sonar-token
|
||||
|您在{ks_product_both}中为 SonarQube 令牌设置的**名称**,用于代码质量检测。
|
||||
|===
|
||||
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
Jenkinsfile 中 **mvn** 命令的参数 **-o** 表示开启离线模式。本教程中已下载相关依赖项,以节省时间并适应某些环境中的网络干扰。离线模式默认开启。
|
||||
|
||||
|===
|
||||
--
|
||||
|
||||
. 编辑环境变量后,点击 **Commit changes**,更新 v4.1.0-sonarqube 分支中的文件。
|
||||
|
||||
|
||||
// == 步骤 3:创建项目
|
||||
|
||||
// 创建两个项目,例如 **kubesphere-sample-dev** 和 **kubesphere-sample-prod**,分别代表开发环境和生产环境。待流水线成功运行,将在这两个项目中自动创建应用程序的相关部署 (Deployment) 和服务 (Service)。
|
||||
|
||||
// //note
|
||||
// [.admon.note,cols="a"]
|
||||
// |===
|
||||
// |说明
|
||||
|
||||
// |
|
||||
// 您需要提前创建 **project-admin** 账户,用作 CI/CD 流水线的审核者。
|
||||
|
||||
// |===
|
||||
|
||||
// . 以 **project-admin** 用户登录{ks_product_left},在创建 DevOps 项目的企业空间中创建以下两个项目。
|
||||
// +
|
||||
// --
|
||||
// [%header,cols="1a,1a"]
|
||||
// |===
|
||||
// |项目名称|别名
|
||||
|
||||
// |kubesphere-sample-dev
|
||||
// |development environment
|
||||
|
||||
// |kubesphere-sample-prod
|
||||
// |production environment
|
||||
// |===
|
||||
// --
|
||||
|
||||
// . 邀请 **project-regular** 账户至这两个项目,并赋予 **operator** 角色。
|
||||
|
||||
== 步骤 3:创建流水线
|
||||
|
||||
. 以 **project-regular** 用户登录{ks_product_both} Web 控制台。
|
||||
|
||||
. 点击**企业空间管理**并进入您的 DevOps 项目,在**流水线**页面点击**创建**。
|
||||
|
||||
. 在弹出的对话框中,将其命名为 **jenkinsfile-in-scm**。
|
||||
|
||||
. 在**流水线类别**下,选择**多分支流水线**。
|
||||
|
||||
. 在**代码仓库**下,选择一个代码仓库,点击**下一步**继续。
|
||||
+
|
||||
--
|
||||
若没有可用的代码仓库,点击下方的**创建代码仓库**。有关更多信息,请参阅link:../../04-import-code-repositories/[导入代码仓库]。
|
||||
--
|
||||
|
||||
.. 在**导入代码仓库**对话框,输入代码仓库名称(自定义),点击选择代码仓库。
|
||||
|
||||
.. 在 **GitHub** 页签,从**凭证**的下拉菜单中选择 **github-token**,然后点击**确定**。
|
||||
|
||||
.. 在 GitHub 列表中,选择您的 GitHub 账户,与该令牌相关的所有仓库将在右侧列出。选择 **devops-maven-sample** 并点击**选择**。
|
||||
|
||||
.. 点击**确定**选择您的代码仓库。
|
||||
|
||||
|
||||
. 在**高级设置**中,勾选**删除旧分支**。本教程中,建议**分支保留天数(天)**和**分支最大数量**使用默认值。
|
||||
+
|
||||
--
|
||||
删除旧分支意味着您将一并丢弃分支记录。分支记录包括控制台输出、已归档制品以及特定分支相关的其他元数据。更少的分支意味着您可以节省 Jenkins 正在使用的磁盘空间。DevOps 提供两个选项来确定何时丢弃旧分支:
|
||||
|
||||
* 分支保留天数(天):超过保留期限的分支将被删除。
|
||||
|
||||
* 分支最大数量:分支数量超过最大数量时,删除最旧的分支。
|
||||
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
**分支保留天数(天)**和**分支最大数量**可以同时应用于分支。只要某个分支满足其中一个字段所设置的条件,则会删除该分支。例如,如果您将保留天数和最大分支数分别指定为 2 和 3,待某个分支的保留天数超过 2 或者分支保留数量超过 3,则会删除该分支。DevOps 默认用 7 和 5 预填充这两个字段。
|
||||
|
||||
|===
|
||||
--
|
||||
|
||||
. 在**策略设置**中,DevOps 默认提供四种策略。本示例不会使用**从 Fork 仓库中发现 PR** 这条策略,因此您可以删除该策略。对于其他策略,无需修改设置,直接使用默认值即可。
|
||||
+
|
||||
--
|
||||
Jenkins 流水线运行时,开发者提交的 Pull Request (PR) 也将被视为一个单独的分支。
|
||||
|
||||
**发现分支**
|
||||
|
||||
* **排除已提交 PR 的分支**:不扫描源分支,例如源仓库的 master 分支。需要合并这些分支。
|
||||
* **只包括已提交 PR 的分支**:仅扫描 PR 分支。
|
||||
* **包括所有分支**:拉取源仓库中的所有分支。
|
||||
|
||||
**从原仓库发现 PR**
|
||||
|
||||
* **拉取 PR 合并后的代码**:PR 合并到目标分支后,基于源代码创建并运行流水线。
|
||||
* **拉取 PR 提交时的代码**:根据 PR 本身的源代码创建并运行流水线。
|
||||
* **分别创建两个流水线**:创建两个流水线,一个流水线使用 PR 与目标分支合并后的源代码版本,另一个使用 PR 本身的源代码版本。
|
||||
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
选择 GitHub 作为代码仓库,才能启用此处的**策略设置**设置。
|
||||
|
||||
|===
|
||||
--
|
||||
|
||||
. 向下滚动到**脚本路径**,将其更改为 **Jenkinsfile-online**,这是示例仓库中位于根目录下的 Jenkinsfile 的文件名。该字段指定代码仓库中的 Jenkinsfile 路径。它表示仓库的根目录。如果文件位置变更,则脚本路径也需要更改。
|
||||
|
||||
. 在**扫描触发器**中,勾选**定时扫描**并设置时间间隔为 **5 分钟**。点击**创建**完成配置。
|
||||
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
设置特定的时间间隔让流水线扫描远程仓库,以便根据您在**策略设置**中设置的策略来检测代码更新或新的 PR。
|
||||
|
||||
|===
|
||||
|
||||
|
||||
== 步骤 4:运行流水线
|
||||
|
||||
. 流水线创建后,会展示在列表中。点击流水线名称查看其详情页。
|
||||
+
|
||||
--
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
* 在**流水线**列表页面,点击该流水线右侧的image:/images/ks-qkcp/zh/icons/more.svg[more,18,18],选择**复制**来创建该流水线的副本。
|
||||
* 如果要同时运行多个不包含多分支的流水线,在**流水线**列表页面,全部选中这些流水线,然后点击**运行**来批量运行它们。
|
||||
* 流水线详情页面的**同步状态**,显示了{ks_product_both}和 Jenkins 之间的同步结果。若同步成功,将显示**成功**以及绿色的对号图标。
|
||||
|
||||
|===
|
||||
--
|
||||
|
||||
. 在**运行记录**页签下,正在扫描多个分支。点击右侧的**运行**,流水线将根据您设置的行为策略来运行。从下拉列表中选择 **v4.1.0-sonarqube** 分支,然后添加标签号,例如 **v0.0.2**。点击**确定**开始运行。
|
||||
+
|
||||
--
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
* 如果您在此页面上未看到任何运行记录,则需要手动刷新浏览器或点击**更多操作**按钮中的**扫描仓库**。
|
||||
* 标签名称用于在 GitHub 和 Docker Hub 中指代新生成的发布版本和镜像。现有标签名称不能再次用于字段 **TAG_NAME**。否则,流水线将无法成功运行。
|
||||
|
||||
|===
|
||||
--
|
||||
|
||||
. 稍等片刻,点击运行记录查看详情。
|
||||
+
|
||||
--
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
运行失败可能由不同因素所引起。本示例中,在上述步骤中编辑分支的环境变量时,仅更改了 v4.1.0-sonarqube 分支的 Jenkinsfile。而 v4.1.0 分支中的这些变量没有修改(使用了错误的 GitHub 和 Docker Hub 账户),从而导致失败。其他原因如网络问题、Jenkinsfile 中的编码不正确等也可能导致运行失败。
|
||||
|
||||
在运行记录详情页的**运行日志**页签下,查看其日志的详细信息,根据日志排除故障和问题。
|
||||
|===
|
||||
--
|
||||
|
||||
. 流水线如果运行到 **Push with Tag** 阶段,会在此阶段暂停,需要具有审核权限的用户点击**继续**。
|
||||
// . 流水线如果运行成功,会在 **deploy to dev** 阶段暂停,需要具有审核权限的用户点击**继续**。
|
||||
+
|
||||
--
|
||||
// 在 Jenkinsfile 中定义了三个阶段 **deploy to dev**、**push with tag** 和 **deploy to production**,每个阶段都需要审核。因此在运行到这些阶段时,流水线会暂停,等待审核。
|
||||
|
||||
在开发或生产环境中,可能需要具有更高权限的人员(例如版本管理员)来审核流水线、镜像以及代码分析结果。他们有权决定流水线是否能进入下一阶段。在 Jenkinsfile 中,支持使用 **input** 来指定审核流水线的用户。如果想指定一个用户(例如 **project-admin**)来审核,可以在 Jenkinsfile 中添加一个字段。如果有多个用户,则需要通过逗号进行分隔,如下所示:
|
||||
|
||||
[,bash]
|
||||
----
|
||||
input(id: 'release-image-with-tag', message: 'release image with tag?', submitter: 'project-admin,project-admin1')
|
||||
----
|
||||
--
|
||||
|
||||
. 以具有流水线审核权限的用户登录{ks_product_both} Web 控制台,点击**企业空间管理**并进入您的 DevOps 项目,点击流水线名称进入详情页。在**运行记录**页签下,点击要审核的记录,点击**继续**以批准流水线。
|
||||
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
在{ks_product_both}中,如果不指定审核员,那么能够运行流水线的账户也能够继续或终止该流水线。此外,流水线创建者、拥有该项目管理员角色的用户或者您指定的账户也有权限继续或终止流水线。
|
||||
|===
|
||||
|
||||
== 步骤 5:检查流水线状态
|
||||
|
||||
. 在运行记录的**流水线**页签下,查看流水线的运行状态。流水线在刚创建时会初始化几分钟。示例流水线有八个阶段,它们已在 link:https://github.com/kubesphere/devops-maven-sample/blob/sonarqube/Jenkinsfile-online[Jenkinsfile-online] 中单独定义。
|
||||
|
||||
. 点击**运行日志**页签查看流水线运行日志。点击每个阶段查看其详细日志。点击**查看完整日志**,根据日志排除故障和问题,也可以将日志下载到本地进行进一步分析。
|
||||
|
||||
== 步骤 6:验证结果
|
||||
|
||||
. 流水线成功运行后,点击**代码检查**通过 SonarQube 查看结果。
|
||||
|
||||
. 按照 Jenkinsfile 中的定义,通过流水线构建的 Docker 镜像也已成功推送到 Docker Hub。在 Docker Hub 中,您会看到带有标签 **v0.0.2** 的镜像,该标签在流水线运行之前已指定。
|
||||
|
||||
. 同时,GitHub 中会生成一个新标签和一个新发布版本。
|
||||
|
||||
// . 示例应用程序将部署到 **kubesphere-sample-dev** 和 **kubesphere-sample-prod**,并创建相应的部署和服务。转到这两个项目,预期结果如下所示:
|
||||
// +
|
||||
// --
|
||||
// [%header,cols="1a,2a,2a,2a,2a"]
|
||||
// |===
|
||||
// |环境 |URL |命名空间 |部署 |服务
|
||||
|
||||
// |开发环境
|
||||
// |http://{$NodeIP}:{$30861}
|
||||
// |kubesphere-sample-dev
|
||||
// |ks-sample-dev
|
||||
// |ks-sample-dev
|
||||
|
||||
// |生产环境
|
||||
// |http://{$NodeIP}:{$30961}
|
||||
// |kubesphere-sample-prod
|
||||
// |ks-sample
|
||||
// |ks-sample
|
||||
// |===
|
||||
|
||||
// //note
|
||||
// [.admon.note,cols="a"]
|
||||
// |===
|
||||
// |说明
|
||||
|
||||
// |
|
||||
// 您可能需要在您的安全组中放行该端口,以便通过 URL 访问应用程序。
|
||||
|
||||
// |===
|
||||
// --
|
||||
|
||||
// == 步骤 7:访问示例服务
|
||||
|
||||
// . 以 **platform-admin** 用户登录{ks_product_both} Web 控制台。
|
||||
|
||||
// . 进入 **kubesphere-sample-dev** 项目,在**应用负载**下的**服务**中点击 **ks-sample-dev**。在详情页获取 Endpoint 用于访问该服务。
|
||||
|
||||
// . 在右下角的**工具箱**中使用 **kubectl** 执行如下命令:
|
||||
// +
|
||||
// [,bash]
|
||||
// ----
|
||||
// curl 10.233.120.230:8080
|
||||
// ----
|
||||
|
||||
|
||||
// . 预期输出:
|
||||
// +
|
||||
// --
|
||||
// [,bash]
|
||||
// ----
|
||||
// Really appreciate your star, that's the power of our life.
|
||||
// ----
|
||||
// //note
|
||||
// [.admon.note,cols="a"]
|
||||
// |===
|
||||
// |说明
|
||||
|
||||
// |
|
||||
// 使用 **curl** 访问 Endpoint,或者访问 {$Virtual IP}:{$Port} 或 {$Node IP}:{$NodePort}。
|
||||
|
||||
// |===
|
||||
// --
|
||||
|
||||
// . 也可以在项目 **kubesphere-sample-prod** 中测试服务,您将看到相同的输出结果。
|
||||
// +
|
||||
// [,bash]
|
||||
// ----
|
||||
// $ curl 10.233.120.236:8080
|
||||
// Really appreciate your star, that's the power of our life.
|
||||
// ----
|
||||
|
|
@ -1,124 +0,0 @@
|
|||
---
|
||||
title: "使用流水线模板创建流水线"
|
||||
linkTitle: "使用流水线模板创建流水线"
|
||||
keywords: "Kubernetes, KubeSphere, DevOps 项目, 使用 DevOps, 流水线"
|
||||
description: "介绍如何管理 DevOps 项目,以及如何在 DevOps 项目中管理流水线和 DevOps 项目设置。"
|
||||
weight: 03
|
||||
---
|
||||
|
||||
本文档演示如何在{ks_product_both}上使用流水线模板创建流水线。
|
||||
|
||||
DevOps 提供图形编辑面板,支持通过交互式操作来定义 Jenkins 流水线的阶段和步骤。内置多个流水线模板,如 Node.js、Maven 以及 Golang,使用户能够快速创建对应模板的流水线。DevOps 还提供 CI 以及 CI & CD 流水线模板,但是这两个模板难以满足定制化需求,建议您采用其它内置模板或直接自定义流水线。
|
||||
|
||||
* CI 流水线模板
|
||||
+
|
||||
--
|
||||
CI 流水线模板包含两个阶段。**clone code** 阶段用于检出代码,**build & push** 阶段用于构建镜像并将镜像推送至 Docker Hub。先为代码仓库和 Docker Hub 仓库创建凭证,然后在相应的步骤中设置仓库的 URL 以及凭证。完成编辑后,流水线即可开始运行。
|
||||
--
|
||||
|
||||
* CI & CD 流水线模板
|
||||
+
|
||||
--
|
||||
CI & CD 流水线模板包含六个阶段。有关每个阶段的更多信息,请参阅link:../02-create-a-pipeline-using-jenkinsfile/[使用 Jenkinsfile 创建流水线]。先为代码仓库、Docker Hub 仓库创建凭证,然后在相应的步骤中设置仓库的 URL 以及凭证。完成编辑后,流水线即可开始运行。
|
||||
// CI & CD 流水线模板包含六个阶段。有关每个阶段的更多信息,请参阅link:../02-create-a-pipeline-using-jenkinsfile/[使用 Jenkinsfile 创建流水线]。先为代码仓库、Docker Hub 仓库和集群的 kubeconfig 创建凭证,然后在相应的步骤中设置仓库的 URL 以及凭证。完成编辑后,流水线即可开始运行。
|
||||
--
|
||||
|
||||
|
||||
== 前提条件
|
||||
|
||||
* {ks_product_right}平台需要安装并启用 **DevOps** 扩展组件。
|
||||
|
||||
* 已创建一个企业空间、一个 DevOps 项目和一个用户 (例如 **project-regular**),并已邀请该用户至 DevOps 项目且授予 **operator** 角色。请参阅link:../../05-devops-settings/02-role-and-member-management[角色和成员管理]。
|
||||
|
||||
|
||||
== 操作步骤
|
||||
|
||||
下面以 Node.js 为例演示如何使用内置流水线模板。使用 Maven 以及 Golang 流水线模板的操作基本相同。
|
||||
|
||||
. 以 **project-regular** 用户登录{ks_product_both} Web 控制台。
|
||||
|
||||
. 点击**企业空间管理**并进入您的 DevOps 项目,在**流水线**页面点击**创建**。
|
||||
|
||||
. 在弹出的对话框中,输入流水线名称,点击**下一步**,然后点击**创建**。
|
||||
|
||||
. 点击已创建的流水线,在**流水线配置**页签下,点击**编辑流水线**。
|
||||
|
||||
. 在**创建流水线**对话框,点击 **Node.js**,然后点击**下一步**。
|
||||
|
||||
. 在**参数设置**页签,按照实际情况设置以下参数,点击**创建**。
|
||||
+
|
||||
--
|
||||
[%header,cols="1a,4a"]
|
||||
|===
|
||||
|参数 |描述
|
||||
|
||||
|GitURL
|
||||
|需要克隆的项目仓库的地址。
|
||||
|
||||
|GitRevision
|
||||
|需要检出的分支。
|
||||
|
||||
|NodeDockerImage
|
||||
|Node.js 的 Docker 镜像版本。
|
||||
|
||||
|InstallScript
|
||||
|安装依赖项的 Shell 脚本。
|
||||
|
||||
|TestScript
|
||||
|项目测试的 Shell 脚本。
|
||||
|
||||
|BuildScript
|
||||
|构建项目的 Sell 脚本。
|
||||
|
||||
|ArtifactsPath
|
||||
|制品文件所在的路径。
|
||||
|===
|
||||
--
|
||||
|
||||
. 在左侧的可视化编辑页面,系统默认已添加一系列步骤,点击**添加步骤**或**添加并行阶段**进行修改。
|
||||
|
||||
. 点击一个步骤,在页面右侧,您可以执行以下操作。编辑完成后,点击**确定**。
|
||||
+
|
||||
--
|
||||
* 修改阶段名称。
|
||||
|
||||
* 删除阶段。
|
||||
|
||||
* 设置代理类型。
|
||||
|
||||
* 添加条件。
|
||||
|
||||
* 编辑或删除某一任务。
|
||||
|
||||
* 添加步骤或嵌套步骤。
|
||||
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
请参阅link:../01-create-a-pipeline-using-graphical-editing-panel/[使用图形编辑面板创建流水线],了解如何在流水线模板中自定义步骤和阶段。
|
||||
|
||||
|===
|
||||
--
|
||||
|
||||
. 在右侧的**代理**区域,选择代理类型,默认值为 **kubernetes**,点击**确定**。
|
||||
+
|
||||
--
|
||||
[%header,cols="1a,4a"]
|
||||
|===
|
||||
|代理类型|说明
|
||||
|
||||
|any
|
||||
|调用默认的 base pod 模板创建 Jenkins agent 运行流水线。
|
||||
|
||||
|node
|
||||
|调用指定类型的 pod 模板创建 Jenkins agent 运行流水线,可配置的 label 标签为 base、java、nodejs、maven、go 等。
|
||||
|
||||
|kubernetes
|
||||
|通过 yaml 文件定义的标准 kubernetes pod 模板运行 agent,执行流水线任务。
|
||||
|===
|
||||
--
|
||||
|
||||
. 查看已创建的流水线模板详情,点击**运行**即可运行该流水线。
|
||||
|
|
@ -1,226 +0,0 @@
|
|||
---
|
||||
title: "使用 GitLab 创建多分支流水线"
|
||||
linkTitle: "使用 GitLab 创建多分支流水线"
|
||||
keywords: "Kubernetes, KubeSphere, DevOps 项目, 使用 DevOps, 流水线"
|
||||
description: "介绍如何管理 DevOps 项目,以及如何在 DevOps 项目中管理流水线和 DevOps 项目设置。"
|
||||
weight: 04
|
||||
---
|
||||
|
||||
|
||||
link:https://gitlab.com/users/sign_in[GitLab] 是一款基于 web 的 Git 仓库管理工具,支持公开和私有仓库,并提供了全面的 DevOps 功能,包括源代码管理、代码审查、问题跟踪、持续集成等。通过 GitLab,团队能够在一个平台上高效协作,完成从代码编写到部署的整个软件开发过程。
|
||||
|
||||
{ks_product_right}支持在 DevOps 项目中使用 GitLab 创建多分支流水线。本文档演示如何使用 GitLab 创建多分支流水线。
|
||||
|
||||
|
||||
== 前提条件
|
||||
|
||||
* {ks_product_right}平台需要安装并启用 **DevOps** 扩展组件。
|
||||
|
||||
* 已创建一个企业空间、一个 DevOps 项目和一个用户 (例如 **project-regular**),并已邀请该用户至 DevOps 项目且授予 **operator** 角色。请参阅link:../../05-devops-settings/02-role-and-member-management[角色和成员管理]。
|
||||
|
||||
* 已有一个 link:https://gitlab.com/users/sign_in[GitLab] 账户以及一个 link:https://hub.docker.com/[Docker Hub] 账户。
|
||||
|
||||
== 步骤 1:创建凭证
|
||||
|
||||
. 以 **project-regular** 用户登录{ks_product_both} Web 控制台。
|
||||
|
||||
. 点击**企业空间管理**并进入您的 DevOps 项目,在 **DevOps 项目设置**下的**凭证**中创建以下凭证。有关如何创建凭证的更多信息,请参阅link:../../05-devops-settings/01-credential-management/[凭证管理]。
|
||||
+
|
||||
--
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
如果您的账户或密码中包含任何特殊字符,例如 **@** 和 **$**,则可能会因为无法识别而在流水线运行时导致错误。在此情况下,您需要先在第三方网站(例如 link:https://www.urlencoder.org/[urlencoder])上对账户或密码进行编码,然后将输出结果复制粘贴作为您的凭证信息。
|
||||
|
||||
|===
|
||||
|
||||
[%header,cols="1a,2a,2a"]
|
||||
|===
|
||||
|凭证 ID|类型|用途
|
||||
|
||||
|dockerhub-id
|
||||
|用户名和密码
|
||||
|Docker Hub
|
||||
|
||||
|gitlab-id
|
||||
|用户名和密码
|
||||
|GitLab
|
||||
|
||||
// |demo-kubeconfig
|
||||
// |kubeconfig
|
||||
// |Kubernetes
|
||||
|===
|
||||
--
|
||||
|
||||
. 创建完成后,您将在凭证页面看到已创建的凭证。
|
||||
|
||||
|
||||
== 步骤 2:在 GitLab 仓库中编辑 Jenkinsfile
|
||||
|
||||
. 登录 GitLab 并创建一个公开项目。点击**新建项目 > 导入项目**,选择**从 URL 导入仓库**,输入 link:https://github.com/kubesphere/devops-maven-sample[devops-maven-sample] 的 URL,可见性级别选择**公开**,然后点击**新建项目**。
|
||||
|
||||
. 在刚刚创建的项目中,从 v4.1.0 分支中创建一个新分支,命名为 **gitlab-demo**。
|
||||
|
||||
. 在 **gitlab-demo** 分支中,点击根目录中的 **Jenkinsfile-online** 文件。
|
||||
|
||||
. 点击**编辑**,分别将 **GITHUB_CREDENTIAL_ID**、**GITHUB_ACCOUNT** 以及 **@github.com** 更改为 **GITLAB_CREDENTIAL_ID**、**GITLAB_ACCOUNT** 以及 **@gitlab.com**,然后编辑下表所列条目。还要将 **push latest** 中 **branch** 的值更改为 **gitlab-demo**。
|
||||
// . 点击**编辑**,分别将 **GITHUB_CREDENTIAL_ID**、**GITHUB_ACCOUNT** 以及 **@github.com** 更改为 **GITLAB_CREDENTIAL_ID**、**GITLAB_ACCOUNT** 以及 **@gitlab.com**,然后编辑下表所列条目。还要将 **push latest** 和 **deploy to dev** 中 **branch** 的值更改为 **gitlab-demo**。
|
||||
+
|
||||
--
|
||||
[%header,cols="1a,2a,2a"]
|
||||
|===
|
||||
|条目|值|描述信息
|
||||
|
||||
|GITLAB_CREDENTIAL_ID
|
||||
|gitlab-id
|
||||
|您在{ks_product_both}中为自己的 GitLab 账户设置的**名称**,用于将标签推送至您的 GitLab 仓库。
|
||||
|
||||
|DOCKERHUB_NAMESPACE
|
||||
|your-dockerhub-id
|
||||
|请替换为您的 Docker Hub 账户名,也可以替换为该账户下的 Organization 名称。
|
||||
|
||||
|GITLAB_ACCOUNT
|
||||
|your-gitlab-id
|
||||
|请替换为您的 GitLab 账户名,也可以使用该账户的用户组名称。
|
||||
|===
|
||||
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
有关 Jenkinsfile 中环境变量的更多信息,请参阅link:../02-create-a-pipeline-using-jenkinsfile/[使用 Jenkinsfile 创建流水线]。
|
||||
|
||||
|===
|
||||
--
|
||||
|
||||
. 点击 **Commit changes** 更新该文件。
|
||||
|
||||
|
||||
// == 步骤 3:创建项目
|
||||
|
||||
// 创建两个项目,例如 **kubesphere-sample-dev** 和 **kubesphere-sample-prod**,分别代表开发环境和生产环境。待流水线成功运行,将在这两个项目中自动创建应用程序的相关部署 (Deployment) 和服务 (Service)。
|
||||
|
||||
// 有关更多信息,请参阅link:../02-create-a-pipeline-using-jenkinsfile/#_步骤_2在_github_仓库中修改_jenkinsfile[使用 Jenkinsfile 创建流水线]。
|
||||
|
||||
== 步骤 3:创建流水线
|
||||
|
||||
. 以 **project-regular** 用户登录{ks_product_both} Web 控制台。
|
||||
|
||||
. 点击**企业空间管理**并进入您的 DevOps 项目,在**流水线**页面点击**创建**。
|
||||
|
||||
. 在弹出的对话框中,将其命名为 **gitlab-multi-branch**。
|
||||
|
||||
. 在**流水线类别**下,选择**多分支流水线**。
|
||||
|
||||
. 在**代码仓库**下,选择一个代码仓库,点击**下一步**继续。
|
||||
+
|
||||
--
|
||||
若没有可用的代码仓库,点击下方的**创建代码仓库**。有关更多信息,请参阅link:../../04-import-code-repositories/[导入代码仓库]。
|
||||
--
|
||||
|
||||
.. 在**导入代码仓库**对话框,输入代码仓库名称(自定义),点击选择代码仓库。
|
||||
|
||||
.. 在 **GitLab** 页签下的 **GitLab 服务器地址**中选择默认选项 link:https://gitlab.com[],在**项目组/所有者**中输入该 GitLab 项目所属组的名称,然后从**代码仓库**的下拉菜单中选择 **devops-maven-sample** 仓库。点击右下角的image:/images/ks-qkcp/zh/icons/check-dark.svg[check,18,18],然后点击**下一步**。
|
||||
+
|
||||
--
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
如需使用 GitLab 私有仓库,请参考以下步骤:
|
||||
|
||||
* 在 GitLab 上前往**用户设置 > 访问令牌**,创建拥有 API 和 read_repository 权限的个人访问令牌。
|
||||
|
||||
* link:../../../04-how-to-integrate/01-sonarqube/[登录 Jenkins 面板],前往**系统管理 > Manage Credentials**,使用您的 GitLab 令牌创建 Jenkins 凭证,用于访问 GitLab。然后前往**系统管理 > 系统配置**,在 **GitLab 服务**中添加该凭证。
|
||||
|
||||
* 在 DevOps 项目中,选择 **DevOps 项目设置 > 凭证**,使用您的 GitLab 令牌创建一个凭证。创建流水线时,在 **GitLab** 页签的**凭证**中指定该凭证,以便流水线能够从您的 GitLab 私有仓库中拉取代码。
|
||||
|
||||
|===
|
||||
--
|
||||
|
||||
. 在**高级设置**页签中,将**脚本路径**更改为 **Jenkinsfile-online** 然后点击**创建**。
|
||||
+
|
||||
--
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
该字段指定代码仓库中的 Jenkinsfile 路径,它表示该仓库的根目录。如果文件位置变更,则脚本路径也需要更改。
|
||||
|
||||
|===
|
||||
--
|
||||
|
||||
|
||||
== 步骤 4:运行流水线
|
||||
|
||||
. 流水线创建后,会展示在列表中。点击流水线名称查看其详情页。
|
||||
. 点击右侧的**运行**。在弹出的对话框中,从下拉菜单中选择 **gitlab-demo** 并添加一个标签号,比如 **v0.0.2**。点击**确定**来触发一个新运行。
|
||||
. 稍等片刻,点击运行记录查看详情。
|
||||
. 流水线如果运行到 **Push with Tag** 阶段,会在此阶段暂停,需要具有审核权限的用户点击**继续**。
|
||||
// . 流水线如果运行成功,会在 **Deploy to Dev** 阶段暂停,需要具有审核权限的用户点击**继续**。
|
||||
// +
|
||||
// --
|
||||
// //note
|
||||
// [.admon.note,cols="a"]
|
||||
// |===
|
||||
// |说明
|
||||
|
||||
// |
|
||||
// 在 Jenkinsfile 中定义了三个阶段 **deploy to dev**、**push with tag** 和 **deploy to production**,每个阶段都需要审核。因此在运行到这些阶段时,流水线会暂停,等待审核。
|
||||
// |===
|
||||
// --
|
||||
|
||||
|
||||
== 步骤 5:检查流水线状态
|
||||
|
||||
. 在运行记录的**流水线**页签下,查看流水线的运行状态。
|
||||
|
||||
. 点击**运行日志**页签查看流水线运行日志。点击每个阶段查看其详细日志。点击**查看完整日志**,根据日志排除故障和问题,也可以将日志下载到本地进行进一步分析。
|
||||
|
||||
|
||||
== 步骤 6:验证结果
|
||||
|
||||
. 按照 Jenkinsfile 中的定义,通过流水线构建的 Docker 镜像也已成功推送到 Docker Hub。在 Docker Hub 中,您会看到带有标签 **v0.0.2** 的镜像,该标签在流水线运行之前已指定。
|
||||
|
||||
. 同时,GitLab 中也已生成一个新标签。
|
||||
|
||||
// . 示例应用程序将部署到 **kubesphere-sample-dev** 和 **kubesphere-sample-prod**,并创建相应的部署和服务。转到这两个项目,预期结果如下所示:
|
||||
|
||||
// +
|
||||
// --
|
||||
// [%header,cols="1,2,2,1,1"]
|
||||
// |===
|
||||
// |环境|URL|命名空间|部署|服务
|
||||
|
||||
// |开发环境
|
||||
// |http://{$NodeIP}:{$30861}
|
||||
// |kubesphere-sample-dev
|
||||
// |ks-sample-dev
|
||||
// |ks-sample-dev
|
||||
|
||||
// |生产环境
|
||||
// |http://{$NodeIP}:{$30961}
|
||||
// |kubesphere-sample-prod
|
||||
// |ks-sample
|
||||
// |ks-sample
|
||||
// |===
|
||||
|
||||
// //note
|
||||
// [.admon.note,cols="a"]
|
||||
// |===
|
||||
// |说明
|
||||
|
||||
// |
|
||||
// 您可能需要在安全组中打开端口,以便使用 URL 访问该应用。有关更多信息,请参阅link:../02-create-a-pipeline-using-jenkinsfile/#_步骤_8访问示例服务[访问示例服务]。
|
||||
|
||||
// |===
|
||||
// --
|
||||
|
|
@ -1,203 +0,0 @@
|
|||
---
|
||||
title: "设置流水线"
|
||||
linkTitle: "设置流水线"
|
||||
keywords: "Kubernetes, KubeSphere, DevOps 项目, 使用 DevOps, 流水线"
|
||||
description: "介绍如何管理 DevOps 项目,以及如何在 DevOps 项目中管理流水线和 DevOps 项目设置。"
|
||||
weight: 05
|
||||
---
|
||||
|
||||
|
||||
创建流水线时,可以通过各种设置来自定义流水线配置。
|
||||
|
||||
流水线创建后,进入流水线详情页,点击**编辑信息**和更多操作中的**编辑设置**,也可以编辑流水线的配置。
|
||||
|
||||
本文档详细介绍如何设置流水线。
|
||||
|
||||
|
||||
== 前提条件
|
||||
|
||||
* {ks_product_right}平台需要安装并启用 **DevOps** 扩展组件。
|
||||
|
||||
* 已创建一个企业空间、一个 DevOps 项目和一个用户 (例如 **project-regular**),并已邀请该用户至 DevOps 项目且授予 **operator** 角色。请参阅link:../../05-devops-settings/02-role-and-member-management[角色和成员管理]。
|
||||
|
||||
|
||||
== 基本信息
|
||||
|
||||
在**基本信息**页签,您可以自定义以下信息:
|
||||
|
||||
* **名称**:流水线的名称,同一个 DevOps 项目内的流水线不能重名。
|
||||
|
||||
* **DevOps 项目**:流水线所属的 DevOps 项目。
|
||||
|
||||
* **描述**:描述流水线的附加信息,描述信息不超过 256 个字符。
|
||||
|
||||
* **流水线类别**:普通流水线或多分支流水线。若选择多分支流水线,则需要选择一个代码仓库。
|
||||
|
||||
* **代码仓库(可选)**:选择一个代码仓库作为流水线的代码源,可选择 GitHub、GitLab、Bitbucket、以及 Git 作为代码源。
|
||||
+
|
||||
====
|
||||
* GitHub
|
||||
+
|
||||
--
|
||||
如果选择 **GitHub**,则必须指定用于访问 GitHub 的凭证。如果您已预先使用您的 GitHub 令牌创建了凭证,则从下拉菜单中选择已有凭证,或者点击**创建凭证**来创建新凭证。选择凭证后,点击**确定**,即可在右侧选择您的仓库。完成所有操作后,点击image:/images/ks-qkcp/zh/icons/check-dark.svg[check,18,18]。
|
||||
--
|
||||
|
||||
* GitLab
|
||||
+
|
||||
--
|
||||
如果选择 **GitLab**,则必须指定 GitLab 服务器地址、项目组/所有者和代码仓库。如果访问代码仓库需要凭证,则需要指定一个凭证。完成所有操作后,点击image:/images/ks-qkcp/zh/icons/check-dark.svg[check,18,18]。
|
||||
--
|
||||
|
||||
* Bitbucket
|
||||
+
|
||||
--
|
||||
如果选择 **Bitbucket**,则需要输入您的 Bitbucket 服务器地址。预先使用您的 Bitbucket 用户名和密码创建一个凭证,或者点击**创建凭证**来创建一个新凭证。输入信息后点击**确定**,即可在右侧选择您的仓库。完成所有操作后,点击image:/images/ks-qkcp/zh/icons/check-dark.svg[check,18,18]。
|
||||
--
|
||||
|
||||
* Git
|
||||
+
|
||||
--
|
||||
如果选择 **Git**,则需要指定仓库 URL。如果访问代码仓库需要凭证,则需要指定一个凭证,或者点击**创建凭证**来添加新凭证。完成所有操作后,点击image:/images/ks-qkcp/zh/icons/check-dark.svg[check,18,18]。
|
||||
--
|
||||
====
|
||||
|
||||
== 高级设置
|
||||
|
||||
=== 指定代码仓库
|
||||
|
||||
如果指定了一个代码仓库,则可以在**高级设置**页签上自定义以下配置:
|
||||
|
||||
* 分支设置
|
||||
+
|
||||
--
|
||||
**删除旧分支**:自动删除旧分支。分支记录将一起被删除。分支记录包括控制台输出、已归档制品以及特定分支相关的其他元数据。更少的分支意味着您可以节省 Jenkins 正在使用的磁盘空间。DevOps 提供两个选项来确定何时丢弃旧分支:
|
||||
|
||||
* **分支保留天数(天)**:超过保留期限的分支将被删除。
|
||||
|
||||
* **分支最大数量**:分支数量超过最大数量时,删除最旧的分支。
|
||||
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
**分支保留天数(天)**和**分支最大数量**可以同时应用于分支。只要某个分支满足其中一个字段所设置的条件,则会删除该分支。例如,如果您将保留天数和最大分支数分别指定为 2 和 3,待某个分支的保留天数超过 2 或者分支保留数量超过 3,则会删除该分支。DevOps 默认用 7 和 5 预填充这两个字段。
|
||||
|
||||
|===
|
||||
--
|
||||
|
||||
* 策略设置
|
||||
+
|
||||
--
|
||||
在**策略设置**中,DevOps 默认提供四种策略。Jenkins 流水线运行时,开发者提交的 PR (Pull Request) 也将被视为一个单独的分支。
|
||||
|
||||
**发现分支**
|
||||
|
||||
* **排除已提交 PR 的分支**:已提交 PR 的分支将被排除。
|
||||
* **只包括已提交 PR 的分支**:只拉取已提交 PR 的分支。
|
||||
* **包括所有分支**:拉取源仓库中的所有分支。
|
||||
|
||||
**发现标签**
|
||||
|
||||
* **启用标签发现**:拥有指定标签的分支将被扫描。
|
||||
* **禁用标签发现**:拥有指定标签的分支不会被扫描。
|
||||
|
||||
**从原仓库发现 PR**
|
||||
|
||||
* **拉取 PR 合并后的代码**:PR 合并到目标分支后,将基于源代码创建并运行流水线。
|
||||
* **拉取 PR 提交时的代码**:根据 PR 本身的源代码创建并运行流水线。
|
||||
* **分别创建两个流水线**:创建两个流水线,一个流水线使用 PR 与目标分支合并后的源代码版本,另一个使用 PR 本身的源代码版本。
|
||||
|
||||
**从 Fork 仓库发现 PR**
|
||||
|
||||
拉取策略:
|
||||
|
||||
* **拉取 PR 合并后的代码**:PR 合并到目标分支后,将基于源代码创建并运行流水线。
|
||||
* **拉取 PR 提交时的代码**:根据 PR 本身的源代码创建并运行流水线。
|
||||
* **分别创建两个流水线**:创建两个流水线,一个流水线使用 PR 与目标分支合并后的源代码版本,另一个使用 PR 本身的源代码版本。
|
||||
|
||||
受信用户:
|
||||
|
||||
* **贡献者**:对 PR 做出贡献的用户。
|
||||
* **所有人**:每个可以访问 PR 的用户。
|
||||
* **具有管理员或有编辑权限的用户**:仅限于对 PR 具有管理员或编辑权限的用户。
|
||||
* **无**:如果选择此选项,那么无论在**拉取策略**中选择了哪个选项,都不会发现 PR。
|
||||
--
|
||||
|
||||
* 正则过滤
|
||||
+
|
||||
--
|
||||
勾选选框以指定正则表达式来过滤分支、PR 和标签。
|
||||
--
|
||||
|
||||
* 脚本路径
|
||||
+
|
||||
--
|
||||
**脚本路径**参数指定代码仓库中的 Jenkinsfile 路径,它指代仓库的根目录。如果文件位置发生更改,则脚本路径也需要更改。
|
||||
--
|
||||
|
||||
* 扫描触发器
|
||||
+
|
||||
--
|
||||
勾选**定时扫描**,并从下拉列表中设置扫描时间间隔。
|
||||
--
|
||||
|
||||
* 构建触发器
|
||||
+
|
||||
--
|
||||
勾选**通过流水线事件触发**,从**创建流水线时触发**和**删除流水线时触发**的下拉列表中选择一个流水线,以便在创建新的流水线或删除流水线时自动触发指定流水线中的任务。
|
||||
--
|
||||
|
||||
* 克隆设置
|
||||
+
|
||||
--
|
||||
* **启用浅克隆**:如果开启浅克隆,则克隆的代码不会包含标签。
|
||||
* **克隆深度**:克隆时需要提取的 commit 数量。
|
||||
* **克隆超时时间(min)**:完成克隆过程所需要的时长(以分钟为单位)。
|
||||
--
|
||||
|
||||
* Webhook
|
||||
+
|
||||
--
|
||||
**Webhook** 能有效地让流水线发现远程代码仓库中的更改,并自动触发新一轮运行。Webhook 应成为触发 Jenkins 自动扫描 GitHub 和 Git(例如 GitLab)的主要方法。有关更多信息,请参阅link:../06-pipeline-webhook/[使用 Webhook 触发流水线]。
|
||||
--
|
||||
|
||||
|
||||
=== 不指定代码仓库
|
||||
|
||||
如果不指定代码仓库,则可以在**高级设置**页签上自定义以下配置:
|
||||
|
||||
* 构建设置
|
||||
+
|
||||
--
|
||||
**删除过期构建记录**:指定何时删除分支下的构建记录。构建记录包括控制台输出、已归档制品以及与特定构建相关的其他元数据。保留较少的构建可以节省 Jenkins 所使用的磁盘空间。DevOps 提供两个选项来确定何时删除旧的构建:
|
||||
|
||||
* **构建记录保留期限(天)**:超过保留期限的构建记录将被删除。
|
||||
|
||||
* **构建记录最大数量**:当构建记录数量超过允许的最大数量,最早的构建记录将被删除。
|
||||
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
|
||||
**构建记录保留期限(天)**和**构建记录最大数量**可以同时应用于构建记录。只要某个构建记录满足其中一个字段所设置的条件,则会删除该构建记录。例如,如果您将保留期限和最大数量分别指定为 2 和 3,待某个构建记录的保留天数超过 2 或者最大数量超过 3,则会删除该构建记录。DevOps 默认用 7 和 10 预填充这两个字段。
|
||||
|===
|
||||
|
||||
* **不允许并发构建**:如果勾选此选项,则不能并发运行多个构建。
|
||||
--
|
||||
|
||||
* 构建参数
|
||||
+
|
||||
--
|
||||
参数化的构建过程允许在开始运行流水线时传入一个或多个参数。DevOps 默认提供五种参数类型,包括**字符串**、**多行字符串**、**布尔值**、**选项**以及**密码**。当参数化项目时,构建会被替换为参数化构建,其中将提示用户为每个定义的参数输入值。
|
||||
--
|
||||
|
||||
* 构建触发器
|
||||
+
|
||||
--
|
||||
**定时构建**:允许定期执行构建。输入 CRON 表达式以设置定时计划。
|
||||
--
|
||||
|
|
@ -1,78 +0,0 @@
|
|||
---
|
||||
title: "使用 Webhook 触发流水线"
|
||||
linkTitle: "使用 Webhook 触发流水线"
|
||||
keywords: "Kubernetes, KubeSphere, DevOps 项目, 使用 DevOps, 流水线"
|
||||
description: "介绍如何管理 DevOps 项目,以及如何在 DevOps 项目中管理流水线和 DevOps 项目设置。"
|
||||
weight: 06
|
||||
---
|
||||
|
||||
|
||||
若要通过远程代码仓库创建基于 Jenkinsfile 的流水线,可以在远程仓库中配置 webhook,以便在远程仓库变更时,自动触发流水线。
|
||||
|
||||
本文档演示如何在 GitHub 仓库中用 webhook 触发流水线。
|
||||
|
||||
|
||||
== 前提条件
|
||||
|
||||
* {ks_product_right}平台需要安装并启用 **DevOps** 扩展组件。
|
||||
|
||||
* 已创建一个企业空间、一个 DevOps 项目和一个用户 (例如 **project-regular**),并已邀请该用户至 DevOps 项目且授予 **operator** 角色。请参阅link:../../05-devops-settings/02-role-and-member-management[角色和成员管理]。
|
||||
|
||||
* 已通过远程代码仓库创建一个基于 Jenkinsfile 的流水线。有关更多信息,请参阅link:../02-create-a-pipeline-using-jenkinsfile/[使用 Jenkinsfile 创建流水线]。
|
||||
|
||||
== 配置 Webhook
|
||||
|
||||
=== 获取 webhook URL
|
||||
|
||||
. 以 **project-regular** 用户登录{ks_product_both} Web 控制台。
|
||||
|
||||
. 点击**企业空间管理**并进入您的 DevOps 项目。
|
||||
|
||||
. 在**流水线**页面,点击一个流水线(例如 **jenkins-in-scm**)以查看其详情页面。
|
||||
|
||||
. 点击**更多操作**,在下拉菜单中选择**编辑设置**。
|
||||
|
||||
. 在弹出的会话框中,滚动至 **Webhook** 以获得 Webhook push URL。
|
||||
|
||||
=== 在 GitHub 仓库中设置 webhook
|
||||
|
||||
. 登录您的 GitHub,并进入 **devops-maven-sample** 仓库。
|
||||
|
||||
. 点击 **Settings** > **Webhooks**,然后点击 **Add webhook**。
|
||||
|
||||
. 在 **Payload URL** 中输入流水线中的 Webhook push URL,然后点击 **Add webhook**。
|
||||
本教程选择默认的 **Just the push event**,请根据实际需要进行配置。有关更多信息,请参阅 link:https://docs.github.com/en/developers/webhooks-and-events/webhooks/creating-webhooks[GitHub 文档]。
|
||||
|
||||
. 配置好的 webhook 会展示在 **Webhooks** 页面。
|
||||
|
||||
|
||||
== 使用 Webhook 触发流水线
|
||||
|
||||
=== 提交拉取请求到仓库
|
||||
|
||||
. 在 devops-maven-sample 仓库的 **Code** 页面,点击 **master** 然后选择 **v4.1.0-sonarqube** 分支。
|
||||
|
||||
. 转到 **/deploy/dev-ol** 然后点击文件 **devops-sample.yaml**。
|
||||
|
||||
. 点击image:/images/ks-qkcp/zh/icons/pen-light.svg[pen-light,18,18]编辑文件。 例如,将 **spec.replicas** 的值改变为 **3**。
|
||||
|
||||
. 点击 **Commit changes**。
|
||||
|
||||
=== 检查 webhook 交付
|
||||
|
||||
. 在 devops-maven-sample 仓库的 **Settings** > **Webhooks** 页面,点击创建的 webhook。
|
||||
|
||||
. 点击 **Recent Deliveries**,然后点击一个具体交付记录查看详情。
|
||||
|
||||
|
||||
== 检查流水线状态
|
||||
|
||||
. 以 **project-regular** 用户登录{ks_product_both} Web 控制台。
|
||||
|
||||
. 点击**企业空间管理**并进入您的 DevOps 项目。
|
||||
|
||||
. 在**流水线**页面,点击一个流水线(例如 **jenkins-in-scm**)以查看其详情页面。
|
||||
|
||||
. 在**运行记录**页签,检查提交到远程仓库 **v4.1.0-sonarqube** 分支的拉取请求是否触发了新的运行。
|
||||
|
||||
// . 转到 **kubesphere-sample-dev** 项目的 **工作负载 > 容器组** 页面,检查 3 个 Pods 的状态。如果 3 个 Pods 为运行状态,表示流水线运行正常。
|
||||
|
|
@ -1,56 +0,0 @@
|
|||
---
|
||||
title: "设置 Jenkins 系统"
|
||||
linkTitle: "设置 Jenkins 系统"
|
||||
keywords: "Kubernetes, KubeSphere, DevOps 项目, 使用 DevOps, 流水线"
|
||||
description: "介绍如何管理 DevOps 项目,以及如何在 DevOps 项目中管理流水线和 DevOps 项目设置。"
|
||||
weight: 07
|
||||
---
|
||||
|
||||
DevOps 系统提供基于 Jenkins 的容器化 CI/CD 功能。Jenkins 作为 CI/CD 工作流的事实标准,具备强大而灵活的特性。然而,许多插件要求用户在使用 Jenkins 之前必须进行系统级配置。
|
||||
|
||||
为了提供可调度的 Jenkins 环境,{ks_product_right}采用了 **Configuration as Code** 的方式进行 Jenkins 系统设置。用户需要登录 Jenkins 仪表板,修改配置后再重新加载。
|
||||
|
||||
本文档演示如何在 Jenkins 仪表板上设置 Jenkins 并重新加载配置。
|
||||
|
||||
== 前提条件
|
||||
|
||||
{ks_product_right}平台需要安装并启用 **DevOps** 扩展组件。
|
||||
|
||||
|
||||
== Jenkins Configuration as Code
|
||||
|
||||
{ks_product_right}默认安装 Jenkins Configuration as Code 插件,支持通过 YAML 文件定义 Jenkins 的期望状态,便于再现 Jenkins 的配置(包括插件配置)。请参阅link:https://github.com/jenkinsci/configuration-as-code-plugin/tree/master/demos[该目录]查看具体的 Jenkins 配置和示例 YAML 文件。
|
||||
|
||||
此外,还可以在 link:https://github.com/kubesphere/ks-jenkins[ks-jenkins] 仓库中找到 **formula.yaml** 文件,查看插件版本并按需自定义这些版本。
|
||||
|
||||
|
||||
== 修改 ConfigMap
|
||||
|
||||
建议通过 Configuration as Code (CasC) 在{ks_product_both}中配置 Jenkins。将内置 Jenkins CasC 文件存储为 ConfigMap。
|
||||
|
||||
. 以 **platform-admin** 用户登录{ks_product_left} Web 控制台。
|
||||
|
||||
. 点击**集群管理**,进入一个集群。
|
||||
|
||||
. 在左侧导航栏中选择**配置**下的**配置字典**。在**配置字典**页面,从下拉列表中选择 **kubesphere-devops-system**,然后点击 **jenkins-casc-config**。
|
||||
|
||||
. 在详情页面,点击**更多操作**,在下拉列表中选择**编辑 YAML**。
|
||||
|
||||
. **jenkins-casc-config** 的配置模板是一个 YAML 文件,位于 **data:jenkins_user.yaml:** 部分。在 ConfigMap 的代理 (Kubernetes Jenkins Agent) 中修改容器镜像、标签、资源请求 (Request) 和限制 (Limit) 等内容,或者在 podTemplate 中添加容器。完成操作后,点击**确定**。
|
||||
|
||||
. 等待 1 ~ 2 分钟,会自动重新加载新的配置。
|
||||
|
||||
|
||||
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
* 有关如何通过 CasC 设置 Jenkins 的更多信息,请参阅 link:https://github.com/jenkinsci/configuration-as-code-plugin[Jenkins 文档]。
|
||||
|
||||
* 在当前版本中,并非所有插件都支持 CasC 设置。CasC 仅会覆盖通过 CasC 设置的插件配置。
|
||||
|
||||
|===
|
||||
|
||||
|
|
@ -1,151 +0,0 @@
|
|||
---
|
||||
title: "在流水线中使用 Jenkins 共享库"
|
||||
linkTitle: "在流水线中使用 Jenkins 共享库"
|
||||
keywords: "Kubernetes, KubeSphere, DevOps 项目, 使用 DevOps, 流水线"
|
||||
description: "介绍如何管理 DevOps 项目,以及如何在 DevOps 项目中管理流水线和 DevOps 项目设置。"
|
||||
weight: 08
|
||||
---
|
||||
|
||||
|
||||
|
||||
对于包含相同阶段或步骤的 Jenkins 流水线,可以在 Jenkinsfile 中使用 Jenkins 共享库避免流水线代码重复。
|
||||
|
||||
本文档演示如何在{ks_product_left} DevOps 流水线中使用 Jenkins 共享库。
|
||||
|
||||
|
||||
== 前提条件
|
||||
|
||||
* {ks_product_right}平台需要安装并启用 **DevOps** 扩展组件。
|
||||
|
||||
* 已创建一个企业空间、一个 DevOps 项目和一个用户 (例如 **project-regular**),并已邀请该用户至 DevOps 项目且授予 **operator** 角色。请参阅link:../../05-devops-settings/02-role-and-member-management[角色和成员管理]。
|
||||
|
||||
* 已有一个可用 Jenkins 共享库。本教程以 link:https://github.com/devops-ws/jenkins-shared-library[GitHub 仓库]中的 Jenkins 共享库为例。
|
||||
|
||||
|
||||
== 步骤 1:在 Jenkins 仪表盘配置共享库
|
||||
|
||||
. link:../../../04-how-to-integrate/01-sonarqube/[登录 Jenkins 仪表板]并点击左侧导航栏中的**系统管理**。
|
||||
|
||||
. 向下滚动并点击**系统配置**。
|
||||
|
||||
. 向下滚动到 **Global Pipeline Libraries**,然后点击**新增**。
|
||||
|
||||
. 配置字段如下所示。
|
||||
|
||||
* **Name:** 为共享库设置名称(例如,`demo-shared-library`),以便在 Jenkinsfile 中引用此名称来导入共享库。
|
||||
|
||||
* **Default version:** 设置共享库所在仓库的一个分支名称,将其作为导入共享库的默认分支。本教程将使用 master。
|
||||
|
||||
* 在 **Retrieval method** 下,选择 **Modern SCM**。
|
||||
|
||||
* 在 **Source Code Management** 下,选择 **Git**,并为**项目仓库**输入示例仓库的 URL 。如果您使用自己的仓库且访问此仓库需要凭证,还需要配置**凭证**。
|
||||
|
||||
. 编辑完成后,点击**应用**。
|
||||
+
|
||||
--
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
您还可以配置link:https://www.jenkins.io/zh/doc/book/pipeline/shared-libraries/#folder-level-shared-libraries[文件夹级别的共享库]。
|
||||
|
||||
|===
|
||||
--
|
||||
|
||||
== 步骤 2:在流水线中使用共享库
|
||||
|
||||
|
||||
=== 创建流水线
|
||||
|
||||
. 以 **project-regular** 用户登录{ks_product_both} Web 控制台。
|
||||
|
||||
. 点击**企业空间管理**并进入您的 DevOps 项目,在**流水线**页面点击**创建**。
|
||||
|
||||
. 在弹出的对话框中,将其命名为 **demo-shared-library**,点击**下一步**。
|
||||
|
||||
. 在**高级设置**中,直接点击**创建**,使用默认设置创建流水线。
|
||||
|
||||
=== 编辑流水线
|
||||
|
||||
. 在流水线列表页面,点击流水线名称进入其详情页面,然后点击**编辑 Jenkinsfile**。
|
||||
|
||||
. 在弹出的对话框中,添加以下示例 Jenkinsfile。完成编辑后,点击**确定**。
|
||||
+
|
||||
--
|
||||
[,json]
|
||||
----
|
||||
|
||||
library identifier: 'devops-ws-demo@master', retriever: modernSCM([
|
||||
$class: 'GitSCMSource',
|
||||
remote: 'https://github.com/devops-ws/jenkins-shared-library',
|
||||
traits: [[$class: 'jenkins.plugins.git.traits.BranchDiscoveryTrait']]
|
||||
])
|
||||
|
||||
pipeline {
|
||||
agent any
|
||||
|
||||
stages {
|
||||
stage('Demo') {
|
||||
steps {
|
||||
script {
|
||||
mvn.fake()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
----
|
||||
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
根据需要,为 **agent** 指定 **label**。
|
||||
|
||||
|===
|
||||
--
|
||||
|
||||
+
|
||||
或者,使用以 **@Library('<配置好的共享库名称>') _** 开头的 Jenkinsfile。如果使用这种类型的 Jenkinsfile,需要提前在 Jenkins 仪表板上配置共享库。在本教程中,您可以使用以下示例 Jenkinsfile。
|
||||
+
|
||||
--
|
||||
[,json]
|
||||
----
|
||||
|
||||
@Library('demo-shared-library') _
|
||||
|
||||
pipeline {
|
||||
agent any
|
||||
|
||||
stages {
|
||||
stage('Demo') {
|
||||
steps {
|
||||
script {
|
||||
mvn.fake()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
----
|
||||
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
使用 **@Library('demo-shared-library@<分支名称>') _** 来指定特定的分支。
|
||||
|
||||
|===
|
||||
--
|
||||
|
||||
== 步骤 3:运行流水线
|
||||
|
||||
. 在流水线详情页面,点击**运行**运行流水线。
|
||||
|
||||
. 点击**运行记录**页签下的记录,查看流水线运行详情。点击**运行日志**查看日志详细信息。
|
||||
|
|
@ -1,63 +0,0 @@
|
|||
---
|
||||
title: "为流水线设置电子邮件服务器"
|
||||
linkTitle: "为流水线设置电子邮件服务器"
|
||||
keywords: "Kubernetes, KubeSphere, DevOps 项目, 使用 DevOps, 流水线"
|
||||
description: "介绍如何管理 DevOps 项目,以及如何在 DevOps 项目中管理流水线和 DevOps 项目设置。"
|
||||
weight: 09
|
||||
---
|
||||
|
||||
|
||||
内置 Jenkins 无法与{ks_product_both}的通知系统共享相同的电子邮件配置。因此,您需要单独为 DevOps 流水线配置电子邮件服务器。
|
||||
|
||||
|
||||
== 前提条件
|
||||
|
||||
* {ks_product_right}平台需要安装并启用 **DevOps** 扩展组件。
|
||||
|
||||
* 您需要在{ks_product_both}平台具有**集群管理**权限。
|
||||
|
||||
|
||||
== 操作步骤
|
||||
|
||||
. 以具有**集群管理**权限的账户登录{ks_product_left} Web 控制台。
|
||||
|
||||
. 点击**集群管理**,进入一个集群。
|
||||
|
||||
. 在左侧导航栏中选择**应用负载**下的**工作负载**,从下拉列表中选择 **kubesphere-devops-system** 项目。点击 **devops-jenkins** 右侧的image:/images/ks-qkcp/zh/icons/more.svg[more,18,18],并选择**编辑 YAML**。
|
||||
|
||||
. 在 YAML 文件中编辑如下所示的字段。完成修改后,点击**确定**。
|
||||
+
|
||||
--
|
||||
//warning
|
||||
[.admon.warning,cols="a"]
|
||||
|===
|
||||
|警告
|
||||
|
||||
|
|
||||
修改电子邮件服务器配置后,**devops-jenkins** 部署 (Deployment) 会重新启动。因此,DevOps 系统将在几分钟内不可用,请在适当的时候修改这些配置。
|
||||
|
||||
|===
|
||||
|
||||
|
||||
[%header,cols="1a,3a"]
|
||||
|===
|
||||
|环境变量名称 |描述信息
|
||||
|EMAIL_SMTP_HOST
|
||||
|SMTP 服务器地址
|
||||
|
||||
|EMAIL_SMTP_PORT
|
||||
|SMTP 服务器端口(如:25)
|
||||
|
||||
|EMAIL_FROM_ADDR
|
||||
|电子邮件发件人地址
|
||||
|
||||
|EMAIL_FROM_NAME
|
||||
|电子邮件发件人姓名
|
||||
|
||||
|EMAIL_FROM_PASS
|
||||
|电子邮件发件人密码
|
||||
|
||||
|EMAIL_USE_SSL
|
||||
|是否启用 SSL 配置
|
||||
|===
|
||||
--
|
||||
|
|
@ -1,220 +0,0 @@
|
|||
---
|
||||
title: "选择 Jenkins Agent"
|
||||
linkTitle: "选择 Jenkins Agent"
|
||||
keywords: "Kubernetes, KubeSphere, DevOps 项目, 使用 DevOps, 流水线"
|
||||
description: "介绍如何管理 DevOps 项目,以及如何在 DevOps 项目中管理流水线和 DevOps 项目设置。"
|
||||
weight: 10
|
||||
---
|
||||
|
||||
|
||||
**agent** 部分指定整个流水线或特定阶段 (Stage) 将在 Jenkins 环境中执行的位置,具体取决于该 **agent** 部分的放置位置。该部分必须在 **pipeline** 块的顶层进行定义,但是阶段级别的使用是可选的。有关更多信息,请参阅 link:https://www.jenkins.io/zh/doc/book/pipeline/syntax/#代理[Jenkins 官方文档]。
|
||||
|
||||
|
||||
== 内置 podTemplate
|
||||
|
||||
podTemplate 是一种 Pod 模板,用于创建 Agent。您可以定义在 Kubernetes 插件中使用的 podTemplate。
|
||||
|
||||
在流水线运行期间,每个 Jenkins Agent Pod 必须具有一个名为 **jnlp** 的容器,以便实现 Jenkins Controller 与 Jenkins Agent 之间的通信。此外,您可以在 podTemplate 中添加容器,以满足个性化需求。可选择使用自定义的 Pod YAML 来灵活控制运行时环境(Runtime),并通过 **container** 命令来切换容器。以下是相关示例。
|
||||
|
||||
[,json]
|
||||
----
|
||||
|
||||
pipeline {
|
||||
agent {
|
||||
kubernetes {
|
||||
//cloud 'kubernetes'
|
||||
label 'mypod'
|
||||
yaml """
|
||||
apiVersion: v1
|
||||
kind: Pod
|
||||
spec:
|
||||
containers:
|
||||
- name: maven
|
||||
image: maven:3.3.9-jdk-8-alpine
|
||||
command: ['cat']
|
||||
tty: true
|
||||
"""
|
||||
}
|
||||
}
|
||||
stages {
|
||||
stage('Run maven') {
|
||||
steps {
|
||||
container('maven') {
|
||||
sh 'mvn -version'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
----
|
||||
|
||||
在目前版本中,{ks_product_right}内置了 4 种类型的 podTemplate:**base**、**nodejs**、**maven** 和 **go**,并且在 Pod 中提供隔离的 Docker 环境。
|
||||
|
||||
您可以通过指定 Agent 的标签来使用内置 podTemplate。例如,要使用 nodejs 的 podTemplate,在创建流水线时指定标签为 **nodejs** 即可,具体参阅以下示例。
|
||||
|
||||
[,json]
|
||||
----
|
||||
|
||||
pipeline {
|
||||
agent {
|
||||
node {
|
||||
label 'nodejs'
|
||||
}
|
||||
}
|
||||
|
||||
stages {
|
||||
stage('nodejs hello') {
|
||||
steps {
|
||||
container('nodejs') {
|
||||
sh 'yarn -v'
|
||||
sh 'node -v'
|
||||
sh 'docker version'
|
||||
sh 'docker images'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
----
|
||||
|
||||
|
||||
* podTemplate base
|
||||
+
|
||||
--
|
||||
[%header,cols="1a,4a"]
|
||||
|===
|
||||
|名称 |类型/版本
|
||||
|
||||
|Jenkins Agent 标签
|
||||
|base
|
||||
|
||||
|容器名称
|
||||
|base
|
||||
|
||||
|操作系统
|
||||
|centos-7
|
||||
|
||||
|Docker
|
||||
|18.06.0
|
||||
|
||||
|Helm
|
||||
|2.11.0
|
||||
|
||||
|Kubectl
|
||||
|稳定版
|
||||
|
||||
|内置工具
|
||||
|unzip、which、make、wget、zip、bzip2、git
|
||||
|===
|
||||
--
|
||||
|
||||
* podTemplate nodejs
|
||||
+
|
||||
--
|
||||
[%header,cols="1a,4a"]
|
||||
|===
|
||||
|名称 |类型/版本
|
||||
|
||||
|Jenkins Agent 标签
|
||||
|nodejs
|
||||
|
||||
|容器名称
|
||||
|nodejs
|
||||
|
||||
|操作系统
|
||||
|centos-7
|
||||
|
||||
|Node
|
||||
|9.11.2
|
||||
|
||||
|Yarn
|
||||
|1.3.2
|
||||
|
||||
|Docker
|
||||
|18.06.0
|
||||
|
||||
|Helm
|
||||
|2.11.0
|
||||
|
||||
|Kubectl
|
||||
|稳定版
|
||||
|
||||
|内置工具
|
||||
|unzip、which、make、wget、zip、bzip2、git
|
||||
|===
|
||||
--
|
||||
|
||||
* podTemplate maven
|
||||
+
|
||||
--
|
||||
[%header,cols="1a,4a"]
|
||||
|===
|
||||
|名称|类型/版本
|
||||
|
||||
|Jenkins Agent 标签
|
||||
|maven
|
||||
|
||||
|容器名称
|
||||
|maven
|
||||
|
||||
|操作系统
|
||||
|centos-7
|
||||
|
||||
|Jdk
|
||||
|openjdk-1.8.0
|
||||
|
||||
|Maven
|
||||
|3.5.3
|
||||
|
||||
|Docker
|
||||
|18.06.0
|
||||
|
||||
|Helm
|
||||
|2.11.0
|
||||
|
||||
|Kubectl
|
||||
|稳定版
|
||||
|
||||
|内置工具
|
||||
|unzip、which、make、wget、zip、bzip2、git
|
||||
|===
|
||||
--
|
||||
|
||||
* podTemplate go
|
||||
+
|
||||
--
|
||||
[%header,cols="1a,4a"]
|
||||
|===
|
||||
|名称|类型/版本
|
||||
|
||||
|Jenkins Agent 标签
|
||||
|go
|
||||
|
||||
|容器名称
|
||||
|go
|
||||
|
||||
|操作系统
|
||||
|centos-7
|
||||
|
||||
|Go
|
||||
|1.11
|
||||
|
||||
|GOPATH
|
||||
|/home/jenkins/go
|
||||
|
||||
|GOROOT
|
||||
|/usr/local/go
|
||||
|
||||
|Docker
|
||||
|18.06.0
|
||||
|
||||
|Helm
|
||||
|2.11.0
|
||||
|
||||
|Kubectl
|
||||
|稳定版
|
||||
|
||||
|内置工具
|
||||
|unzip、which、make、wget、zip、bzip2、git
|
||||
|===
|
||||
--
|
||||
|
|
@ -1,86 +0,0 @@
|
|||
---
|
||||
title: "自定义 Jenkins Agent"
|
||||
linkTitle: "自定义 Jenkins Agent"
|
||||
keywords: "Kubernetes, KubeSphere, DevOps 项目, 使用 DevOps, 流水线"
|
||||
description: "介绍如何管理 DevOps 项目,以及如何在 DevOps 项目中管理流水线和 DevOps 项目设置。"
|
||||
weight: 11
|
||||
---
|
||||
|
||||
|
||||
若要使用运行特定环境(例如 JDK 11)的 Jenkins Agent,可以在{ks_product_both}上自定义 Jenkins Agent。
|
||||
|
||||
本文档描述如何在{ks_product_both}上自定义 Jenkins Agent。
|
||||
|
||||
|
||||
== 前提条件
|
||||
|
||||
{ks_product_right}平台需要安装并启用 **DevOps** 扩展组件。
|
||||
|
||||
|
||||
== 自定义 Jenkins Agent
|
||||
|
||||
. 以 **admin** 用户登录{ks_product_left} Web 控制台。
|
||||
|
||||
. 点击**集群管理**,进入一个集群。
|
||||
|
||||
. 在左侧导航栏选择**配置**下的**配置字典**。
|
||||
|
||||
. 在**配置字典**页面的搜索框中输入 **jenkins-casc-config** 并按**回车键**。
|
||||
|
||||
. 点击 **jenkins-casc-config** 进入其详情页面,点击**更多操作**,选择**编辑 YAML**。
|
||||
|
||||
. 在弹出的对话框中,搜寻至 **data:jenkins_user.yaml:jenkins:clouds:kubernetes:templates** 下方并输入以下代码,点击**确定**。
|
||||
+
|
||||
--
|
||||
[,yaml]
|
||||
----
|
||||
|
||||
- name: "maven-jdk11" # 自定义 Jenkins Agent 的名称。
|
||||
label: "maven jdk11" # 自定义 Jenkins Agent 的标签。若要指定多个标签,请用空格来分隔标签。
|
||||
inheritFrom: "maven" # 自定义 Jenkins Agent 所继承的现有容器组模板的名称。
|
||||
containers:
|
||||
- name: "maven" # 自定义 Jenkins Agent 所继承的现有容器组模板中指定的容器名称。
|
||||
image: "kubespheredev/builder-maven:v3.2.0jdk11" # 此镜像只用于测试。请使用您自己的镜像。
|
||||
----
|
||||
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
请确保遵守 YAML 文件中的缩进。
|
||||
|
||||
|===
|
||||
--
|
||||
|
||||
. 等待 1 ~ 2 分钟,会自动重新加载新的配置。
|
||||
|
||||
. 要使用自定义的 Jenkins Agent,请参考下方的示例 Jenkinsfile,在创建流水线时指定自定义 Jenkins Agent 对应的标签和容器名。
|
||||
+
|
||||
--
|
||||
|
||||
[,json]
|
||||
----
|
||||
|
||||
pipeline {
|
||||
agent {
|
||||
node {
|
||||
label 'maven && jdk11'
|
||||
}
|
||||
}
|
||||
stages {
|
||||
stage('Print Maven and JDK version') {
|
||||
steps {
|
||||
container('maven') {
|
||||
sh '''
|
||||
mvn -v
|
||||
java -version
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
----
|
||||
--
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
---
|
||||
title: "流水线"
|
||||
linkTitle: "流水线"
|
||||
keywords: "Kubernetes, KubeSphere, DevOps 项目, 使用 DevOps, 流水线"
|
||||
description: "本节介绍如何使用流水线功能。"
|
||||
layout: "second"
|
||||
weight: 02
|
||||
---
|
||||
|
||||
本节介绍如何使用流水线功能。
|
||||
|
|
@ -1,256 +0,0 @@
|
|||
---
|
||||
title: "使用 GitOps 实现应用持续部署"
|
||||
linkTitle: "使用 GitOps 实现应用持续部署"
|
||||
keywords: "Kubernetes, KubeSphere, DevOps 项目, 使用 DevOps"
|
||||
description: "介绍如何管理 DevOps 项目,以及如何在 DevOps 项目中管理流水线和 DevOps 项目设置。"
|
||||
weight: 03
|
||||
---
|
||||
|
||||
|
||||
{ks_product_right}引入了一种为云原生应用实现持续部署的理念 – GitOps。GitOps 的核心思想是拥有一个 Git 仓库,并将应用系统的申明式基础架构和应用程序存放在 Git 仓库中进行版本控制。GitOps 结合 Kubernetes 能够利用自动交付流水线将更改应用到指定的任意多个集群中,从而解决跨云部署的一致性问题。
|
||||
|
||||
本文档演示如何创建持续部署以实现应用的部署。
|
||||
|
||||
|
||||
== 前提条件
|
||||
|
||||
* {ks_product_right}平台需要安装并启用 **DevOps** 扩展组件。
|
||||
|
||||
* 已有一个企业空间、一个 DevOps 项目和一个用户 (例如 **project-regular**),并已邀请该用户至 DevOps 项目且授予 **operator** 角色。请参阅link:../05-devops-settings/02-role-and-member-management[角色和成员管理]。
|
||||
|
||||
|
||||
== 导入代码仓库
|
||||
|
||||
. 以 **project-regular** 用户登录{ks_product_both} Web 控制台。
|
||||
|
||||
. 点击**企业空间管理**并进入您的 DevOps 项目。
|
||||
|
||||
. 在左侧导航栏,点击**代码仓库**。
|
||||
|
||||
. 在右侧的代码仓库页面,点击**添加**。
|
||||
|
||||
. 在**导入代码仓库**对话框,输入代码仓库名称,如 **open-podcasts**,点击选择代码仓库。您也可以为代码仓库设置别名和添加描述信息。
|
||||
|
||||
|
||||
. 在**选择代码仓库**对话框,点击 **Git**,在**代码仓库地址**区域,输入代码仓库地址,如 link:https://github.com/kubesphere-sigs/open-podcasts[],点击**确定**。
|
||||
+
|
||||
--
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
此处导入的是公共仓库,因此不需要创建凭证。如果您添加的是私有仓库,则需要创建凭证。有关如何添加凭证的更多信息,请参阅link:../05-devops-settings/01-credential-management/[凭证管理]。
|
||||
|
||||
|===
|
||||
--
|
||||
|
||||
|
||||
== 创建持续部署
|
||||
|
||||
. 在左侧导航栏,点击**持续部署**。
|
||||
|
||||
. 在右侧的**持续部署**页面,点击**创建**。
|
||||
|
||||
. 在**基本信息**页签,输入持续部署名称,如 **open-podcasts**。在**部署位置**区域,选择持续部署的部署集群和项目。点击**下一步**。
|
||||
|
||||
. 在**代码仓库设置**页签,选择上一步创建的代码仓库,设置代码仓库的分支或标签以及 Kustomization 清单文件路径。点击**下一步**。
|
||||
+
|
||||
--
|
||||
[%header, cols="1a,3a"]
|
||||
|===
|
||||
|参数 |描述
|
||||
|
||||
|修订版本
|
||||
|Git 仓库中的 commit ID、分支或标签。例如,**master**, **v1.2.0**, **0a1b2c3** 或 **HEAD**。
|
||||
|
||||
|清单文件路径
|
||||
|设置清单文件路径。例如,**config/default**。
|
||||
|===
|
||||
--
|
||||
|
||||
. 在**同步策略**区域,根据需要选择**自动同步**或**手动同步**。
|
||||
+
|
||||
--
|
||||
|
||||
* **自动同步**:在检测到 Git 仓库中的清单与部署资源的实时状态之间存在差异时,根据设置的同步选项,自动触发应用程序同步。具体参数如下表所示。
|
||||
+
|
||||
====
|
||||
[%header, cols="1a,3a"]
|
||||
|===
|
||||
|参数 |描述
|
||||
|
||||
|清理资源
|
||||
|如果勾选,自动同步时会删除 Git 仓库中不存在的资源。不勾选时,自动同步触发时不会删除集群中的资源。
|
||||
|
||||
|自恢复
|
||||
|如果勾选,当检测到 Git 仓库中定义的状态与部署资源中有偏差时,将强制应用 Git 仓库中的定义。不勾选时,对部署资源做更改时不会触发自动同步。
|
||||
|===
|
||||
====
|
||||
|
||||
* **手动同步**:根据设置的同步选项,手动触发应用程序同步。
|
||||
|
||||
// 具体参数如下表所示。
|
||||
// +
|
||||
// ====
|
||||
// [%header, cols="1a,3a"]
|
||||
// |===
|
||||
// |参数 |描述
|
||||
|
||||
// |清理资源
|
||||
// |如果勾选,同步会删除 Git 仓库中不存在的资源。不勾选时,同步不会删除集群中的资源,而是会显示 **out-of-sync**。
|
||||
|
||||
// |模拟运行
|
||||
// |模拟同步,不影响最终部署资源。
|
||||
|
||||
// |仅执行 Apply
|
||||
// |如果勾选,同步应用资源时会跳过 **pre/post** 钩子,仅执行 **kubectl apply**。
|
||||
|
||||
// |强制 Apply
|
||||
// |如果勾选,同步时会执行 **kubectl apply --force**。
|
||||
// |===
|
||||
// ====
|
||||
|
||||
--
|
||||
|
||||
. 在**同步设置**区域,根据需要设置同步相关参数。
|
||||
+
|
||||
--
|
||||
[%header, cols="1a,3a"]
|
||||
|===
|
||||
|参数 |描述
|
||||
|
||||
|跳过规范校验
|
||||
|跳过 **kubectl** 验证。执行 **kubectl apply** 时,增加 **--validate=false** 标识。
|
||||
|
||||
|自动创建项目
|
||||
|在项目不存在的情况下自动为应用程序资源创建项目。
|
||||
|
||||
|最后清理
|
||||
|同步操作时,其他资源都完成部署且处于健康状态后,再清理资源。
|
||||
|
||||
|选择性同步
|
||||
|仅同步 **out-of-sync** 状态的资源。
|
||||
|===
|
||||
--
|
||||
|
||||
|
||||
. 在**依赖清理策略**区域,根据需要选择依赖清理策略。
|
||||
+
|
||||
--
|
||||
[%header, cols="1a,3a"]
|
||||
|===
|
||||
|参数 |描述
|
||||
|
||||
|foreground
|
||||
|先删除依赖资源,再删除主资源。
|
||||
|
||||
|background
|
||||
|先删除主资源,再删除依赖资源。
|
||||
|
||||
|orphan
|
||||
|删除主资源,留下依赖资源成为孤儿。
|
||||
|===
|
||||
--
|
||||
|
||||
. 在**替换资源**区域,选择是否需要替换已存在的资源。
|
||||
+
|
||||
--
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
|
||||
如果勾选,将执行 **kubectl replace/create** 命令同步资源。不勾选时,使用 **kubectl apply** 命令同步资源。
|
||||
|===
|
||||
--
|
||||
|
||||
. 点击**创建**。资源创建完成后将显示在持续部署列表中。
|
||||
|
||||
|
||||
== 查看已创建的持续部署信息
|
||||
|
||||
. 在**持续部署**页面上查看到已创建的持续部署信息。具体参数如下表所示。
|
||||
+
|
||||
--
|
||||
[%header,cols="1a,4a"]
|
||||
|===
|
||||
|参数 |描述
|
||||
|
||||
|名称
|
||||
|持续部署的名称。
|
||||
|
||||
|健康状态
|
||||
|持续部署的健康状态。主要包含以下几种状态:
|
||||
|
||||
* **健康**:资源健康。
|
||||
* **已降级**:资源已经被降级。
|
||||
* **进行中**:资源正在同步。默认返回该状态。
|
||||
* **暂停**:资源已经被暂停并等待恢复。
|
||||
* **未知**:资源健康状态未知。
|
||||
* **丢失**:资源已缺失。
|
||||
|
||||
|同步状态
|
||||
|持续部署的同步状态。主要包含以下几种状态:
|
||||
|
||||
* **已同步**:资源同步已完成。
|
||||
* **未同步**:资源的实际运行状态和期望状态不一致。
|
||||
* **未知**:资源同步状态未知。
|
||||
|
||||
|部署位置
|
||||
|资源部署的集群和项目。
|
||||
|
||||
|更新时间
|
||||
|资源更新的时间。
|
||||
|===
|
||||
--
|
||||
|
||||
. 点击持续部署右侧的image:/images/ks-qkcp/zh/icons/more.svg[more,18,18],您可以执行以下操作:
|
||||
+
|
||||
--
|
||||
* **编辑信息**:编辑别名和描述信息。
|
||||
|
||||
* **编辑 YAML**:编辑持续部署的 YAML 文件。
|
||||
|
||||
* **同步**:触发资源同步。
|
||||
|
||||
* **删除**:删除持续部署。
|
||||
|
||||
//warning
|
||||
[.admon.warning,cols="a"]
|
||||
|===
|
||||
|警告
|
||||
|
||||
|
|
||||
|
||||
删除持续部署的同时会删掉和该持续部署关联的资源。请谨慎操作。
|
||||
|===
|
||||
|
||||
--
|
||||
|
||||
. 点击已创建的持续部署进入详情页面,查看同步状态和同步结果。
|
||||
|
||||
|
||||
== 访问已创建的应用
|
||||
|
||||
. 进入持续部署所属的项目,在左侧导航栏,点击**应用负载** > **服务**。
|
||||
|
||||
. 在右侧的**服务**区域,找到已部署的应用,并点击右侧image:/images/ks-qkcp/zh/icons/more.svg[more,18,18],选择**编辑外部访问**。
|
||||
|
||||
. 在**访问模式**中选择 **NodePort**,点击**确定**。
|
||||
|
||||
. 在服务列表页面的**外部访问**列,查看暴露的端口,通过 {Node IP}:{NodePort} 访问此应用。
|
||||
+
|
||||
--
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
在访问服务之前,请确保安全组中的端口已打开。
|
||||
|===
|
||||
--
|
||||
|
|
@ -1,101 +0,0 @@
|
|||
---
|
||||
title: "导入代码仓库"
|
||||
linkTitle: "导入代码仓库"
|
||||
keywords: "Kubernetes, KubeSphere, DevOps 项目, 使用 DevOps"
|
||||
description: "介绍如何管理 DevOps 项目,以及如何在 DevOps 项目中管理流水线和 DevOps 项目设置。"
|
||||
weight: 04
|
||||
---
|
||||
|
||||
|
||||
{ks_product_right}支持导入 GitHub、GitLab、Bitbucket 或其它基于 Git 的代码仓库,如 Gitee。下面以 Github 仓库为例,展示如何导入代码仓库。
|
||||
|
||||
|
||||
== 前提条件
|
||||
|
||||
* {ks_product_right}平台需要安装并启用 **DevOps** 扩展组件。
|
||||
|
||||
* 已有一个企业空间、一个 DevOps 项目和一个用户 (例如 **project-regular**),并已邀请该用户至 DevOps 项目且授予 **operator** 角色。请参阅link:../05-devops-settings/02-role-and-member-management[角色和成员管理]。
|
||||
|
||||
|
||||
== 操作步骤
|
||||
|
||||
. 以 **project-regular** 用户登录{ks_product_both} Web 控制台。
|
||||
|
||||
. 点击**企业空间管理**并进入您的 DevOps 项目。
|
||||
|
||||
. 在左侧导航栏,点击**代码仓库**。
|
||||
|
||||
. 在右侧的代码仓库页面,点击**添加**。
|
||||
|
||||
. 在**导入代码仓库**对话框,输入代码仓库名称,点击选择代码仓库。您也可以为代码仓库设置别名和添加描述信息。
|
||||
+
|
||||
--
|
||||
下表列举了支持导入的代码仓库和参数设置项。以下步骤以 GitHub 为例。
|
||||
|
||||
[%header,cols="1a,4a"]
|
||||
|===
|
||||
|参数 |描述
|
||||
|
||||
|GitHub
|
||||
|**凭证**:选择访问代码仓库的凭证。
|
||||
|
||||
|GitLab
|
||||
|
|
||||
* **GitLab 服务器地址**:选择 GitLab 服务器地址,默认值为 link:https://gitlab.com[]。
|
||||
* **项目组/所有者**:输入 GitLab 账号。
|
||||
* **凭证**:选择访问代码仓库的凭证。
|
||||
* **代码仓库**:选择代码仓库。
|
||||
|
||||
|Bitbucket
|
||||
|
|
||||
* **Bitbucket 服务器地址**:设置 Bitbucket 服务器地址。
|
||||
* **凭证**:选择访问代码仓库的凭证。
|
||||
|
||||
|Git
|
||||
|
|
||||
* **代码仓库地址**:输入代码仓库地址,如 link:https://gitee.com[]。
|
||||
* **凭证**:选择访问代码仓库的凭证。
|
||||
|===
|
||||
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
如需使用 GitLab 私有仓库,请参阅link:../02-pipelines/04-gitlab-multibranch-pipeline/[使用 GitLab 创建多分支流水线]。
|
||||
|
||||
|===
|
||||
--
|
||||
|
||||
. 在**凭证**区域,点击**创建凭证**。在弹出的**创建凭证**对话框,设置以下参数,点击**确定**。
|
||||
+
|
||||
--
|
||||
* **名称**:输入凭证名称,如 **github-id**。
|
||||
* **类型**:取值包括**用户名和密码**、**SSH 密钥**和**访问令牌**。在 DevOps 项目中,建议使用**用户名和密码**。
|
||||
// * **类型**:取值包括**用户名和密码**、**SSH 密钥**、**访问令牌**和 **kubeconfig**。在 DevOps 项目中,建议使用**用户名和密码**。
|
||||
* **用户名**:此处默认用户名为 **admin**。
|
||||
* **密码/令牌**:输入您的 GitHub 令牌。
|
||||
* **描述**:添加描述信息。
|
||||
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
|
||||
更多关于如何添加凭证的信息,请参阅link:../05-devops-settings/01-credential-management/[凭证管理]。
|
||||
|===
|
||||
--
|
||||
|
||||
. 在**凭证**下拉列表中,选择创建的凭证,点击**确定**。
|
||||
. 在弹出的 GitHub 仓库中,选择代码仓库,点击**确定**。
|
||||
|
||||
. 点击代码仓库右侧的image:/images/ks-qkcp/zh/icons/more.svg[more,18,18],可以执行以下操作:
|
||||
+
|
||||
--
|
||||
* **编辑**:修改代码仓库别名和描述信息,以及重新选择代码仓库。
|
||||
* **编辑 YAML**:编辑代码仓库 YAML 文件。
|
||||
* **删除**:删除代码仓库。
|
||||
--
|
||||
|
|
@ -1,185 +0,0 @@
|
|||
---
|
||||
title: "凭证管理"
|
||||
linkTitle: "凭证管理"
|
||||
keywords: "Kubernetes, KubeSphere, DevOps 项目, 使用 DevOps"
|
||||
description: "介绍如何管理 DevOps 项目,以及如何在 DevOps 项目中管理流水线和 DevOps 项目设置。"
|
||||
weight: 01
|
||||
---
|
||||
|
||||
|
||||
凭证是包含敏感信息的对象,例如用户名和密码、SSH 密钥和令牌 (Token)。当{ks_product_left} DevOps 流水线运行时,会与外部环境中的对象进行交互,以执行一系列任务,包括拉取代码、推送和拉取镜像以及运行脚本等。此过程中需要提供相应的凭证,而这些凭证不会明文出现在流水线中。
|
||||
|
||||
具有必要权限的 DevOps 项目用户可以为 Jenkins 流水线配置凭证。用户在 DevOps 项目中添加或配置这些凭证后,便可以在 DevOps 项目中使用这些凭证与第三方应用程序进行交互。
|
||||
|
||||
目前,您可以在 DevOps 项目中创建以下类型的凭证:
|
||||
|
||||
* **用户名和密码**:用户名和密码,可以作为单独的组件处理,或者作为用冒号分隔的字符串(格式为 **username:password**)处理,例如 GitHub 和 GitLab 账户。
|
||||
|
||||
* **SSH 密钥**:带有私钥的用户名,SSH 公钥/私钥对。
|
||||
|
||||
* **访问令牌**:具有访问权限的令牌。
|
||||
|
||||
// * **kubeconfig**:用于配置跨集群认证。
|
||||
|
||||
本文档演示如何在 DevOps 项目中创建和管理凭证。有关如何使用凭证的更多信息,请参阅link:../../02-pipelines/02-create-a-pipeline-using-jenkinsfile/[使用 Jenkinsfile 创建流水线]和link:../../02-pipelines/01-create-a-pipeline-using-graphical-editing-panel/[使用图形编辑面板创建流水线]。
|
||||
|
||||
|
||||
== 前提条件
|
||||
|
||||
* {ks_product_right}平台需要安装并启用 **DevOps** 扩展组件。
|
||||
|
||||
* 已有一个企业空间、一个 DevOps 项目和一个用户 (例如 **project-regular**),并已邀请该用户至 DevOps 项目且授予 **operator** 角色。请参阅link:../02-role-and-member-management[角色和成员管理]。
|
||||
|
||||
|
||||
== 创建凭证
|
||||
|
||||
. 以 **project-regular** 用户登录{ks_product_both} Web 控制台。
|
||||
|
||||
. 点击**企业空间管理**并进入您的 DevOps 项目。
|
||||
|
||||
. 在左侧导航栏,选择 **DevOps 项目设置 > 凭证**。
|
||||
|
||||
. 在右侧的**凭证**区域,点击**创建**。
|
||||
|
||||
. 在弹出的**创建凭证**对话框,输入凭证名称,并选择凭证类型。不同的凭证类型需要设置的参数不同,具体请参考以下内容。
|
||||
+
|
||||
====
|
||||
* 创建用户名和密码凭证
|
||||
+
|
||||
--
|
||||
以创建 GitHub 用户凭证为例,您需要设置以下参数:
|
||||
|
||||
[%header,cols="1a,2a"]
|
||||
|===
|
||||
|参数|描述
|
||||
|
||||
|名称
|
||||
|设置凭证名称,如 **github-id**。
|
||||
|
||||
|
||||
|类型
|
||||
|选择**用户名和密码**。
|
||||
|
||||
|
||||
|用户名
|
||||
|输入您的 GitHub 用户名。
|
||||
|
||||
|密码/令牌
|
||||
|输入您的 GitHub 令牌。
|
||||
|
||||
|描述
|
||||
|凭证的简介。
|
||||
|===
|
||||
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
* 自 2021 年 8 月起,GitHub 要求使用基于令牌的身份验证,此处需要输入令牌,而非 GitHub 密码。有关如何生成令牌,请参阅link:https://docs.github.com/cn/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token[创建个人访问令牌]。
|
||||
|
||||
* 如果您的账户或密码中包含任何特殊字符,例如 **@** 和 **$**,可能会因为无法识别而在流水线运行时导致错误。在这种情况下,您需要先在一些第三方网站(例如 link:https://www.urlencoder.org/[urlencoder])上对账户或密码进行编码,然后将输出结果复制粘贴作为您的凭证信息。
|
||||
|
||||
|===
|
||||
--
|
||||
|
||||
* 创建 SSH 密钥凭证
|
||||
+
|
||||
--
|
||||
|
||||
[%header,cols="1a,2a"]
|
||||
|===
|
||||
|参数|描述
|
||||
|
||||
|名称
|
||||
|设置凭证名称。
|
||||
|
||||
|
||||
|类型
|
||||
|选择**SSH 密钥**。
|
||||
|
||||
|
||||
|用户名
|
||||
|输入您的用户名。
|
||||
|
||||
|私钥
|
||||
|输入您的 SSH 密钥。
|
||||
|
||||
|密码短语
|
||||
|输入密码短语。为了更好保护您的账户安全,建议设置该参数。
|
||||
|
||||
|描述
|
||||
|凭证的简介。
|
||||
|===
|
||||
--
|
||||
|
||||
* 创建访问令牌凭证
|
||||
+
|
||||
--
|
||||
|
||||
[%header,cols="1a,2a"]
|
||||
|===
|
||||
|参数|描述
|
||||
|
||||
|名称
|
||||
|设置凭证名称。
|
||||
|
||||
|类型
|
||||
|选择**访问令牌**。
|
||||
|
||||
|令牌
|
||||
|输入您的令牌。
|
||||
|
||||
|描述
|
||||
|凭证的简介。
|
||||
|===
|
||||
--
|
||||
|
||||
// * 创建 kubeconfig 凭证
|
||||
// +
|
||||
// --
|
||||
// [%header,cols="1a,2a"]
|
||||
// |===
|
||||
// |参数|描述
|
||||
|
||||
// |名称
|
||||
// |设置凭证名称,例如 **demo-kubeconfig**。
|
||||
|
||||
// |类型
|
||||
// |选择 **kubeconfig**。
|
||||
|
||||
// |内容
|
||||
// |系统自动获取当前 Kubernetes 集群的 kubeconfig 文件内容,并自动填充该字段,您无须做任何更改。但是访问其他集群时,您可能需要更改 kubeconfig。
|
||||
|
||||
// |描述
|
||||
// |凭证的简介。
|
||||
// |===
|
||||
|
||||
// //note
|
||||
// [.admon.note,cols="a"]
|
||||
// |===
|
||||
// |说明
|
||||
|
||||
// |
|
||||
// 用于配置集群访问的文件称为 kubeconfig 文件。这是引用配置文件的通用方法。有关更多信息,请参阅 link:https://kubernetes.io/zh/docs/concepts/configuration/organize-cluster-access-kubeconfig/[Kubernetes 官方文档]。
|
||||
// |===
|
||||
// --
|
||||
====
|
||||
|
||||
|
||||
== 查看和管理凭证
|
||||
|
||||
. 点击已创建的凭证,进入其详情页面,查看凭证详情和与此凭证相关的所有事件。
|
||||
|
||||
. 点击**编辑**修改凭证信息,点击**删除**删除凭证。
|
||||
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
编辑凭证时,{ks_product_right}不会显示现有用户名或密码信息。如果输入新的用户名和密码,则前一个将被覆盖。
|
||||
|===
|
||||
|
||||
|
|
@ -1,119 +0,0 @@
|
|||
---
|
||||
title: "角色和成员管理"
|
||||
linkTitle: "角色和成员管理"
|
||||
keywords: "Kubernetes, KubeSphere, DevOps 项目, 使用 DevOps"
|
||||
description: "介绍如何管理 DevOps 项目,以及如何在 DevOps 项目中管理流水线和 DevOps 项目设置。"
|
||||
weight: 02
|
||||
---
|
||||
|
||||
|
||||
本文档演示如何在 DevOps 项目中管理角色和成员。
|
||||
|
||||
在 DevOps 项目范围内,您可以向角色授予以下资源的权限:
|
||||
|
||||
* DevOps 项目设置
|
||||
* 流水线
|
||||
* 凭证
|
||||
* 持续部署
|
||||
* 代码仓库
|
||||
* 访问控制
|
||||
|
||||
|
||||
== 前提条件
|
||||
|
||||
* 已创建一个 DevOps 项目,例如 **demo-devops**。
|
||||
|
||||
* 已有一个在 DevOps 项目级别具有 **admin** 角色的用户(例如 **devops-admin**)。
|
||||
|
||||
|
||||
== 内置角色
|
||||
|
||||
在 **DevOps 项目角色**中,有三个可用的内置角色,如下所示。创建 DevOps 项目时,会自动创建内置角色,并且无法编辑或删除这些角色。
|
||||
|
||||
[%header,cols="1a,4a"]
|
||||
|===
|
||||
|内置角色|描述信息
|
||||
|
||||
|viewer
|
||||
|DevOps 项目观察者,查看 DevOps 项目中的所有资源。
|
||||
|
||||
|operator
|
||||
|DevOps 项目普通成员,管理 DevOps 凭证和流水线以及查看 DevOps 项目中的成员和角色。
|
||||
|
||||
|admin
|
||||
|DevOps 项目管理员,管理 DevOps 项目中的所有资源。
|
||||
|===
|
||||
|
||||
|
||||
== 创建 DevOps 项目角色
|
||||
|
||||
. 以 **devops-admin** 用户登录 {ks_product_both} Web 控制台。
|
||||
|
||||
. 前往 **DevOps 项目**页面点击一个 DevOps 项目(例如 **demo-devops**)。
|
||||
+
|
||||
--
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
本文档使用 **devops-admin** 账户作为示例。只要账户被授予的角色包含 DevOps 项目级别**访问控制**中的**成员查看**、**角色管理**和**角色查看**的权限,此账户便可以创建 DevOps 项目角色。
|
||||
|
||||
|===
|
||||
--
|
||||
|
||||
. 选择 **DevOps 项目设置**中的 **DevOps 项目角色**,点击**创建**。
|
||||
|
||||
. 设置**名称**。在本示例中,将创建一个名为 **pipeline-creator** 的角色。点击**编辑权限**继续。
|
||||
|
||||
. 在**流水线**页签,选择您希望授予该角色的权限。例如,为此角色选择**流水线管理**和**流水线查看**。点击**确定**完成操作。
|
||||
+
|
||||
--
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
**依赖于**表示当前授权项依赖所列出的授权项,勾选该权限后系统会自动选上所有依赖权限。
|
||||
|===
|
||||
--
|
||||
|
||||
. 新创建的角色将显示在 **DevOps 项目角色**列表中。点击右侧的image:/images/ks-qkcp/zh/icons/more.svg[more,18,18]对其进行编辑。
|
||||
+
|
||||
--
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
**pipeline-creator** 角色仅被授予**流水线管理**和**流水线查看**权限,可能无法满足您的实际需求。本示例仅用于演示,请根据实际需要创建自定义角色。
|
||||
|
||||
|===
|
||||
--
|
||||
|
||||
|
||||
== 邀请 DevOps 项目成员
|
||||
|
||||
. 在 **DevOps 项目设置**中选择 **DevOps 项目成员**,然后点击**邀请**。
|
||||
|
||||
. 点击image:/images/ks-qkcp/zh/icons/add-dark.svg[add,18,18]邀请账户加入此 DevOps 项目,并向此账户授予 **pipeline-creator** 角色。
|
||||
+
|
||||
--
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
必须先邀请用户加入 DevOps 项目所在的企业空间。
|
||||
|
||||
|===
|
||||
--
|
||||
|
||||
. 点击**确定**将用户添加到此 DevOps 项目。在 **DevOps 项目成员**页面,将显示新邀请的成员。
|
||||
|
||||
. 点击项目成员右侧的image:/images/ks-qkcp/zh/icons/more.svg[more,18,18],修改现有成员的角色或从 DevOps 项目中删除该用户。
|
||||
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
---
|
||||
title: "添加持续部署白名单"
|
||||
linkTitle: "添加持续部署白名单"
|
||||
keywords: "Kubernetes, KubeSphere, DevOps 项目, 使用 DevOps"
|
||||
description: "介绍如何管理 DevOps 项目,以及如何在 DevOps 项目中管理流水线和 DevOps 项目设置。"
|
||||
weight: 03
|
||||
---
|
||||
|
||||
|
||||
{ks_product_right}支持通过设置白名单,限制资源持续部署的代码仓库和目标位置。
|
||||
|
||||
本文档介绍如何添加持续部署白名单。
|
||||
|
||||
== 前提条件
|
||||
|
||||
* {ks_product_right}平台需要安装并启用 **DevOps** 扩展组件。
|
||||
|
||||
* 已有一个企业空间、一个 DevOps 项目和一个用户 (例如 **project-regular**),并已邀请该用户至 DevOps 项目且授予 **operator** 角色。请参阅link:../02-role-and-member-management[角色和成员管理]。
|
||||
|
||||
* 已link:../../04-import-code-repositories/[导入代码仓库]。
|
||||
|
||||
== 操作步骤
|
||||
|
||||
. 以 **project-regular** 用户登录{ks_product_both} Web 控制台。
|
||||
|
||||
. 点击**企业空间管理**并进入您的 DevOps 项目。
|
||||
|
||||
. 在左侧导航栏,选择 **DevOps 项目设置 > 基本信息**。
|
||||
|
||||
. 在右侧**基本信息**下的**持续部署白名单**区域,点击**编辑白名单**。
|
||||
|
||||
. 在弹出的**编辑白名单**对话框,选择代码仓库、部署集群和项目,点击**确定**。点击**添加**可添加多个代码仓库和部署位置。
|
||||
|
|
@ -1,42 +0,0 @@
|
|||
---
|
||||
title: "为依赖项缓存设置 CI 节点"
|
||||
linkTitle: "为依赖项缓存设置 CI 节点"
|
||||
keywords: "Kubernetes, KubeSphere, DevOps 项目, 使用 DevOps"
|
||||
description: "介绍如何管理 DevOps 项目,以及如何在 DevOps 项目中管理流水线和 DevOps 项目设置。"
|
||||
weight: 04
|
||||
---
|
||||
|
||||
|
||||
构建应用程序通常需要拉取不同的依赖项。拉取过程中可能会遇到某些问题,例如拉取时间长、网络不稳定,进而导致构建失败。为了提供更可靠和稳定的环境,可以配置节点或节点组,专门用于持续集成 (CI),并通过使用缓存来加快构建过程。
|
||||
|
||||
本文档演示如何设置 CI 节点,以便{ks_product_both}将流水线的任务调度到这些节点。
|
||||
// 本文档演示如何设置 CI 节点,以便{ks_product_both}将流水线的任务以及 S2I/B2I 构建的任务调度到这些节点。
|
||||
|
||||
== 前提条件
|
||||
|
||||
您需要在{ks_product_both}平台具有**集群管理**权限。
|
||||
|
||||
== 标记 CI 节点
|
||||
|
||||
. 以具有**集群管理**权限的账户登录{ks_product_left} Web 控制台。
|
||||
|
||||
. 点击**集群管理**,进入一个集群。
|
||||
|
||||
. 在左侧导航栏中选择**节点**下的**集群节点**,查看当前集群中的现有节点。
|
||||
|
||||
. 从列表中选择一个节点用来运行 CI 任务。点击节点名称转到其详情页面,点击**更多操作** > **编辑标签**。
|
||||
|
||||
. 在弹出的对话框中,在键为 **node-role.kubernetes.io/worker** 的后面,输入 **ci** 作为此标签的值,点击**确定**。
|
||||
|
||||
|
||||
== 给 CI 节点添加污点
|
||||
|
||||
流水线一般会根据link:https://kubernetes.io/zh/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity[节点亲和性]来确定是否调度任务到某一节点。如果要将节点专用于 CI 任务,即不允许将其他工作负载调度到该节点,可以在该节点上添加link:https://kubernetes.io/zh/docs/concepts/scheduling-eviction/taint-and-toleration/[污点]。
|
||||
|
||||
// 流水线和 S2I/B2I 工作流一般会根据link:https://kubernetes.io/zh/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity[节点亲和性]来确定是否调度任务到某一节点。如果要将节点专用于 CI 任务,即不允许将其他工作负载调度到该节点,可以在该节点上添加link:https://kubernetes.io/zh/docs/concepts/scheduling-eviction/taint-and-toleration/[污点]。
|
||||
|
||||
. 点击**更多操作** > **编辑污点**。
|
||||
|
||||
. 点击**添加**,输入键 **node.kubernetes.io/ci** 而不指定值。根据需要选择**阻止调度**、**尽可能阻止调度**或**阻止调度并驱逐现有容器组** 。
|
||||
|
||||
. 点击**确定**。{ks_product_right}将根据您设置的污点调度任务。
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
---
|
||||
title: "DevOps 项目设置"
|
||||
linkTitle: "DevOps 项目设置"
|
||||
keywords: "Kubernetes, KubeSphere, DevOps 项目, 使用 DevOps"
|
||||
description: "介绍如何管理 DevOps 项目,以及如何在 DevOps 项目中管理流水线和 DevOps 项目设置。"
|
||||
layout: "second"
|
||||
weight: 05
|
||||
---
|
||||
|
||||
|
||||
本节介绍如何管理 DevOps 项目的设置。
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
---
|
||||
title: "使用 DevOps"
|
||||
linkTitle: "使用 DevOps"
|
||||
keywords: "Kubernetes, KubeSphere, DevOps 项目, 使用 DevOps"
|
||||
description: "介绍如何使用 DevOps 功能。"
|
||||
layout: "second"
|
||||
weight: 03
|
||||
---
|
||||
|
||||
|
||||
本节介绍如何使用 DevOps 功能。
|
||||
|
|
@ -1,373 +0,0 @@
|
|||
---
|
||||
title: "将 SonarQube 集成到流水线"
|
||||
linkTitle: "将 SonarQube 集成到流水线"
|
||||
keywords: "Kubernetes, KubeSphere, DevOps 项目"
|
||||
description: "介绍如何管理 DevOps 项目,以及如何在 DevOps 项目中管理流水线和 DevOps 项目设置。"
|
||||
weight: 01
|
||||
---
|
||||
|
||||
|
||||
link:https://www.sonarqube.org/[SonarQube] 是一种主流的代码质量持续检测工具,可用于代码库的静态和动态分析。SonarQube 集成到{ks_product_both}流水线后,如果在运行的流水线中检测到问题,将会在仪表板上直接显示常见代码问题。
|
||||
|
||||
本文档演示如何将 SonarQube 集成到流水线中。在link:../../03-how-to-use/02-pipelines/02-create-a-pipeline-using-jenkinsfile/[使用 Jenkinsfile 创建流水线]之前,请先阅读本节内容。
|
||||
|
||||
|
||||
== 前提条件
|
||||
|
||||
{ks_product_right}平台需要安装并启用 **DevOps** 扩展组件。
|
||||
|
||||
|
||||
== 安装 SonarQube 服务器
|
||||
|
||||
要将 SonarQube 集成到您的流水线,必须先安装 SonarQube 服务器。
|
||||
|
||||
. 安装 Helm,以便使用该工具安装 SonarQube。例如,运行以下命令安装 Helm 3:
|
||||
+
|
||||
--
|
||||
// Bash
|
||||
[,bash]
|
||||
----
|
||||
curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3|bash
|
||||
----
|
||||
|
||||
查看 Helm 版本。
|
||||
|
||||
// Bash
|
||||
[,bash]
|
||||
----
|
||||
helm version
|
||||
|
||||
version.BuildInfo{Version:"v3.4.1", GitCommit:"c4e74854886b2efe3321e185578e6db9be0a6e29", GitTreeState:"clean", GoVersion:"go1.14.11"}
|
||||
----
|
||||
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
有关更多信息,请参阅 link:https://helm.sh/zh/docs/intro/install/[Helm 文档]。
|
||||
|===
|
||||
--
|
||||
|
||||
. 执行以下命令安装 SonarQube 服务器。
|
||||
+
|
||||
--
|
||||
// Bash
|
||||
[,bash]
|
||||
----
|
||||
|
||||
helm upgrade --install sonarqube sonarqube --repo https://charts.kubesphere.io/main -n \
|
||||
kubesphere-devops-system --create-namespace --set service.type=NodePort
|
||||
|
||||
----
|
||||
|
||||
// Note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
|
||||
请确保使用 Helm 3 安装 SonarQube 服务器。
|
||||
|===
|
||||
--
|
||||
|
||||
|
||||
== 获取 SonarQube 控制台地址
|
||||
|
||||
. 执行以下命令获取 SonarQube NodePort。
|
||||
+
|
||||
--
|
||||
// Bash
|
||||
[,bash]
|
||||
----
|
||||
export NODE_PORT=$(kubectl get --namespace kubesphere-devops-system -o jsonpath="{.spec.ports[0].nodePort}" services sonarqube-sonarqube)
|
||||
|
||||
export NODE_IP=$(kubectl get nodes --namespace kubesphere-devops-system -o jsonpath="{.items[0].status.addresses[0].address}")
|
||||
|
||||
echo http://$NODE_IP:$NODE_PORT
|
||||
----
|
||||
--
|
||||
|
||||
. 预期输出结果:(您的 NodeIP 和 NodePort 应该不同)
|
||||
+
|
||||
--
|
||||
// Bash
|
||||
[,bash]
|
||||
----
|
||||
http://10.77.1.201:31377
|
||||
----
|
||||
--
|
||||
|
||||
|
||||
== 配置 SonarQube 服务器
|
||||
|
||||
=== 步骤 1:访问 SonarQube 控制台
|
||||
|
||||
. 执行以下命令查看 SonarQube 的状态。注意,只有在 SonarQube 启动并运行后才能访问 SonarQube 控制台。
|
||||
+
|
||||
--
|
||||
// Bash
|
||||
[,bash]
|
||||
----
|
||||
kubectl get pod -n kubesphere-devops-system
|
||||
----
|
||||
--
|
||||
|
||||
. 在浏览器中访问 SonarQube 控制台 link:http://NodeIP:NodePort[]。
|
||||
|
||||
. 点击右上角的 **Log in**,然后使用默认账户 **admin/admin** 登录。
|
||||
+
|
||||
--
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
|
||||
取决于实例的部署位置,您可能需要设置必要的端口转发规则,并在您的安全组中放行该端口,以便访问 SonarQube。
|
||||
|===
|
||||
--
|
||||
|
||||
=== 步骤 2:创建 SonarQube 管理员令牌 (Token)
|
||||
|
||||
. 点击右上角字母 **A**,然后从菜单中选择 **My Account** 以转到 **Profile** 页面。
|
||||
|
||||
. 点击 **Security** 并输入令牌名称,例如 **kubesphere**。
|
||||
|
||||
. 点击 **Generate** 并复制此令牌。
|
||||
+
|
||||
--
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
如提示所示,您无法再次查看此令牌,因此请确保复制成功。
|
||||
|===
|
||||
--
|
||||
|
||||
=== 步骤 3:创建 Webhook 服务器
|
||||
|
||||
. 执行以下命令获取 SonarQube Webhook 的地址。
|
||||
+
|
||||
--
|
||||
// Bash
|
||||
[,bash]
|
||||
----
|
||||
|
||||
export NODE_PORT=$(kubectl get --namespace kubesphere-devops-system -o jsonpath="{.spec.ports[0].nodePort}" services devops-jenkins)
|
||||
|
||||
export NODE_IP=$(kubectl get nodes --namespace kubesphere-devops-system -o jsonpath="{.items[0].status.addresses[0].address}")
|
||||
|
||||
echo http://$NODE_IP:$NODE_PORT/sonarqube-webhook/
|
||||
|
||||
----
|
||||
--
|
||||
|
||||
. 预期输出结果:
|
||||
+
|
||||
--
|
||||
// Bash
|
||||
[,bash]
|
||||
----
|
||||
|
||||
http://10.77.1.201:30180/sonarqube-webhook/
|
||||
|
||||
----
|
||||
--
|
||||
|
||||
. 依次点击 **Administration**、**Configuration** 和 **Webhooks** 创建一个 Webhook。
|
||||
|
||||
. 点击 **Create**。
|
||||
|
||||
. 在弹出的对话框中输入 **Name** 和 **Jenkins Console URL**(即 SonarQube Webhook 地址)。点击 **Create** 完成操作。
|
||||
|
||||
=== 步骤 4:将 SonarQube 配置添加到 ks-installer
|
||||
|
||||
. 执行以下命令编辑 **ks-installer**。
|
||||
+
|
||||
--
|
||||
// Bash
|
||||
[,bash]
|
||||
----
|
||||
|
||||
kubectl edit cc -n kubesphere-system ks-installer
|
||||
|
||||
----
|
||||
--
|
||||
|
||||
. 搜寻至 **devops**。添加字段 **sonarqube** 并在其下方指定 **externalSonarUrl** 和 **externalSonarToken**。
|
||||
+
|
||||
--
|
||||
[,yaml]
|
||||
----
|
||||
devops:
|
||||
enabled: true
|
||||
jenkinsJavaOpts_MaxRAM: 2g
|
||||
jenkinsJavaOpts_Xms: 512m
|
||||
jenkinsJavaOpts_Xmx: 512m
|
||||
jenkinsMemoryLim: 2Gi
|
||||
jenkinsMemoryReq: 1500Mi
|
||||
jenkinsVolumeSize: 8Gi
|
||||
sonarqube: # Add this field manually.
|
||||
externalSonarUrl: http://10.77.1.201:31377 # The SonarQube IP address.
|
||||
externalSonarToken: 00ee4c512fc987d3ec3251fdd7493193cdd3b91d # The SonarQube admin token created above.
|
||||
|
||||
----
|
||||
--
|
||||
|
||||
. 完成操作后保存此文件。
|
||||
|
||||
=== 步骤 5:将 SonarQube 服务器添加至 Jenkins
|
||||
|
||||
. 执行以下命令获取 Jenkins 的地址。
|
||||
+
|
||||
--
|
||||
// Bash
|
||||
[,bash]
|
||||
----
|
||||
|
||||
export NODE_PORT=$(kubectl get --namespace kubesphere-devops-system -o jsonpath="{.spec.ports[0].nodePort}" services devops-jenkins)
|
||||
|
||||
export NODE_IP=$(kubectl get nodes --namespace kubesphere-devops-system -o jsonpath="{.items[0].status.addresses[0].address}")
|
||||
|
||||
echo http://$NODE_IP:$NODE_PORT
|
||||
|
||||
----
|
||||
--
|
||||
|
||||
. 获取 Jenkins 的端口号。
|
||||
+
|
||||
--
|
||||
// Bash
|
||||
[,bash]
|
||||
----
|
||||
|
||||
http://10.77.1.201:30180
|
||||
|
||||
----
|
||||
--
|
||||
|
||||
. 使用地址 link:http://NodeIP:30180[] 访问 Jenkins。
|
||||
+
|
||||
--
|
||||
安装 DevOps 时,默认情况下也会安装 Jenkins 仪表板。此外,Jenkins 还配置有{ks_product_left} LDAP,这意味着您可以直接使用{ks_product_both}账户登录 Jenkins。有关配置 Jenkins 的更多信息,请参阅 link:../../03-how-to-use/02-pipelines/07-jenkins-setting/[Jenkins 系统设置]。
|
||||
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
取决于实例的部署位置,您可能需要设置必要的端口转发规则,并在您的安全组中放行端口 **30180**,以便访问 Jenkins。
|
||||
|
||||
|===
|
||||
--
|
||||
|
||||
. 点击左侧导航栏中的**系统管理**。
|
||||
|
||||
. 向下滚动并点击**系统配置**。
|
||||
|
||||
. 搜寻到 **SonarQube servers**,然后点击 **Add SonarQube**。
|
||||
|
||||
. 输入 **Name** 和 **Server URL** (link:http://NodeIP:NodePort[])。 点击**添加**,选择 **Jenkins**,然后在弹出的对话框中用 SonarQube 管理员令牌创建凭证(如下方第二张截图所示)。创建凭证后,从 **Server authentication token** 旁边的下拉列表中选择该凭证。点击**应用**完成操作。
|
||||
+
|
||||
--
|
||||
image:/images/ks-qkcp/zh/devops-user-guide/tool-integration/integrate-sonarqube-into-pipelines/sonarqube-jenkins-settings.png[,100%]
|
||||
|
||||
image:/images/ks-qkcp/zh/devops-user-guide/tool-integration/integrate-sonarqube-into-pipelines/add-credentials.png[,100%]
|
||||
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
如果点击**添加**按钮无效,前往**系统管理**下的 **Manage Credentials** 并点击 **Stores scoped to Jenkins** 下的 **Jenkins**,再点击**全局凭据 (unrestricted)**,然后点击左侧导航栏的**添加凭据**,参考上方第二张截图用 SonarQube 管理员令牌添加凭证。添加凭证后,从 **Server authentication token** 旁边的下拉列表中选择该凭证。
|
||||
|
||||
|===
|
||||
--
|
||||
|
||||
=== 步骤 6:将 sonarqubeURL 添加到{ks_product_both}控制台
|
||||
|
||||
您需要指定 **sonarqubeURL**,以便可以直接从{ks_product_both} Web 控制台访问 SonarQube。
|
||||
|
||||
. 执行以下命令:
|
||||
+
|
||||
--
|
||||
// Bash
|
||||
[,bash]
|
||||
----
|
||||
|
||||
kubectl editcm -n kubesphere-system ks-console-config
|
||||
|
||||
----
|
||||
--
|
||||
|
||||
. 搜寻到 **data:client:enableKubeConfig**,在下方添加 **devops** 字段并指定 **sonarqubeURL**。
|
||||
+
|
||||
--
|
||||
[,yaml]
|
||||
----
|
||||
client:
|
||||
enableKubeConfig: true
|
||||
devops: # 手动添加该字段。
|
||||
sonarqubeURL: http://10.77.1.201:31377 # SonarQube IP 地址。
|
||||
|
||||
----
|
||||
--
|
||||
|
||||
. 保存该文件。
|
||||
|
||||
=== 步骤 7:重启服务
|
||||
|
||||
执行以下命令重启服务。
|
||||
|
||||
// Bash
|
||||
[,bash]
|
||||
----
|
||||
|
||||
kubectl -n kubesphere-devops-system rollout restart deploy devops-apiserver
|
||||
|
||||
----
|
||||
|
||||
// Bash
|
||||
[,bash]
|
||||
----
|
||||
|
||||
kubectl -n kubesphere-system rollout restart deploy ks-console
|
||||
|
||||
----
|
||||
|
||||
|
||||
== 为新项目创建 SonarQube Token
|
||||
|
||||
创建一个 SonarQube 令牌,以便流水线在运行时可以与 SonarQube 通信。
|
||||
|
||||
. 在 SonarQube 控制台上,点击 **Create new project**。
|
||||
+
|
||||
image:/images/ks-qkcp/zh/devops-user-guide/tool-integration/integrate-sonarqube-into-pipelines/sonarqube-create-project.png[,100%]
|
||||
|
||||
. 输入项目密钥,例如 **java-demo**,然后点击 **Set Up**。
|
||||
+
|
||||
image:/images/ks-qkcp/zh/devops-user-guide/tool-integration/integrate-sonarqube-into-pipelines/jenkins-projet-key.png[,100%]
|
||||
|
||||
. 输入项目名称,例如 **java-sample**,然后点击 **Generate**。
|
||||
+
|
||||
image:/images/ks-qkcp/zh/devops-user-guide/tool-integration/integrate-sonarqube-into-pipelines/generate-a-token.png[,100%]
|
||||
|
||||
. 创建令牌后,点击 **Continue**。
|
||||
+
|
||||
image:/images/ks-qkcp/zh/devops-user-guide/tool-integration/integrate-sonarqube-into-pipelines/token-created.png[,100%]
|
||||
|
||||
. 分别选择 **Java** 和 **Maven**,复制下图所示绿色框中的序列号。如果要在流水线中使用,则需要在link:../../03-how-to-use/05-devops-settings/01-credential-management/[凭证]中添加此序列号。
|
||||
+
|
||||
image:/images/ks-qkcp/zh/devops-user-guide/tool-integration/integrate-sonarqube-into-pipelines/sonarqube-example.png[,100%]
|
||||
|
||||
== 在{ks_product_both}控制台查看结果
|
||||
|
||||
link:../../03-how-to-use/02-pipelines/02-create-a-pipeline-using-jenkinsfile/[使用 Jenkinsfile 创建流水线]或link:../../03-how-to-use/02-pipelines/01-create-a-pipeline-using-graphical-editing-panel/[使用图形编辑面板创建流水线]之后,即可查看代码质量分析的结果。
|
||||
|
|
@ -1,172 +0,0 @@
|
|||
---
|
||||
title: "将 Harbor 集成到流水线"
|
||||
linkTitle: "将 Harbor 集成到流水线"
|
||||
keywords: "Kubernetes, KubeSphere, DevOps 项目"
|
||||
description: "介绍如何管理 DevOps 项目,以及如何在 DevOps 项目中管理流水线和 DevOps 项目设置。"
|
||||
weight: 02
|
||||
---
|
||||
|
||||
本文档演示如何将 Harbor 集成到{ks_product_both}流水线。
|
||||
|
||||
== 前提条件
|
||||
|
||||
* {ks_product_right}平台需要安装并启用 **DevOps** 扩展组件。
|
||||
|
||||
* 已有一个企业空间、一个 DevOps 项目和一个用户 (例如 **project-regular**),并已邀请该用户至 DevOps 项目且授予 **operator** 角色。
|
||||
|
||||
== 安装 Harbor
|
||||
|
||||
执行以下命令,使用 Helm 3 安装 Harbor。
|
||||
|
||||
// Bash
|
||||
[,bash]
|
||||
----
|
||||
|
||||
helm repo add harbor https://helm.goharbor.io
|
||||
# 如需快速安装,您可以通过 NodePort 暴露 Harbor 并禁用 tls。
|
||||
# 请将 externalURL 设置为您的一个节点 IP,并确保 Jenkins 能够访问它。
|
||||
helm install harbor-release harbor/harbor --set expose.type=nodePort,externalURL=http://$ip:30002,expose.tls.enabled=false
|
||||
|
||||
----
|
||||
|
||||
== 获取 Harbor 凭证
|
||||
|
||||
. 安装 Harbor 后,访问 **<NodeIP>:30002** 并使用默认账户和密码 (**admin/Harbor12345**) 登录 Web 控制台。
|
||||
|
||||
. 在左侧导航栏中点击**项目**,然后点击**新建项目**。
|
||||
|
||||
. 在弹出的对话框中,设置项目名称 **ks-devops-harbor** 并点击**确定**。
|
||||
|
||||
. 点击刚刚创建的项目,在**机器人账户**页签下点击**添加机器人账户**。
|
||||
|
||||
. 在弹出的对话框中,为机器人账户设置名称 **robot-test** 并点击**添加**。请确保在**权限**中勾选推送制品的权限选框。
|
||||
|
||||
. 在弹出的对话框中,点击**导出到文件中**,保存该令牌。
|
||||
|
||||
== 启用 Insecure Registry
|
||||
|
||||
配置 Docker,使其忽略您 Harbor 仓库的安全性。
|
||||
|
||||
. 在您的主机上运行 **vim /etc/docker/daemon.json** 命令以编辑 **daemon.json** 文件,输入以下内容并保存更改。
|
||||
+
|
||||
--
|
||||
[,json]
|
||||
----
|
||||
{
|
||||
"insecure-registries" : ["103.61.38.55:30002"]
|
||||
}
|
||||
----
|
||||
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
请将 **103.61.38.55:30002** 替换为您自己的 Harbor 仓库地址。对于 Linux,**daemon.json** 文件的路径为 **/etc/docker/daemon.json**;对于 Windows,该文件的路径为 **C:\ProgramData\docker\config\daemon.json**。
|
||||
|===
|
||||
--
|
||||
|
||||
. 运行以下命令重启 Docker,使更改生效。
|
||||
+
|
||||
--
|
||||
[,bash]
|
||||
----
|
||||
sudo systemctl daemon-reload
|
||||
|
||||
sudo systemctl restart docker
|
||||
----
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
建议您在隔离的测试环境或者严格控制的离线环境中使用该方案。有关更多信息,请参阅 link:https://docs.docker.com/registry/insecure/#deploy-a-plain-http-registry[Deploy a plain HTTP registry]。完成上述操作后,即可在项目中部署工作负载时使用您 Harbor 仓库中的镜像。您需要为自己的 Harbor 仓库创建一个镜像密钥,然后在**容器镜像**页签下的**容器设置**中,选择您的 Harbor 仓库并输入镜像的绝对路径以搜索您的镜像。
|
||||
|
||||
|===
|
||||
--
|
||||
|
||||
== 创建凭证
|
||||
|
||||
. 以 **project-regular** 用户登录{ks_product_both} Web 控制台。
|
||||
. 点击**企业空间管理**并进入您的 DevOps 项目。
|
||||
. 在 **DevOps 项目设置**下的**凭证**页面为 Harbor 创建凭证。
|
||||
. 在**创建凭证**页面,设置凭证 ID (**robot-test**),**类型**选择**用户名和密码**,**用户名**字段必须和您刚刚下载的 JSON 文件中 **name** 的值相同,并在**密码/令牌**中输入 Harbor 令牌文件中 **token** 的值。
|
||||
|
||||
. 点击**确定**以保存。
|
||||
|
||||
== 创建流水线
|
||||
|
||||
. 转到**流水线**页面,点击**创建**。
|
||||
|
||||
. 在**基本信息**页签,输入名称 **demo-pipeline**,然后点击**下一步**。
|
||||
|
||||
. **高级设置**中使用默认值,点击**创建**。
|
||||
|
||||
== 编辑 Jenkinsfile
|
||||
|
||||
. 点击该流水线进入其详情页面,然后点击**编辑 Jenkinsfile**。
|
||||
|
||||
. 将以下内容复制粘贴至 Jenkinsfile。注意,必须将 **REGISTRY**、**HARBOR_NAMESPACE**、**APP_NAME** 和 **HARBOR_CREDENTIAL** 替换为您自己的值。
|
||||
+
|
||||
--
|
||||
[,json]
|
||||
----
|
||||
|
||||
pipeline {
|
||||
agent {
|
||||
node {
|
||||
label 'maven'
|
||||
}
|
||||
}
|
||||
|
||||
environment {
|
||||
// 您 Harbor 仓库的地址。
|
||||
REGISTRY = '103.61.38.55:30002'
|
||||
// 项目名称。
|
||||
// 请确保您的机器人账户具有足够的项目访问权限。
|
||||
HARBOR_NAMESPACE = 'ks-devops-harbor'
|
||||
// Docker 镜像名称。
|
||||
APP_NAME = 'docker-example'
|
||||
// ‘robot-test’是您在{ks_product_both} Web 控制台上创建的凭证 ID。
|
||||
HARBOR_CREDENTIAL = credentials('robot-test')
|
||||
}
|
||||
|
||||
stages {
|
||||
stage('docker login') {
|
||||
steps{
|
||||
container ('maven') {
|
||||
// 请替换 -u 后面的 Docker Hub 用户名,不要忘记加上 ''。您也可以使用 Docker Hub 令牌。
|
||||
sh '''echo $HARBOR_CREDENTIAL_PSW|docker login $REGISTRY -u 'robot$robot-test' --password-stdin'''
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('build & push') {
|
||||
steps {
|
||||
container ('maven') {
|
||||
sh 'git clone https://github.com/kstaken/dockerfile-examples.git'
|
||||
sh 'cd dockerfile-examples/rethinkdb && docker build -t $REGISTRY/$HARBOR_NAMESPACE/$APP_NAME:devops-test .'
|
||||
sh 'docker push$REGISTRY/$HARBOR_NAMESPACE/$APP_NAME:devops-test'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
----
|
||||
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
您可以通过带有环境变量的 Jenkins 凭证来传送参数至 **docker login -u**。但是,每个 Harbor 机器人账户的用户名都包含一个 **$** 字符,当用于环境变量时,Jenkins 会将其转换为 **$$**。(Harbor v2.2以后可以自定义机器人后缀,避免此类问题)link:https://number1.co.za/rancher-cannot-use-harbor-robot-account-imagepullbackoff-pull-access-denied/[了解更多]。
|
||||
|===
|
||||
--
|
||||
|
||||
== 运行流水线
|
||||
|
||||
保存 Jenkinsfile 后,{ks_product_right}会自动在图形编辑面板上创建所有阶段和步骤。点击**运行**来运行该流水线。如果一切运行正常,Jenkins 将推送镜像至您的 Harbor 仓库。
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
---
|
||||
title: "工具集成"
|
||||
linkTitle: "工具集成"
|
||||
keywords: "Kubernetes, KubeSphere, DevOps 项目"
|
||||
description: "介绍如何管理 DevOps 项目,以及如何在 DevOps 项目中管理流水线和 DevOps 项目设置。"
|
||||
layout: "second"
|
||||
weight: 04
|
||||
---
|
||||
|
||||
|
||||
本节介绍如何将第三方工具与流水线集成。
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
---
|
||||
title: "DevOps"
|
||||
linkTitle: "DevOps"
|
||||
keywords: "Kubernetes, KubeSphere, DevOps"
|
||||
description: "如何在 DevOps 项目中进行管理和操作,包括运行流水线、创建凭证和集成工具等。"
|
||||
layout: "second"
|
||||
weight: 01
|
||||
---
|
||||
|
||||
|
||||
DevOps 支持在 Kubernetes 集群上部署和管理 CI/CD 任务以及相关的工作负载。安装 DevOps 扩展组件时,会自动部署 Jenkins,支持通过 Jenkinsfile 构建流水线。此外,DevOps 还提供图形编辑面板,将整个流程可视化,直观地呈现流水线在每个阶段的运行状态。
|
||||
|
||||
安装 DevOps 扩展组件后,企业空间左侧导航栏将显⽰ **DevOps 项⽬**。
|
||||
|
||||
本节介绍如何管理 DevOps 项目,以及如何在 DevOps 项目中进行管理和操作,包括运行流水线、创建凭证和集成工具等。
|
||||
|
||||
|
||||
|
|
@ -1,63 +0,0 @@
|
|||
---
|
||||
title: "创建应用模板"
|
||||
linkTitle: "创建应用模板"
|
||||
keywords: "Kubernetes, KubeSphere, 企业空间,应用模板, 创建应用模板"
|
||||
description: "介绍如何创建应用模板。"
|
||||
weight: 01
|
||||
---
|
||||
|
||||
:ks_permission: **应用/应用版本/应用实例创建**
|
||||
:ks_navigation: **应用管理 > 应用模板**
|
||||
|
||||
本节介绍如何创建应用模板。
|
||||
|
||||
|
||||
== 前提条件
|
||||
|
||||
:relfileprefix: ../../../../../
|
||||
* {empty}
|
||||
include::../../../../../_custom/workspaceManagement/workspaceManagement-prer-requiredPermission_v4.adoc[]
|
||||
|
||||
:relfileprefix: ./
|
||||
|
||||
* {ks_product_right}平台需要安装并启用 **KubeSphere 应用商店管理**扩展组件。
|
||||
|
||||
* 已准备 .tar.gz 或 .tgz 格式的 Helm Chart 压缩包,或应用的 yaml 文件。您可以link:https://kubesphere.io/files/application-templates/nginx-0.1.0.tgz[下载 Nginx Helm Chart] 用于测试。有关更多信息,请参阅 link:https://helm.sh/zh/docs/topics/charts/[Helm 官方文档]。
|
||||
|
||||
|
||||
== 操作步骤
|
||||
|
||||
include::../../../../../_custom/workspaceManagement/workspaceManagement-oper-openWorkspacePage.adoc[]
|
||||
|
||||
+
|
||||
|
||||
include::../../../../../../_ks_components/oper-navigate.adoc[]
|
||||
|
||||
+
|
||||
|
||||
include::../../../../../../_ks_components/oper-clickCreate.adoc[]
|
||||
|
||||
+
|
||||
|
||||
. 在**创建应用**对话框,点击**上传 Helm Chart**,选择本地存储的 .tar.gz 或 .tgz 格式的 Helm Chart 压缩包。
|
||||
+
|
||||
或者点击**创建 yaml 应用**,输入应用名称和版本号,使用 yaml 文件创建应用。
|
||||
+
|
||||
--
|
||||
//note
|
||||
[.admon.note,cols="a"]
|
||||
|===
|
||||
|说明
|
||||
|
||||
|
|
||||
点击image:/images/ks-qkcp/zh/icons/upload-dark-white.svg[upload-dark,18,18]可从本地上传 yaml 文件。
|
||||
|
||||
点击image:/images/ks-qkcp/zh/icons/download-dark-white.svg[download-dark,18,18]可将 yaml 文件下载到本地。
|
||||
|===
|
||||
--
|
||||
|
||||
. 点击**确定**。
|
||||
+
|
||||
--
|
||||
应用模板创建完成后将显示在应用模板列表中。
|
||||
--
|
||||
|
|
@ -1,64 +0,0 @@
|
|||
---
|
||||
title: "查看应用模板列表"
|
||||
linkTitle: "查看应用模板列表"
|
||||
keywords: "Kubernetes, KubeSphere, 企业空间,应用模板, 查看应用模板列表"
|
||||
description: "介绍如何查看应用模板列表。"
|
||||
weight: 02
|
||||
---
|
||||
|
||||
:ks_permission: **应用/应用版本/应用实例查看**
|
||||
:ks_navigation: **应用管理 > 应用模板**
|
||||
|
||||
本节介绍如何查看应用模板列表。
|
||||
|
||||
|
||||
== 前提条件
|
||||
|
||||
:relfileprefix: ../../../../../
|
||||
* {empty}
|
||||
include::../../../../../_custom/workspaceManagement/workspaceManagement-prer-requiredPermission_v4.adoc[]
|
||||
|
||||
:relfileprefix: ./
|
||||
|
||||
* {ks_product_right}平台需要安装并启用 **KubeSphere 应用商店管理**扩展组件。
|
||||
|
||||
|
||||
== 操作步骤
|
||||
|
||||
include::../../../../../_custom/workspaceManagement/workspaceManagement-oper-openWorkspacePage.adoc[]
|
||||
|
||||
+
|
||||
|
||||
include::../../../../../../_ks_components/oper-navigate.adoc[]
|
||||
+
|
||||
====
|
||||
* 应用模板列表提供以下信息:
|
||||
+
|
||||
--
|
||||
[%header,cols="1a,4a"]
|
||||
|===
|
||||
|参数 |描述
|
||||
|
||||
include::../../../../../_custom/workspaceManagement/appTemplates/appTemplates-para-appTemplateName.adoc[]
|
||||
|
||||
include::../../../../../_custom/workspaceManagement/appTemplates/appTemplates-para-status_v4.adoc[]
|
||||
|
||||
|企业空间
|
||||
|应用模板所属的企业空间。
|
||||
|
||||
include::../../../../../_custom/workspaceManagement/appTemplates/appTemplates-para-latestVersion_v4.adoc[]
|
||||
|
||||
|应用模板
|
||||
|应用模板的类型,如 **helm 应用**或 **yaml 应用**。
|
||||
|
||||
|更新时间
|
||||
|应用模板的更新时间。
|
||||
|===
|
||||
--
|
||||
|
||||
include::../../../../../_custom/workspaceManagement/appTemplates/appTemplates-oper-searchForAppTemplates.adoc[]
|
||||
|
||||
include::../../../../../../_ks_components/oper-refreshListData.adoc[]
|
||||
|
||||
include::../../../../../../_ks_components/oper-customizeColumns.adoc[]
|
||||
====
|
||||
|
|
@ -1,107 +0,0 @@
|
|||
---
|
||||
title: "查看应用模板详情"
|
||||
linkTitle: "查看应用模板详情"
|
||||
keywords: "Kubernetes, KubeSphere, 企业空间,应用模板, 查看应用模板详情"
|
||||
description: "介绍如何查看应用模板列表。"
|
||||
weight: 03
|
||||
---
|
||||
|
||||
|
||||
:ks_permission: **应用/应用版本/应用实例查看**
|
||||
:ks_navigation: **应用管理 > 应用模板**
|
||||
|
||||
|
||||
本节介绍如何查看应用模板详情。
|
||||
|
||||
|
||||
== 前提条件
|
||||
|
||||
|
||||
:relfileprefix: ../../../../../
|
||||
* {empty}
|
||||
include::../../../../../_custom/workspaceManagement/workspaceManagement-prer-requiredPermission_v4.adoc[]
|
||||
|
||||
:relfileprefix: ./
|
||||
|
||||
* {ks_product_right}平台需要安装并启用 **KubeSphere 应用商店管理**扩展组件。
|
||||
|
||||
|
||||
== 操作步骤
|
||||
|
||||
include::../../../../../_custom/workspaceManagement/workspaceManagement-oper-openWorkspacePage.adoc[]
|
||||
|
||||
+
|
||||
|
||||
include::../../../../../../_ks_components/oper-navigate.adoc[]
|
||||
|
||||
+
|
||||
|
||||
include::../../../../../_custom/workspaceManagement/appTemplates/appTemplates-oper-openDetailsPage.adoc[]
|
||||
|
||||
+
|
||||
|
||||
include::../../../../../_custom/workspaceManagement/appTemplates/appTemplates-oper-viewAttributes.adoc[]
|
||||
+
|
||||
--
|
||||
[%header,cols="1a,4a"]
|
||||
|===
|
||||
|参数 |描述
|
||||
|
||||
|应用 ID
|
||||
|应用名称。
|
||||
|
||||
include::../../../../../_custom/workspaceManagement/appTemplates/appTemplates-para-status_v4.adoc[]
|
||||
|
||||
|分类
|
||||
|应用模板所属的分类,需手动设置。有关更多信息,请参阅link:../04-edit-app-template-information/[编辑应用模板信息]。
|
||||
|
||||
|类型
|
||||
|应用模板的类型,如 **helm 应用**或 **yaml 应用**。
|
||||
|
||||
|企业空间
|
||||
|应用模板所属的企业空间。
|
||||
|
||||
include::../../../../../_custom/workspaceManagement/appTemplates/appTemplates-para-creationTime.adoc[]
|
||||
|===
|
||||
--
|
||||
|
||||
+
|
||||
|
||||
include::../../../../../_custom/workspaceManagement/appTemplates/appTemplates-oper-viewVersions.adoc[]
|
||||
+
|
||||
--
|
||||
[%header,cols="1a,4a"]
|
||||
|===
|
||||
|参数 |描述
|
||||
|
||||
|状态
|
||||
|应用版本当前的状态。
|
||||
|
||||
* **未提交**:应用版本已上传到企业空间,但未提交给{ks_product_both}平台的应用商店管理员审核。
|
||||
|
||||
* **已提交**:应用版本已提交给{ks_product_both}平台的应用商店管理员审核。
|
||||
|
||||
* **已发布**:应用版本已获得{ks_product_both}平台的应用商店管理员的批准,可以上架到应用商店。
|
||||
|
||||
* **已拒绝**:应用版本未获得{ks_product_both}平台的应用商店管理员的批准,审核不通过。
|
||||
|
||||
* **未发布**:应用版本发布后被应用商店管理员取消发布,或应用版本上架到{ks_product_both}平台的应用商店后被应用商店管理员下架。
|
||||
|
||||
include::../../../../../_custom/workspaceManagement/appTemplates/appTemplates-para-version.adoc[]
|
||||
|
||||
include::../../../../../_custom/workspaceManagement/appTemplates/appTemplates-para-developer.adoc[]
|
||||
|
||||
include::../../../../../_custom/workspaceManagement/appTemplates/appTemplates-para-versionUpdateTime.adoc[]
|
||||
|===
|
||||
--
|
||||
|
||||
+
|
||||
include::../../../../../_custom/workspaceManagement/appTemplates/appTemplates-para-viewAppInformation.adoc[]
|
||||
|
||||
+
|
||||
|
||||
// include::../../../../../_custom/workspaceManagement/appTemplates/appTemplates-para-viewAppReviewRecords.adoc[]
|
||||
|
||||
+
|
||||
|
||||
include::../../../../../_custom/workspaceManagement/appTemplates/appTemplates-oper-viewAppInstances.adoc[]
|
||||
|
|
@ -1,71 +0,0 @@
|
|||
---
|
||||
title: "编辑应用模板信息"
|
||||
linkTitle: "编辑应用模板信息"
|
||||
keywords: "Kubernetes, KubeSphere, 企业空间,应用模板, 编辑应用模板信息"
|
||||
description: "介绍如何编辑应用模板信息。"
|
||||
weight: 04
|
||||
---
|
||||
|
||||
:ks_permission: **应用/应用版本/应用实例管理**
|
||||
:ks_navigation: **应用管理 > 应用模板**
|
||||
|
||||
|
||||
本节介绍如何编辑应用模板信息。
|
||||
|
||||
|
||||
== 前提条件
|
||||
|
||||
:relfileprefix: ../../../../../
|
||||
* {empty}
|
||||
include::../../../../../_custom/workspaceManagement/workspaceManagement-prer-requiredPermission_v4.adoc[]
|
||||
|
||||
:relfileprefix: ./
|
||||
|
||||
* {ks_product_right}平台需要安装并启用 **KubeSphere 应用商店管理**扩展组件。
|
||||
|
||||
|
||||
== 操作步骤
|
||||
|
||||
include::../../../../../_custom/workspaceManagement/workspaceManagement-oper-openWorkspacePage.adoc[]
|
||||
|
||||
+
|
||||
|
||||
include::../../../../../../_ks_components/oper-navigate.adoc[]
|
||||
|
||||
+
|
||||
|
||||
include::../../../../../_custom/workspaceManagement/appTemplates/appTemplates-oper-openDetailsPage.adoc[]
|
||||
|
||||
+
|
||||
|
||||
. 在应用模板详情页面左上角点击**编辑**。
|
||||
|
||||
. 在**编辑信息**对话框设置应用模板的参数,然后点击**确定**。
|
||||
+
|
||||
--
|
||||
[%header,cols="1a,4a"]
|
||||
|===
|
||||
|参数 |描述
|
||||
|
||||
|别名
|
||||
|应用的别名。别名只能包含中文、字母、数字和连字符(-),不得以连字符(-)开头或结尾,最长 63 个字符。
|
||||
|
||||
|描述
|
||||
|应用的描述信息。描述可包含任意字符,最长 120 个字符。
|
||||
|
||||
|图标
|
||||
|应用的图标。如果未设置应用模板的图标,系统将默认使用应用名称第一个字符大写作为图标。图标格式必须为 .png 或 .jpg,不能超过 96 x 96 像素和 20 KB。
|
||||
|
||||
|应用分类
|
||||
|应用的功能分类。应用模板在上传到应用商店后将被自动划分到此处选择的分类下。
|
||||
|
||||
|服务商网站
|
||||
|服务商的网站地址。从应用商店安装应用的用户可联系服务商获取技术支持。
|
||||
|
||||
|应用截图
|
||||
|应用的介绍图片。最多支持上传 6 张截图,每张截图大小不能超过 2 MB。
|
||||
|
||||
|应用介绍
|
||||
|应用的介绍信息。支持输入 markdown 格式的图文介绍。
|
||||
|===
|
||||
--
|
||||
|
|
@ -1,83 +0,0 @@
|
|||
---
|
||||
title: "使用应用模板安装应用"
|
||||
linkTitle: "使用应用模板安装应用"
|
||||
keywords: "Kubernetes, KubeSphere, 企业空间, 应用模板, 使用应用模板安装应用"
|
||||
description: "介绍如何使用应用模板安装应用。"
|
||||
weight: 05
|
||||
---
|
||||
|
||||
:ks_permission: **应用/应用版本/应用实例管理**
|
||||
:ks_navigation: **应用管理 > 应用模板**
|
||||
|
||||
|
||||
本节介绍如何在企业空间中使用应用模板安装应用。
|
||||
|
||||
|
||||
== 前提条件
|
||||
|
||||
:relfileprefix: ../../../../../
|
||||
* {empty}
|
||||
include::../../../../../_custom/workspaceManagement/workspaceManagement-prer-requiredPermission_v4.adoc[]
|
||||
|
||||
:relfileprefix: ./
|
||||
|
||||
* {ks_product_right}平台需要安装并启用 **KubeSphere 应用商店管理**扩展组件。
|
||||
|
||||
|
||||
== 操作步骤
|
||||
|
||||
include::../../../../../_custom/workspaceManagement/workspaceManagement-oper-openWorkspacePage.adoc[]
|
||||
|
||||
+
|
||||
|
||||
include::../../../../../../_ks_components/oper-navigate.adoc[]
|
||||
|
||||
+
|
||||
|
||||
include::../../../../../_custom/workspaceManagement/appTemplates/appTemplates-oper-openDetailsPage.adoc[]
|
||||
|
||||
+
|
||||
|
||||
. 在应用模板详情页面右侧的**版本**页签,点击所需的应用版本,然后在展开的区域中点击**部署**。
|
||||
|
||||
. 在弹出的**位置**对话框,选择应用的安装位置,然后点击**确定**。
|
||||
|
||||
. 在**基本信息**页签,设置应用的基本信息,然后点击**下一步**。
|
||||
+
|
||||
--
|
||||
[%header,cols="1a,4a"]
|
||||
|===
|
||||
|参数 |描述
|
||||
|
||||
|名称
|
||||
|用户自定义的应用名称。名称只能包含小写字母、数字和连字符(-),必须以小写字母开头并以小写字母或数字结尾,最长 32 个字符。
|
||||
|
||||
|版本
|
||||
|需要安装的应用版本。
|
||||
|
||||
|描述
|
||||
|应用的描述信息。描述可包含任意字符,最长 256 个字符。
|
||||
|
||||
|位置
|
||||
|应用所属的集群和项目。应用所属的企业空间默认为应用模板所属的企业空间。
|
||||
|===
|
||||
--
|
||||
|
||||
. 在**应用设置**页签,根据需要修改应用的参数设置,然后点击**安装**。
|
||||
+
|
||||
--
|
||||
// Note
|
||||
include::../../../../../../_ks_components/admonitions/note.adoc[]
|
||||
|
||||
{ks_product_right}的应用模板功能底层基于 Helm Chart 实现。**应用设置**页签的参数设置应符合 Helm Chart 的 Values 文件规范。有关更多信息,请参阅 link:https://helm.sh/zh/docs/chart_template_guide/values_files/[Helm 官方文档]。
|
||||
|
||||
include::../../../../../../_ks_components/admonitions/admonEnd.adoc[]
|
||||
|
||||
ifeval::["{file_output_type}" == "html"]
|
||||
应用安装完成后,即可在目标项目中查看已安装的应用。
|
||||
endif::[]
|
||||
|
||||
ifeval::["{file_output_type}" == "pdf"]
|
||||
应用安装完成后,即可在目标项目中查看已安装的应用。有关更多信息,请参阅《{ks_product_full_right}项目管理指南》的“应用”章节。
|
||||
endif::[]
|
||||
--
|
||||
|
|
@ -1,48 +0,0 @@
|
|||
---
|
||||
title: "上传应用版本"
|
||||
linkTitle: "上传应用版本"
|
||||
keywords: "Kubernetes, KubeSphere, 企业空间, 应用模板, 上传应用版本"
|
||||
description: "介绍如何在应用模板创建后上传应用版本。"
|
||||
weight: 06
|
||||
---
|
||||
|
||||
|
||||
:ks_permission: **应用/应用版本/应用实例管理**
|
||||
:ks_navigation: **应用管理 > 应用模板**
|
||||
|
||||
|
||||
本节介绍如何在应用模板创建后上传应用版本。
|
||||
|
||||
|
||||
== 前提条件
|
||||
|
||||
:relfileprefix: ../../../../../
|
||||
* {empty}
|
||||
include::../../../../../_custom/workspaceManagement/workspaceManagement-prer-requiredPermission_v4.adoc[]
|
||||
|
||||
:relfileprefix: ./
|
||||
|
||||
* {ks_product_right}平台需要安装并启用 **KubeSphere 应用商店管理**扩展组件。
|
||||
|
||||
* 已准备 .tar.gz 或 .tgz 格式的 Helm Chart 压缩包。有关更多信息,请参阅 link:https://helm.sh/zh/docs/topics/charts/[Helm 官方文档]。
|
||||
|
||||
|
||||
== 操作步骤
|
||||
|
||||
include::../../../../../_custom/workspaceManagement/workspaceManagement-oper-openWorkspacePage.adoc[]
|
||||
|
||||
+
|
||||
|
||||
include::../../../../../../_ks_components/oper-navigate.adoc[]
|
||||
|
||||
+
|
||||
|
||||
include::../../../../../_custom/workspaceManagement/appTemplates/appTemplates-oper-openDetailsPage.adoc[]
|
||||
|
||||
. 在应用模板详情页面右侧的**版本**页签,点击**上传版本**。
|
||||
|
||||
. 在弹出的对话框中,点击**上传 Helm Chart**,选择本地存储的 .tar.gz 或 .tgz 格式 Helm Chart 压缩包,然后点击**确定**。
|
||||
+
|
||||
--
|
||||
应用新版本上传完成后将显示在应用模板详情页面的**版本**页签。
|
||||
--
|
||||
|
|
@ -1,51 +0,0 @@
|
|||
---
|
||||
title: "删除应用版本"
|
||||
linkTitle: "删除应用版本"
|
||||
keywords: "Kubernetes, KubeSphere, 企业空间, 应用模板, 删除应用版本"
|
||||
description: "介绍如何在应用模板中删除应用版本。"
|
||||
weight: 08
|
||||
---
|
||||
|
||||
:ks_permission: **应用/应用版本/应用实例删除**
|
||||
:ks_navigation: **应用管理 > 应用模板**
|
||||
|
||||
|
||||
本节介绍如何在应用模板中删除应用版本。
|
||||
|
||||
// Warning
|
||||
include::../../../../../../_ks_components/admonitions/warning.adoc[]
|
||||
|
||||
应用版本删除后无法恢复,请谨慎执行此操作。
|
||||
|
||||
include::../../../../../../_ks_components/admonitions/admonEnd.adoc[]
|
||||
|
||||
|
||||
== 前提条件
|
||||
|
||||
:relfileprefix: ../../../../../
|
||||
* {empty}
|
||||
include::../../../../../_custom/workspaceManagement/workspaceManagement-prer-requiredPermission_v4.adoc[]
|
||||
|
||||
:relfileprefix: ./
|
||||
|
||||
* {ks_product_right}平台需要安装并启用 **KubeSphere 应用商店管理**扩展组件。
|
||||
|
||||
* 如果需要删除的应用版本已上架到应用商店,您需要联系应用商店管理员将应用版本下架。
|
||||
|
||||
|
||||
|
||||
== 操作步骤
|
||||
|
||||
include::../../../../../_custom/workspaceManagement/workspaceManagement-oper-openWorkspacePage.adoc[]
|
||||
|
||||
+
|
||||
|
||||
include::../../../../../../_ks_components/oper-navigate.adoc[]
|
||||
|
||||
+
|
||||
|
||||
include::../../../../../_custom/workspaceManagement/appTemplates/appTemplates-oper-openDetailsPage.adoc[]
|
||||
|
||||
+
|
||||
|
||||
. 在应用模板详情页面右侧的**版本**页签,点击需要删除的应用版本,在展开的区域中点击**删除**,然后在弹出的对话框点击**确定**。
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
---
|
||||
title: "下载 Helm Chart 压缩包"
|
||||
linkTitle: "下载 Helm Chart 压缩包"
|
||||
keywords: "Kubernetes, KubeSphere, 企业空间, 应用模板, 下载 Helm Chart 压缩包"
|
||||
description: "介绍如何下载应用版本的 Helm Chart 压缩包。"
|
||||
weight: 09
|
||||
---
|
||||
|
||||
|
||||
:ks_permission: **应用/应用版本/应用实例查看**
|
||||
:ks_navigation: **应用管理 > 应用模板**
|
||||
|
||||
|
||||
本节介绍如何下载应用版本的 Helm Chart 压缩包。
|
||||
|
||||
|
||||
== 前提条件
|
||||
|
||||
:relfileprefix: ../../../../../
|
||||
* {empty}
|
||||
include::../../../../../_custom/workspaceManagement/workspaceManagement-prer-requiredPermission_v4.adoc[]
|
||||
|
||||
:relfileprefix: ./
|
||||
|
||||
* {ks_product_right}平台需要安装并启用 **KubeSphere 应用商店管理**扩展组件。
|
||||
|
||||
== 操作步骤
|
||||
|
||||
include::../../../../../_custom/workspaceManagement/workspaceManagement-oper-openWorkspacePage.adoc[]
|
||||
|
||||
+
|
||||
|
||||
include::../../../../../../_ks_components/oper-navigate.adoc[]
|
||||
|
||||
+
|
||||
|
||||
include::../../../../../_custom/workspaceManagement/appTemplates/appTemplates-oper-openDetailsPage.adoc[]
|
||||
|
||||
+
|
||||
|
||||
. 在应用模板详情页面右侧的**版本**页签,点击所需的应用版本,然后在展开的区域中点击**下载**。
|
||||
+
|
||||
--
|
||||
应用版本的 Helm Chart 压缩包将通过浏览器下载到本地。
|
||||
--
|
||||
|
|
@ -1,54 +0,0 @@
|
|||
---
|
||||
title: "将应用版本发布到应用商店"
|
||||
linkTitle: "将应用版本发布到应用商店"
|
||||
keywords: "Kubernetes, KubeSphere, 企业空间, 应用模板, 将应用版本发布到应用商店"
|
||||
description: "介绍如何将应用模板发布到应用商店。"
|
||||
weight: 10
|
||||
---
|
||||
|
||||
:ks_permission: **应用/应用版本/应用实例管理**
|
||||
:ks_navigation: **应用管理 > 应用模板**
|
||||
|
||||
|
||||
本节介绍如何将应用版本发布到应用商店。
|
||||
|
||||
|
||||
== 前提条件
|
||||
|
||||
:relfileprefix: ../../../../../
|
||||
* {empty}
|
||||
include::../../../../../_custom/workspaceManagement/workspaceManagement-prer-requiredPermission_v4.adoc[]
|
||||
|
||||
:relfileprefix: ./
|
||||
|
||||
* {ks_product_right}平台需要安装并启用 **KubeSphere 应用商店管理**扩展组件。
|
||||
|
||||
|
||||
== 操作步骤
|
||||
|
||||
include::../../../../../_custom/workspaceManagement/workspaceManagement-oper-openWorkspacePage.adoc[]
|
||||
|
||||
+
|
||||
|
||||
include::../../../../../../_ks_components/oper-navigate.adoc[]
|
||||
|
||||
+
|
||||
|
||||
include::../../../../../_custom/workspaceManagement/appTemplates/appTemplates-oper-openDetailsPage.adoc[]
|
||||
|
||||
+
|
||||
|
||||
. 在应用模板详情页面右侧的**版本**页签,点击需要发布的应用版本,然后在展开的区域中点击**提交审核**。
|
||||
|
||||
. 待应用商店管理员审核通过并将其上架后,在页面左上角点击**应用商店**,即可在应用商店中查看已上架的应用版本。
|
||||
+
|
||||
--
|
||||
// Note
|
||||
include::../../../../../../_ks_components/admonitions/note.adoc[]
|
||||
|
||||
* 审核通过后,应用版本的状态将变为**已发布**,表示可以被应用商店管理员上架到应用商店。上架后,所有项目成员才可以从应用商店将应用版本安装到项目中。
|
||||
|
||||
* 有关应用审核和上架的更多信息,请参阅link:../../../03-app-store-management/[应用商店管理]。
|
||||
|
||||
include::../../../../../../_ks_components/admonitions/admonEnd.adoc[]
|
||||
--
|
||||
|
|
@ -1,48 +0,0 @@
|
|||
---
|
||||
title: "删除应用模板"
|
||||
linkTitle: "删除应用模板"
|
||||
keywords: "Kubernetes, KubeSphere, 企业空间, 应用模板, 删除应用模板"
|
||||
description: "介绍如何删除应用模板。"
|
||||
weight: 11
|
||||
---
|
||||
|
||||
|
||||
:ks_permission: **应用/应用版本/应用实例删除**
|
||||
:ks_navigation: **应用管理 > 应用模板**
|
||||
|
||||
|
||||
本节介绍如何删除应用模板。
|
||||
|
||||
// Warning
|
||||
include::../../../../../../_ks_components/admonitions/warning.adoc[]
|
||||
|
||||
应用模板删除后无法恢复,请谨慎执行此操作。
|
||||
|
||||
include::../../../../../../_ks_components/admonitions/admonEnd.adoc[]
|
||||
|
||||
|
||||
== 前提条件
|
||||
|
||||
:relfileprefix: ../../../../../
|
||||
* {empty}
|
||||
include::../../../../../_custom/workspaceManagement/workspaceManagement-prer-requiredPermission_v4.adoc[]
|
||||
|
||||
:relfileprefix: ./
|
||||
|
||||
* {ks_product_right}平台需要安装并启用 **KubeSphere 应用商店管理**扩展组件。
|
||||
|
||||
// * 已删除应用模板中的所有应用版本。有关更多信息,请参阅link:../08-delete-an-app-version/[删除应用版本]。
|
||||
|
||||
== 操作步骤
|
||||
|
||||
include::../../../../../_custom/workspaceManagement/workspaceManagement-oper-openWorkspacePage.adoc[]
|
||||
|
||||
+
|
||||
|
||||
include::../../../../../../_ks_components/oper-navigate.adoc[]
|
||||
|
||||
+
|
||||
|
||||
. 在需要删除的应用模板右侧点击image:/images/ks-qkcp/zh/icons/more.svg[more,18,18],然后在下拉列表中选择**删除**。
|
||||
|
||||
. 在**删除应用模板**对话框,输入应用模板的名称,然后点击**确定**。
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
---
|
||||
title: "应用模板"
|
||||
linkTitle: "应用模板"
|
||||
keywords: "Kubernetes, KubeSphere, 企业空间, 应用管理, 应用模板"
|
||||
description: "介绍如何管理应用模板。"
|
||||
layout: "second"
|
||||
weight: 01
|
||||
---
|
||||
|
||||
本节介绍如何管理企业空间的应用模板。
|
||||
|
||||
每个应用模板可包含一个或多个由 Helm Chart 定义的应用版本。您可以将 Helm Chart 作为应用模板上传到企业空间,从而在企业空间中的所有项目使用该应用模板安装应用。您也可以进一步将应用模板上传到应用商店,从而在{ks_product_both}平台的所有项目安装应用。
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
---
|
||||
title: "应用管理"
|
||||
linkTitle: "应用管理"
|
||||
keywords: "Kubernetes, KubeSphere, 企业空间, 应用管理, 应用模板"
|
||||
description: "介绍如何上通过企业空间管理应用模板。"
|
||||
layout: "second"
|
||||
weight: 02
|
||||
---
|
||||
|
||||
|
||||
在{ks_product_both}平台,应用特指由一个或多个工作负载、服务、应用路由等资源组成的业务程序。{ks_product_right}平台的应用模板功能底层基于 Helm 实现,通过 Helm Chart 定义应用的编排方式。
|
||||
|
||||
您可以在企业空间中创建包含一个或多个应用版本的应用模板(每个应用版本由一个 Helm Chart 定义),从而在企业空间的项目中安装应用模板中定义的应用。
|
||||
|
||||
ifeval::["{file_output_type}" == "html"]
|
||||
有关企业空间中应用仓库的更多信息,请参阅link:../../../08-workspace-management/05-app-management/02-app-repositories/[应用仓库]。
|
||||
endif::[]
|
||||
|
||||
ifeval::["{file_output_type}" == "pdf"]
|
||||
有关企业空间中应用仓库的更多信息,请参阅《{ks_product_right}企业空间管理指南》的“应用仓库”章节。
|
||||
endif::[]
|
||||
|
||||
有关 Helm 的更多信息,请参阅 link:https://helm.sh/zh/docs/[Helm 官方文档]。
|
||||
|
|
@ -1,70 +0,0 @@
|
|||
---
|
||||
title: "查看应用模板列表"
|
||||
linkTitle: "查看应用模板列表"
|
||||
keywords: "Kubernetes, KubeSphere, 应用商店管理, 应用, 查看应用模板列表"
|
||||
description: "介绍如何查看应用模板列表。"
|
||||
weight: 01
|
||||
---
|
||||
|
||||
:ks_permission: **应用商店管理**
|
||||
:ks_navigation: **应用**
|
||||
|
||||
|
||||
本节介绍如何查看应用商店中的应用模板列表。
|
||||
|
||||
|
||||
== 前提条件
|
||||
|
||||
:relfileprefix: ../../../../../
|
||||
* {empty}
|
||||
include::../../../../../_custom/platformManagement/platformManagement-prer-requiredPermission_v4.adoc[]
|
||||
|
||||
:relfileprefix: ./
|
||||
|
||||
* {ks_product_right}平台需要安装并启用 **KubeSphere 应用商店管理**扩展组件。
|
||||
|
||||
|
||||
== 操作步骤
|
||||
|
||||
include::../../../../../_custom/platformManagement/platformManagement-oper-logIn.adoc[]
|
||||
|
||||
. 在页面右上角点击image:/images/ks-qkcp/zh/icons/grid.svg[grid,18,18]图标,选择**应用商店管理**。
|
||||
|
||||
+
|
||||
|
||||
include::../../../../../../_ks_components/oper-navigate.adoc[]
|
||||
+
|
||||
====
|
||||
* **应用**页面显示应用商店中的应用模板,并提供以下信息:
|
||||
+
|
||||
--
|
||||
[%header,cols="1a,4a"]
|
||||
|===
|
||||
|参数 |描述
|
||||
|
||||
include::../../../../../_custom/workspaceManagement/appTemplates/appTemplates-para-appTemplateName.adoc[]
|
||||
|
||||
include::../../../../../_custom/workspaceManagement/appTemplates/appTemplates-para-status_v4.adoc[]
|
||||
|
||||
include::../../../../../_custom/workspaceManagement/appTemplates/appTemplates-para-workspace.adoc[]
|
||||
|
||||
include::../../../../../_custom/workspaceManagement/appTemplates/appTemplates-para-latestVersion_v4.adoc[]
|
||||
|
||||
|
||||
// |分类
|
||||
// |应用模板所属的分类。将应用模板分配到一个分类中以便于管理。有关更多信息,请参阅link:../../02-app-categories/[应用分类]。
|
||||
|
||||
|应用模板
|
||||
|应用模板的类型,如 **helm 应用**或 **yaml 应用**。
|
||||
|
||||
|更新时间
|
||||
|应用模板的更新时间。
|
||||
|===
|
||||
--
|
||||
|
||||
include::../../../../../_custom/workspaceManagement/appTemplates/appTemplates-oper-searchForAppTemplates.adoc[]
|
||||
|
||||
include::../../../../../../_ks_components/oper-refreshListData.adoc[]
|
||||
|
||||
include::../../../../../../_ks_components/oper-customizeColumns.adoc[]
|
||||
====
|
||||
|
|
@ -1,106 +0,0 @@
|
|||
---
|
||||
title: "查看应用模板详情"
|
||||
linkTitle: "查看应用模板详情"
|
||||
keywords: "Kubernetes, KubeSphere, 应用商店管理, 应用, 查看应用模板详情"
|
||||
description: "介绍如何查看应用模板详情。"
|
||||
weight: 02
|
||||
---
|
||||
|
||||
:ks_permission: **应用商店管理**
|
||||
:ks_navigation: **应用**
|
||||
|
||||
|
||||
本节介绍如何查看应用模板详情。
|
||||
|
||||
|
||||
== 前提条件
|
||||
|
||||
:relfileprefix: ../../../../../
|
||||
* {empty}
|
||||
include::../../../../../_custom/platformManagement/platformManagement-prer-requiredPermission_v4.adoc[]
|
||||
|
||||
:relfileprefix: ./
|
||||
|
||||
* {ks_product_right}平台需要安装并启用 **KubeSphere 应用商店管理**扩展组件。
|
||||
|
||||
|
||||
== 操作步骤
|
||||
|
||||
include::../../../../../_custom/platformManagement/platformManagement-oper-logIn.adoc[]
|
||||
|
||||
. 在页面右上角点击image:/images/ks-qkcp/zh/icons/grid.svg[grid,18,18]图标,选择**应用商店管理**。
|
||||
|
||||
+
|
||||
|
||||
include::../../../../../../_ks_components/oper-navigate.adoc[]
|
||||
|
||||
+
|
||||
|
||||
include::../../../../../_custom/workspaceManagement/appTemplates/appTemplates-oper-openDetailsPage.adoc[]
|
||||
|
||||
+
|
||||
|
||||
include::../../../../../_custom/workspaceManagement/appTemplates/appTemplates-oper-viewAttributes.adoc[]
|
||||
+
|
||||
--
|
||||
[%header,cols="1a,4a"]
|
||||
|===
|
||||
|参数 |描述
|
||||
|
||||
|应用 ID
|
||||
|应用名称。
|
||||
|
||||
include::../../../../../_custom/workspaceManagement/appTemplates/appTemplates-para-status_v4.adoc[]
|
||||
|
||||
|分类
|
||||
|应用模板所属的分类。将应用模板分配到一个分类中以便于管理。有关更多信息,请参阅link:../../02-app-categories/[应用分类]。
|
||||
|
||||
include::../../../../../_custom/workspaceManagement/appTemplates/appTemplates-para-type.adoc[]
|
||||
|
||||
include::../../../../../_custom/workspaceManagement/appTemplates/appTemplates-para-workspace.adoc[]
|
||||
|
||||
include::../../../../../_custom/workspaceManagement/appTemplates/appTemplates-para-creationTime.adoc[]
|
||||
|===
|
||||
--
|
||||
|
||||
+
|
||||
|
||||
include::../../../../../_custom/workspaceManagement/appTemplates/appTemplates-oper-viewVersions.adoc[]
|
||||
+
|
||||
--
|
||||
[%header,cols="1a,4a"]
|
||||
|===
|
||||
|参数 |描述
|
||||
|
||||
|状态
|
||||
|应用版本当前的状态。
|
||||
|
||||
* **未提交**:应用版本已上传到企业空间,但未提交给{ks_product_both}平台的应用商店管理员审核。
|
||||
|
||||
* **已提交**:应用版本已提交给{ks_product_both}平台的应用商店管理员审核。
|
||||
|
||||
* **已发布**:应用版本已获得{ks_product_both}平台的应用商店管理员的批准,可以上架到应用商店。
|
||||
|
||||
* **已拒绝**:应用版本未获得{ks_product_both}平台的应用商店管理员的批准,审核不通过。
|
||||
|
||||
* **未发布**:应用版本发布后被应用商店管理员取消发布,或应用版本上架到{ks_product_both}平台的应用商店后被应用商店管理员下架。
|
||||
|
||||
include::../../../../../_custom/workspaceManagement/appTemplates/appTemplates-para-version.adoc[]
|
||||
|
||||
include::../../../../../_custom/workspaceManagement/appTemplates/appTemplates-para-developer.adoc[]
|
||||
|
||||
include::../../../../../_custom/workspaceManagement/appTemplates/appTemplates-para-versionUpdateTime.adoc[]
|
||||
|===
|
||||
--
|
||||
|
||||
+
|
||||
|
||||
include::../../../../../_custom/workspaceManagement/appTemplates/appTemplates-para-viewAppInformation.adoc[]
|
||||
|
||||
+
|
||||
|
||||
// include::../../../../../_custom/workspaceManagement/appTemplates/appTemplates-para-viewAppReviewRecords.adoc[]
|
||||
|
||||
+
|
||||
|
||||
include::../../../../../_custom/workspaceManagement/appTemplates/appTemplates-oper-viewAppInstances.adoc[]
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue