Skip to content

Commit

Permalink
Merge pull request #1636 from sunilarjun/add-v2.11
Browse files Browse the repository at this point in the history
Adding v2.11 Rancher Docs - UI Preview
  • Loading branch information
sunilarjun authored Feb 18, 2025
2 parents 8c76072 + 10b84c4 commit 535197b
Show file tree
Hide file tree
Showing 915 changed files with 146,404 additions and 0 deletions.
17 changes: 17 additions & 0 deletions docusaurus.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,11 @@ module.exports = {
current: {
label: 'Latest',
},
'2.11': {
label: 'v2.11 (Preview)',
path: 'v2.11',
banner: 'unreleased'
},
'2.10': {
label: 'v2.10',
path: 'v2.10',
Expand Down Expand Up @@ -1667,6 +1672,18 @@ module.exports = {
to: '/how-to-guides/new-user-guides/kubernetes-resources-setup/workloads-and-pods',
from: '/pages-for-subheaders/workloads-and-pods'
}, // Redirects for pages-for-subheaders removal [latest] (end)
{ // Redirects for dashboard v2.11 Preview (start)
to: '/v2.11/how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/authentication-config/configure-google-oauth',
from: '/v2.11/admin-settings/authentication/google',
},
{
to: '/v2.11/how-to-guides/advanced-user-guides/monitoring-v2-configuration-guides',
from: '/v2.11/monitoring-alerting/configuration',
},
{
to: '/v2.11/integrations-in-rancher/monitoring-and-alerting',
from: '/v2.11/monitoring-alerting',
}, // Redirects for dashboard v2.11 Preview (end)
{ // Redirects for dashboard#11114 (start)
to: '/v2.10/how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/authentication-config/configure-google-oauth',
from: '/v2.10/admin-settings/authentication/google',
Expand Down
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" />
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 i18n/zh/docusaurus-plugin-content-docs/version-2.11/api/quickstart.md
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 文件中。
Loading

0 comments on commit 535197b

Please sign in to comment.