-
Notifications
You must be signed in to change notification settings - Fork 207
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1505 from btat/2.10-preview
Add version 2.10 preview
- Loading branch information
Showing
915 changed files
with
146,262 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
17 changes: 17 additions & 0 deletions
17
i18n/zh/docusaurus-plugin-content-docs/version-2.10/api/api-reference.mdx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
--- | ||
title: API 参考 | ||
--- | ||
|
||
<head> | ||
<link rel="canonical" href="https://ranchermanager.docs.rancher.com/zh/api/api-reference"/> | ||
</head> | ||
|
||
:::note | ||
|
||
目前,并非所有的 Rancher 资源都可以通过 Rancher Kubernetes API 操作。 | ||
|
||
::: | ||
|
||
import ApiDocMdx from '@theme/ApiDocMdx'; | ||
|
||
<ApiDocMdx id="rancher-api" /> |
87 changes: 87 additions & 0 deletions
87
i18n/zh/docusaurus-plugin-content-docs/version-2.10/api/api-tokens.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,87 @@ | ||
--- | ||
title: API 令牌 | ||
--- | ||
|
||
默认情况下,某些集群级别的 API 令牌是使用无限期 TTL(`ttl=0`)生成的。换言之,除非你让令牌失效,否则 `ttl=0` 的 API 令牌永远不会过期。令牌不会因为更改密码而失效。 | ||
|
||
要停用 API 令牌,你可以删除令牌或停用用户账号。 | ||
|
||
## 删除令牌 | ||
要删除令牌: | ||
|
||
1. 转到 `https://<Rancher-Server-IP>/v3/tokens`,在 Rancher API 视图中查看包含所有令牌的列表。 | ||
|
||
1. 通过 ID 访问要删除的令牌。例如,`https://<Rancher-Server-IP>/v3/tokens/kubectl-shell-user-vqkqt`。 | ||
|
||
1. 单击**删除**。 | ||
|
||
以下是使用 `ttl=0` 生成的完整令牌列表: | ||
|
||
| 令牌 | 描述 | | ||
| ----------------- | -------------------------------------------------------------------------------------- | | ||
| `kubeconfig-*` | Kubeconfig 令牌 | | ||
| `kubectl-shell-*` | 在浏览器中访问 `kubectl` shell | | ||
| `agent-*` | Agent deployment 令牌 | | ||
| `compose-token-*` | compose 令牌 | | ||
| `helm-token-*` | Helm Chart deployment 令牌 | | ||
| `telemetry-*` | 遥测令牌 | | ||
| `drain-node-*` | 用于清空的令牌(由于没有原生 Kubernetes API,我们使用 `kubectl` 来清空) | | ||
|
||
|
||
## 在 Kubeconfig 令牌上设置 TTL | ||
|
||
管理员可以在 Kubeconfig 令牌上设置全局存活时间 (time-to-live,TTL)。如需更改默认 kubeconfig TTL,你可以导航到全局设置并将 [`kubeconfig-default-token-ttl-minutes`](#kubeconfig-default-token-ttl-minutes) 设置为所需的持续时间(单位:分钟)。[`kubeconfig-default-token-ttl-minutes`](#kubeconfig-default-token-ttl-minutes) 的默认值为 0,表示令牌永不过期。 | ||
|
||
:::note | ||
|
||
除了由 CLI 创建的用于[生成 kubeconfig 令牌](#在生成的-kubeconfig-中禁用令牌)的令牌之外,所有 kubeconfig 令牌都使用此设置。 | ||
|
||
::: | ||
|
||
## 在生成的 Kubeconfig 中禁用令牌 | ||
|
||
1. 将 `kubeconfig-generate-token` 设置为 `false`。此设置让 Rancher 不再在用户单击下载 kubeconfig 文件时自动生成令牌。如果停用此设置,生成的 kubeconfig 将引用 [Rancher CLI](../reference-guides/cli-with-rancher/kubectl-utility.md#使用-kubectl-和-kubeconfig-令牌进行-ttl-认证) 来检索集群的短期令牌。当这个 kubeconfig 在客户端(例如 `kubectl`)中使用时,你需要安装 Rancher CLI 来完成登录请求。 | ||
|
||
2. 将 `kubeconfig-token-ttl-minutes` 设置为所需的时长(单位:分钟)。`kubeconfig-token-ttl-minutes` 默认设置为 960(即 16 小时)。 | ||
|
||
## 令牌哈希 | ||
|
||
你可以启用令牌哈希,令牌将使用 SHA256 算法进行单向哈希。这是一个不可逆的操作,一旦启用,此功能将无法禁用。在启用功能或在测试环境中评估之前,建议你先进行备份。 | ||
|
||
要启用令牌哈希,请参阅[本节](../how-to-guides/advanced-user-guides/enable-experimental-features/enable-experimental-features.md)。 | ||
|
||
此功能将影响所有令牌,包括但不限于以下内容: | ||
|
||
- Kubeconfig 令牌 | ||
- 持有者令牌 API 密钥/调用 | ||
- 内部操作使用的令牌 | ||
|
||
## 令牌设置 | ||
|
||
以下全局设置会影响 Rancher 令牌的行为: | ||
|
||
| 设置 | 描述 | | ||
| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | ||
| [`auth-user-session-ttl-minutes`](#auth-user-session-ttl-minutes) | 用户认证会话令牌的 TTL(单位:分钟)。 | | ||
| [`kubeconfig-default-token-TTL-minutes`](#kubeconfig-default-token-ttl-minutes) | 默认 TTL,应用于所有 kubeconfig 令牌(除了[由 Rancher CLI 生成的令牌](#在生成的-kubeconfig-中禁用令牌))。**此设置从 2.6.6 版本开始引入。** | | ||
| [`kubeconfig-token-ttl-minutes`](#kubeconfig-token-ttl-minutes) | 在 CLI 中生成的令牌 TTL。**自 2.6.6 起已弃用,并将在 2.8.0 中删除**。请知悉,`kubeconfig-default-token-TTL-minutes` 将用于所有 kubeconfig 令牌。 | | ||
| [`auth-token-max-ttl-minutes`](#auth-token-max-ttl-minutes) | 除了由 [`auth-user-session-ttl-minutes`](#auth-user-session-ttl-minutes) 控制的令牌外,所有令牌的最大 TTL。 | | ||
| [`kubeconfig-generate-token`](#kubeconfig-generate-token) | 如果为 true,则在用户下载 kubeconfig 时自动生成令牌。 | | ||
|
||
### auth-user-session-ttl-minutes | ||
存活时间(TTL)(单位:分钟),用于确定用户身份验证会话令牌的到期时间。过期后,用户将需要登录并获取新令牌。此设置不受 [`auth-token-max-ttl-minutes`](#auth-token-max-ttl-minutes) 的影响。会话令牌是在用户登录 Rancher 时创建的。 | ||
|
||
### kubeconfig-default-token-TTL-minutes | ||
存活时间(TTL)(单位:分钟),用于确定 kubeconfig 令牌的到期时间。令牌过期后,API 将拒绝令牌。此设置的值不能大于 [`auth-token-max-ttl-minutes`](#auth-token-max-ttl-minutes) 的值。此设置适用于在请求的 kubeconfig 文件中生成的令牌,不包括[由 Rancher CLI 生成的](#在生成的-kubeconfig-中禁用令牌)令牌。 | ||
**此设置从 2.6.6 版本开始引入**。 | ||
|
||
### kubeconfig-token-ttl-minutes | ||
存活时间(TTL)(单位:分钟),用于确定由 CLI 生成的 kubeconfig 令牌的到期时间。当 [`kubeconfig-generate-token`](#kubeconfig-generate-token) 设为 false 时,则由 CLI 生成令牌。令牌过期后,API 将拒绝令牌。此设置的值不能大于 [`auth-token-max-ttl-minutes`](#auth-token-max-ttl-minutes) 的值。 | ||
**自版本 2.6.6 起已弃用,并将在 2.8.0 中删除。请知悉,此设置将被 [`kubeconfig-default-token-TTL-minutes`](#kubeconfig-default-token-ttl-minutes) 的值替换**。 | ||
|
||
### auth-token-max-ttl-minutes | ||
身份验证令牌的最大生存时间 (TTL)(单位:分钟)。如果用户尝试创建一个 TTL 大于 `auth-token-max-ttl-minutes` 的令牌,Rancher 会将令牌 TTL 设置为 `auth-token-max-ttl-minutes` 的值。身份验证令牌是为验证 API 请求而创建的。 | ||
**2.6.6 版本更改:适用于所有 kubeconfig 令牌和 API 令牌。** | ||
|
||
### kubeconfig-generate-token | ||
如果设置为 true,则通过 UI 请求的 kubeconfig 将包含一个有效的令牌。如果设置为 false,kubeconfig 将包含一个使用 Rancher CLI 提示用户登录的命令。然后,[CLI 将为用户检索和缓存令牌](../reference-guides/cli-with-rancher/kubectl-utility.md#使用-kubectl-和-kubeconfig-令牌进行-ttl-认证)。 |
152 changes: 152 additions & 0 deletions
152
i18n/zh/docusaurus-plugin-content-docs/version-2.10/api/quickstart.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,152 @@ | ||
--- | ||
title: API 快速入门指南 | ||
--- | ||
|
||
<head> | ||
<link rel="canonical" href="https://ranchermanager.docs.rancher.com/zh/api/quickstart"/> | ||
</head> | ||
|
||
你可以通过 Kubernetes API 访问 Rancher 的资源。本指南将帮助你以 Rancher 用户的身份开始使用此 API。 | ||
|
||
1. 在左上角,点击 **☰ > 全局设置**. | ||
2. 找到 `server-url` 字段并复制其地址。 | ||
3. [创建](../reference-guides/user-settings/api-keys.md#创建-api-密钥)一个没有作用域的 Rancher API 密钥。 | ||
|
||
:::danger | ||
|
||
没有作用域的 Rancher API 密钥授予用户可以访问的所有资源的无限制的访问权限。为防止未经授权的使用,此密钥应安全存储并经常轮换。 | ||
|
||
::: | ||
|
||
4. 创建一个 `kubeconfig.yaml` 文件,将 `$SERVER_URL` 替换成上面从全局设置中复制的地址,并且将 `$API_KEY` 替换为上面创建的 Rancher API 密钥: | ||
|
||
```yaml | ||
apiVersion: v1 | ||
kind: Config | ||
clusters: | ||
- name: "rancher" | ||
cluster: | ||
server: "$SERVER_URL" | ||
|
||
users: | ||
- name: "rancher" | ||
user: | ||
token: "$API_KEY" | ||
|
||
contexts: | ||
- name: "rancher" | ||
context: | ||
user: "rancher" | ||
cluster: "rancher" | ||
|
||
current-context: "rancher" | ||
``` | ||
你可以使用任何兼容的工具来引用这个文件,例如 kubectl 或 [client-go](https://github.com/kubernetes/client-go)。快速演示内容请参阅 [kubectl 示例](#api-kubectl-示例) | ||
更多有关处理更复杂证书的设置信息,请参阅[指定 CA 证书](#指定-ca-证书)。 | ||
更多关于可用的 kubeconfig 选项,请参阅[上游文档](https://kubernetes.io/docs/tasks/access-application-cluster/configure-access-multiple-clusters/)。 | ||
## API kubectl 示例 | ||
在此示例中,我们将展示如何使用 kubectl 创建一个项目,然后删除它。关于其他可用的 Rancher 资源列表,请参阅 [API 参考](./api-reference.mdx)。 | ||
:::note | ||
目前,并非所有的 Rancher 资源都可以通过 Rancher Kubernetes API 操作。 | ||
::: | ||
1. 将 KUBECONFIG 环境变量设置为刚才创建的 kubeconfig 文件: | ||
```bash | ||
export KUBECONFIG=$(pwd)/kubeconfig.yaml | ||
``` | ||
|
||
2. 使用 `kubectl explain` 查看项目的可用字段,或者复杂资源的子字段: | ||
|
||
```bash | ||
kubectl explain projects | ||
kubectl explain projects.spec | ||
``` | ||
|
||
不是所有的资源都有详细的输出。 | ||
|
||
3. 在名称为 `project.yaml` 的文件中添加以下内容: | ||
|
||
```yaml | ||
apiVersion: management.cattle.io/v3 | ||
kind: Project | ||
metadata: | ||
# name 应在每个集群的所有项目中都是唯一的 | ||
name: p-abc123 | ||
# generateName 可以替代 `name` 来随机生成一个名称 | ||
# generateName: p- | ||
# namespace 应与 spec.ClusterName 匹配 | ||
namespace: local | ||
spec: | ||
# clusterName 应与目标集群的 `metadata.Name` 匹配 | ||
clusterName: local | ||
description: Example Project | ||
# displayName 是人类可读的名称并且从 UI 中显示 | ||
displayName: Example | ||
``` | ||
4. 创建项目: | ||
```bash | ||
kubectl create -f project.yaml | ||
``` | ||
|
||
5. 删除项目: | ||
|
||
项目删除的方式取决于项目名称的创建方式。 | ||
|
||
**A. 如果在创建项目时使用 `name`**: | ||
|
||
```bash | ||
kubectl delete -f project.yaml | ||
``` | ||
|
||
**B. 如果你使用 `generateName`**: | ||
|
||
将 `$PROJECT_NAME` 替换为 kubectl 创建项目后随机生成的项目名称。 | ||
|
||
```bash | ||
kubectl delete project $PROJECT_NAME -n local | ||
``` | ||
|
||
## 指定 CA 证书 | ||
|
||
为确保你的工具能够识别 Rancher 的 CA 证书,大多数设置都需要对上述模板进行额外修改。 | ||
|
||
1. 在左上角点击 **☰ > 全局设置**. | ||
2. 查找并复制 `ca-certs` 字段中的值。 | ||
3. 将复制的值保存在名称为 `rancher.crt` 的文件中。 | ||
|
||
:::note | ||
如果你的 Rancher 实例由其他服务代理,你必须提取该服务正在使用的证书,并将其添加到 kubeconfig 文件中,如步骤 5 所示。 | ||
::: | ||
|
||
4. 以下命令会将 `rancher.crt` 转换为 base64 输出,除去所有换行符,并使用证书内容更新 kubeconfig 中的 cluster 选项,然后删除 `rancher.crt` 文件: | ||
|
||
```bash | ||
export KUBECONFIG=$PATH_TO_RANCHER_KUBECONFIG | ||
kubectl config set clusters.rancher.certificate-authority-data $(cat rancher.crt | base64 -i - | tr -d '\n') | ||
rm rancher.crt | ||
``` | ||
5. (可选项)如果你使用不受系统信任的自签名证书,则可以通过 kubectl 在 kubeconfig 中设置不安全选项: | ||
|
||
:::danger | ||
|
||
此选项不应该在生产环境中使用,因为它存在安全风险。 | ||
|
||
::: | ||
|
||
```bash | ||
export KUBECONFIG=$PATH_TO_RANCHER_KUBECONFIG | ||
kubectl config set clusters.rancher.insecure-skip-tls-verify true | ||
``` | ||
|
||
如果你的 Rancher 实例由其他服务代理,你必须提取该服务正在使用的证书,并如上面演示的方法,将其添加到 kubeconfig 文件中。 |
93 changes: 93 additions & 0 deletions
93
i18n/zh/docusaurus-plugin-content-docs/version-2.10/api/v3-rancher-api-guide.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,93 @@ | ||
--- | ||
title: API | ||
--- | ||
|
||
<head> | ||
<link rel="canonical" href="https://ranchermanager.docs.rancher.com/zh/reference-guides/about-the-api"/> | ||
</head> | ||
|
||
## 如何使用 API | ||
|
||
API 有自己的用户界面,你可以从 Web 浏览器访问它。这是查看资源、执行操作以及查看等效 cURL 或 HTTP 请求和响应的一种简单的方法。要访问它: | ||
|
||
<Tabs> | ||
<TabItem value="Rancher v2.6.4+"> | ||
|
||
1. 单击右上角的用户头像。 | ||
1. 单击**账号 & API 密钥**。 | ||
1. 在 **API 密钥**下,找到 **API 端点**字段并单击链接。该链接类似于 `https://<RANCHER_FQDN>/v3`,其中 `<RANCHER_FQDN>` 是 Rancher deployment 的完全限定域名。 | ||
|
||
</TabItem> | ||
<TabItem value="Rancher 版本低于 v2.6.4"> | ||
|
||
转到位于 `https://<RANCHER_FQDN>/v3` 的 URL 端点,其中 `<RANCHER_FQDN>` 是你的 Rancher deployment 的完全限定域名。 | ||
|
||
</TabItem> | ||
</Tabs> | ||
|
||
## 认证 | ||
|
||
API 请求必须包含认证信息。认证是通过 [API 密钥](../reference-guides/user-settings/api-keys.md)使用 HTTP 基本认证完成的。API 密钥可以创建新集群并通过 `/v3/clusters/` 访问多个集群。[集群和项目角色](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/manage-role-based-access-control-rbac/cluster-and-project-roles.md)会应用于这些键,并限制账号可以查看的集群和项目以及可以执行的操作。 | ||
|
||
默认情况下,某些集群级别的 API 令牌是使用无限期 TTL(`ttl=0`)生成的。换言之,除非你让令牌失效,否则 `ttl=0` 的 API 令牌永远不会过期。有关如何使 API 令牌失效的详细信息,请参阅 [API 令牌](api-tokens.md)。 | ||
|
||
## 发出请求 | ||
|
||
该 API 通常是 RESTful 的,但是还具有多种功能。这些功能可以使客户端发现所有内容,因此可以编写通用客户端,而不必为每种资源编写特定代码。有关通用 API 规范的详细信息,请参阅[此处](https://github.com/rancher/api-spec/blob/master/specification.md)。 | ||
|
||
- 每种类型都有一个 Schema,这个 Schema 描述了以下内容: | ||
- 用于获取此类资源集合的 URL | ||
- 资源可以具有的每个字段及其类型、基本验证规则、是必填还是可选字段等 | ||
- 在此类资源上可以执行的每个操作,以及它们的输入和输出(也作为 schema) | ||
- 允许过滤的每个字段 | ||
- 集合本身或集合中的单个资源可以使用的 HTTP 操作方法 | ||
|
||
|
||
- 因此,你可以只加载 schema 列表并了解 API 的所有信息。实际上,这是 API 的 UI 工作方式,它不包含特定于 Rancher 本身的代码。每个 HTTP 响应中的 `X-Api-Schemas` 标头都会发送获取 Schemas 的 URL。你可以按照每个 schema 上的 `collection` 链接了解要在哪里列出资源,并在返回资源中的其他 `links` 中获取其他信息。 | ||
|
||
- 在实践中,你可能只想构造 URL 字符串。我们强烈建议将此限制为在顶层列出的集合 (`/v3/<type>`),或获取特定资源 (`/v3/<type>/<id>`)。除此之外的任何内容都可能在将来的版本中发生更改。 | ||
|
||
- 资源之间相互之间有联系,称为链接(links)。每个资源都包含一个 `links` 映射,其中包含链接名称和用于检索该信息的 URL。同样,你应该 `GET` 资源并遵循 `links` 映射中的 URL,而不是自己构造这些字符串。 | ||
|
||
- 大多数资源都有操作(action),表示可以执行某个操作或改变资源的状态。要使用操作,请将 HTTP `POST` 请求发送到 `actions` 映射中你想要的操作的 URL。某些操作需要输入或生成输出,请参阅每种类型的独立文档或 schema 以获取具体信息。 | ||
|
||
- 要编辑资源,请将 HTTP `PUT` 请求发送到资源上的 `links.update` 链接,其中包含要更改的字段。如果链接丢失,则你无权更新资源。未知字段和不可编辑的字段将被忽略。 | ||
|
||
- 要删除资源,请将 HTTP `DELETE` 请求发送到资源上的 `links.remove` 链接。如果链接丢失,则你无权更新资源。 | ||
|
||
- 要创建新资源,HTTP `POST` 到 schema(即 `/v3/<type>`)中的集合 URL。 | ||
|
||
## 过滤 | ||
|
||
你可以使用 HTTP 查询参数的公共字段在服务器端过滤大多数集合。`filters` 映射显示了可以过滤的字段,以及过滤后的值在你发起的请求中是什么。API UI 具有设置过滤和显示适当请求的控件。对于简单的 "equals" 匹配,它只是 `field=value`。你可以将修饰符添加到字段名称,例如 `field_gt=42` 表示“字段大于 42”。详情请参阅 [API 规范](https://github.com/rancher/api-spec/blob/master/specification.md#filtering)。 | ||
|
||
## 排序 | ||
|
||
你可以使用 HTTP 查询参数的公共字段在服务器端排序大多数集合。`sortLinks` 映射显示了可用的排序,以及用于获取遵循该排序的集合的 URL。它还包括当前响排序依据的信息(如果指定)。 | ||
|
||
## 分页 | ||
|
||
默认情况下,API 响应以每页 100 个资源的限制进行分页。你可以通过 `limit` 查询参数进行更改,最大为 1000,例如 `/v3/pods?limit=1000`。集合响应中的 `pagination` 映射能让你知道你是否拥有完整的结果集,如果没有,则会指向下一页的链接。 | ||
|
||
## 捕获 Rancher API 调用 | ||
|
||
你可以使用浏览器开发人员工具来捕获 Rancher API 的调用方式。例如,你可以按照以下步骤使用 Chrome 开发人员工具来获取用于配置 RKE 集群的 API 调用: | ||
|
||
1. 在 Rancher UI 中,转到**集群管理**并单击**创建**。 | ||
1. 单击某个集群类型。此示例使用 Digital Ocean。 | ||
1. 使用集群名称和节点模板填写表单,但不要单击**创建**。 | ||
1. 在创建集群之前,你需要打开开发人员工具才能看到正在记录的 API 调用。要打开工具,右键单击 Rancher UI,然后单击**检查**。 | ||
1. 在开发者工具中,单击 **Network** 选项卡。 | ||
1. 在 **Network** 选项卡上,确保选择了 **Fetch/XHR**。 | ||
1. 在 Rancher UI 中,单击**创建**。在开发者工具中,你应该会看到一个名为 `cluster?_replace=true` 的新网络请求。 | ||
1. 右键单击 `cluster?_replace=true` 并单击**复制 > 复制为 cURL**。 | ||
1. 将结果粘贴到文本编辑器中。你将能够看到 POST 请求,包括被发送到的 URL、所有标头以及请求的完整正文。此命令可用于从命令行创建集群。请注意,请求包含凭证,因此请将请求存储在安全的地方。 | ||
|
||
### 启用在 API 中查看 | ||
|
||
你还可以查看针对各自集群和资源捕获的 Rancher API 调用。 默认情况下不启用此功能。 要启用它: | ||
|
||
1. 单击 UI 右上角的 **用户图标**,然后从下拉菜单中选择 **偏好设置** | ||
1. 在**高级功能**部分下,单击**启用"在 API 中查看"** | ||
|
||
选中后,**在 API 中查看**链接现在将显示在 UI 资源页面上的 **⋮** 子菜单下。 |
Oops, something went wrong.