mirror of
https://github.com/rancher/rancher-docs.git
synced 2026-09-25 04:28:15 +00:00
Merge pull request #1264 from GGGitBoy/rancher-docs-2.6
Update missing translation about cis、istio、monitoring and logging parts for v2.6
This commit is contained in:
+17
@@ -0,0 +1,17 @@
|
||||
---
|
||||
title: CIS 扫描指南
|
||||
---
|
||||
|
||||
<head>
|
||||
<link rel="canonical" href="https://ranchermanager.docs.rancher.com/zh/how-to-guides/advanced-user-guides/cis-scan-guides"/>
|
||||
</head>
|
||||
|
||||
- [安装 Rancher CIS Benchmark](install-rancher-cis-benchmark.md)
|
||||
- [卸载 Rancher CIS Benchmark](uninstall-rancher-cis-benchmark.md)
|
||||
- [运行扫描](run-a-scan.md)
|
||||
- [定时运行扫描](run-a-scan-periodically-on-a-schedule.md)
|
||||
- [跳过测试](skip-tests.md)
|
||||
- [查看报告](view-reports.md)
|
||||
- [为 Rancher CIS Benchmark 启用告警](enable-alerting-for-rancher-cis-benchmark.md)
|
||||
- [为定时扫描配置告警](configure-alerts-for-periodic-scan-on-a-schedule.md)
|
||||
- [为集群扫描创建自定义 Benchmark 版本](create-a-custom-benchmark-version-to-run.md)
|
||||
+125
@@ -0,0 +1,125 @@
|
||||
---
|
||||
title: 启用实验功能
|
||||
---
|
||||
|
||||
<head>
|
||||
<link rel="canonical" href="https://ranchermanager.docs.rancher.com/zh/how-to-guides/advanced-user-guides/enable-experimental-features"/>
|
||||
</head>
|
||||
|
||||
Rancher 包含一些默认关闭的实验功能。在某些情况下,例如当你认为使用[不支持的存储类型](unsupported-storage-drivers.md)的好处大于使用未经测试的功能的风险时,你可能想要启用实验功能。为了让你能够试用这些默认关闭的功能,我们引入了功能开关(feature flag)。
|
||||
|
||||
实验功能可以通过以下三种方式启用:
|
||||
|
||||
- [使用 CLI](#启动-rancher-时启用功能):在使用 CLI 安装 Rancher 时,使用功能开关默认启用某个功能。
|
||||
- [使用 Rancher UI](#使用-rancher-ui-启用功能):在**设置**页面启用功能。
|
||||
- [使用 Rancher API](#使用-rancher-api-启用功能):安装 Rancher 后启用功能。
|
||||
|
||||
每个功能均有以下两个值:
|
||||
|
||||
- 默认值:可以通过在命令行使用标志或环境变量进行配置。
|
||||
- 设置值:可以通过 Rancher API 或 UI 进行配置。
|
||||
|
||||
如果没有设置值,Rancher 会使用默认值。
|
||||
|
||||
设置值是通过 API 设置的,而默认值是通过命令行设置。因此,如果你使用 API 或 UI 启用或禁用某个功能,命令行中设置的值将被覆盖。
|
||||
|
||||
如果你安装 Rancher 后使用 Rancher API 将功能开关设置为 true,然后在使用命令升级 Rancher 时将功能开关设置为 false,在这种情况下,虽然默认值会是 false,但是该功能依然会被启用,因为它是通过 API 设置的。如果你随后使用 Rancher API 删除设置值(true)并将它设置为 NULL,则默认值(false)将生效。有关详细信息,请参阅[功能开关页面](../../../getting-started/installation-and-upgrade/installation-references/feature-flags.md)。
|
||||
|
||||
## 启动 Rancher 时启用功能
|
||||
|
||||
安装 Rancher 时,使用功能开关启用你所需的功能。通过单节点容器安装 Rancher,和在 Kubernetes 集群上安装 Rancher 对应的命令有所不同。
|
||||
|
||||
### Kubernetes 安装的情况下启用功能
|
||||
|
||||
:::note
|
||||
|
||||
通过 Rancher API 设置的值会覆盖命令行传入的值。
|
||||
|
||||
:::
|
||||
|
||||
使用 Helm Chart 安装 Rancher 时,使用 `--set` 选项。下面的示例通过传递功能开关名称(用逗号分隔)来启用两个功能:
|
||||
|
||||
```
|
||||
helm install rancher rancher-latest/rancher \
|
||||
--namespace cattle-system \
|
||||
--set hostname=rancher.my.org \
|
||||
--set 'extraEnv[0].name=CATTLE_FEATURES'
|
||||
--set 'extraEnv[0].value=<FEATURE-FLAG-NAME-1>=true,<FEATURE-FLAG-NAME-2>=true'
|
||||
```
|
||||
|
||||
:::note
|
||||
|
||||
如果你安装的是 alpha 版本,Helm 要求你在命令中添加 `--devel` 选项。
|
||||
|
||||
:::
|
||||
|
||||
### 离线安装的情况下渲染 Helm Chart
|
||||
|
||||
如果你是在离线环境安装 Rancher 的,在使用 Helm 安装 Rancher 之前,你需要添加一个 Helm Chart 仓库并渲染一个 Helm 模板。详情请参见[离线安装文档](../../../getting-started/installation-and-upgrade/other-installation-methods/air-gapped-helm-cli-install/install-rancher-ha.md)。
|
||||
|
||||
以下是在渲染 Helm 模板时传入功能开关名称的命令示例。下面的示例通过传递功能开关名称(用逗号分隔)来启用两个功能。
|
||||
|
||||
Helm 命令如下:
|
||||
|
||||
```
|
||||
helm install rancher ./rancher-<VERSION>.tgz \
|
||||
--namespace cattle-system \
|
||||
--set hostname=<RANCHER.YOURDOMAIN.COM> \
|
||||
--set rancherImage=<REGISTRY.YOURDOMAIN.COM:PORT>/rancher/rancher \
|
||||
--set ingress.tls.source=secret \
|
||||
--set systemDefaultRegistry=<REGISTRY.YOURDOMAIN.COM:PORT> \ # 设置在 Rancher 中使用的私有镜像仓库
|
||||
--set useBundledSystemChart=true # 使用打包的 Rancher System Chart
|
||||
--set 'extraEnv[0].name=CATTLE_FEATURES'
|
||||
--set 'extraEnv[0].value=<FEATURE-FLAG-NAME-1>=true,<FEATURE-FLAG-NAME-2>=true'
|
||||
```
|
||||
|
||||
### Docker 安装的情况下启用功能
|
||||
|
||||
如果 Rancher 是使用 Docker 安装的,请使用 `--features` 选项。下面的示例通过传递功能开关名称(用逗号分隔)来启用两个功能:
|
||||
|
||||
```
|
||||
docker run -d -p 80:80 -p 443:443 \
|
||||
--restart=unless-stopped \
|
||||
rancher/rancher:rancher-latest \
|
||||
--features=<FEATURE-FLAG-NAME-1>=true,<FEATURE-FLAG-NAME-2>=true
|
||||
```
|
||||
|
||||
## 使用 Rancher UI 启用功能
|
||||
|
||||
1. 在左上角,单击 **☰ > 全局设置**。
|
||||
1. 单击**功能开关**。
|
||||
1. 如需启用某个功能,找到该已禁用的功能,并点击**⋮ > 激活**。
|
||||
|
||||
**结果**:该功能已启用。
|
||||
|
||||
### 使用 Rancher UI 禁用功能
|
||||
|
||||
1. 在左上角,单击 **☰ > 全局设置**。
|
||||
1. 单击**功能开关**。你将看到实验功能列表。
|
||||
1. 如需禁用某个功能,找到该已启用的功能,并点击**⋮ > 停用**。
|
||||
|
||||
**结果**:该功能已禁用。
|
||||
|
||||
## 使用 Rancher API 启用功能
|
||||
|
||||
1. 前往 `<RANCHER-SERVER-URL>/v3/features`。
|
||||
1. 在 `data` 中,你会看到一个数组,该数组包含所有能通过功能开关启用的功能。功能的名称在 `id` 字段中。单击要启用的功能的名称。
|
||||
1. 在左上角的 **Operations** 下,点击 **Edit**。
|
||||
1. 在 **Value** 下拉菜单中,单击 **True**。
|
||||
1. 单击 **Show Request**。
|
||||
1. 单击 **Send Request**。
|
||||
1. 点击 **Close**。
|
||||
|
||||
**结果**:该功能已启用。
|
||||
|
||||
### 使用 Rancher API 禁用功能
|
||||
|
||||
1. 前往 `<RANCHER-SERVER-URL>/v3/features`。
|
||||
1. 在 `data` 中,你会看到一个数组,该数组包含所有能通过功能开关启用的功能。功能的名称在 `id` 字段中。单击要启用的功能的名称。
|
||||
1. 在左上角的 **Operations** 下,点击 **Edit**。
|
||||
1. 在 **Value** 下拉菜单中,单击 **False**。
|
||||
1. 单击 **Show Request**。
|
||||
1. 单击 **Send Request**。
|
||||
1. 点击 **Close**。
|
||||
|
||||
**结果**:该功能已禁用。
|
||||
+34
@@ -0,0 +1,34 @@
|
||||
---
|
||||
title: 设置指南
|
||||
---
|
||||
|
||||
<head>
|
||||
<link rel="canonical" href="https://ranchermanager.docs.rancher.com/zh/how-to-guides/advanced-user-guides/istio-setup-guide"/>
|
||||
</head>
|
||||
|
||||
本文介绍如何启用 Istio 并在你的项目中使用它。
|
||||
|
||||
如果你使用 Istio 进行流量管理,则需要允许外部流量进入集群。在这种情况下,你将需要执行以下所有步骤。
|
||||
|
||||
## 先决条件
|
||||
|
||||
本指南假设你已经[安装 Rancher](../../../getting-started/installation-and-upgrade/installation-and-upgrade.md),且已经[配置了一个单独的 Kubernetes 集群](../../new-user-guides/kubernetes-clusters-in-rancher-setup/kubernetes-clusters-in-rancher-setup.md)并要在该集群上安装 Istio。
|
||||
|
||||
集群中的节点必须满足 [CPU 和内存要求](../../../integrations-in-rancher/istio/cpu-and-memory-allocations.md)。
|
||||
|
||||
Istio 控制的工作负载和服务必须满足 [Istio 要求](https://istio.io/docs/setup/additional-setup/requirements/)。
|
||||
|
||||
## 安装
|
||||
|
||||
:::tip 快速设置提示:
|
||||
|
||||
如果你不需要外部流量到达 Istio,而只想设置 Istio 以监控和跟踪集群内的流量,请跳过[设置 Istio Gateway](set-up-istio-gateway.md)和[设置 Istio 的流量管理组件](set-up-traffic-management.md)步骤。
|
||||
|
||||
:::
|
||||
|
||||
1. [在集群中启用 Istio。](enable-istio-in-cluster.md)
|
||||
2. [在命名空间中启用 Istio。](enable-istio-in-namespace.md)
|
||||
3. [使用 Istio Sidecar 添加部署和服务。](use-istio-sidecar.md)
|
||||
4. [设置 Istio Gateway。](set-up-istio-gateway.md)
|
||||
5. [设置 Istio 的流量管理组件。](set-up-traffic-management.md)
|
||||
6. [生成和查看流量。](generate-and-view-traffic.md)
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
---
|
||||
title: Monitoring/Alerting 指南
|
||||
---
|
||||
|
||||
<head>
|
||||
<link rel="canonical" href="https://ranchermanager.docs.rancher.com/zh/how-to-guides/advanced-user-guides/monitoring-alerting-guides"/>
|
||||
</head>
|
||||
|
||||
- [启用 Monitoring](enable-monitoring.md)
|
||||
- [卸载 Monitoring](uninstall-monitoring.md)
|
||||
- [为工作负载设置 Monitoring](set-up-monitoring-for-workloads.md)
|
||||
- [自定义 Grafana 仪表板](customize-grafana-dashboard.md)
|
||||
- [持久化 Grafana 仪表板](create-persistent-grafana-dashboard.md)
|
||||
- [调试高内存用量](debug-high-memory-usage.md)
|
||||
- [迁移 Monitoring V1 到 V2](migrate-to-rancher-v2.5+-monitoring.md)
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
---
|
||||
title: Prometheus Federator 指南
|
||||
---
|
||||
|
||||
<head>
|
||||
<link rel="canonical" href="https://ranchermanager.docs.rancher.com/zh/how-to-guides/advanced-user-guides/monitoring-alerting-guides/prometheus-federator-guides"/>
|
||||
</head>
|
||||
|
||||
- [启用 Prometheus Federator](enable-prometheus-federator.md)
|
||||
- [卸载 Prometheus Federator](uninstall-prometheus-federator.md)
|
||||
- [自定义 Grafana 仪表板](customize-grafana-dashboards.md)
|
||||
- [为工作负载设置 Prometheus Federator](set-up-workloads.md)
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
---
|
||||
title: 高级配置
|
||||
---
|
||||
|
||||
<head>
|
||||
<link rel="canonical" href="https://ranchermanager.docs.rancher.com/zh/how-to-guides/advanced-user-guides/monitoring-v2-configuration-guides/advanced-configuration"/>
|
||||
</head>
|
||||
|
||||
### Alertmanager
|
||||
|
||||
有关配置 Alertmanager 自定义资源的信息,请参阅[此页面。](alertmanager.md)
|
||||
|
||||
### Prometheus
|
||||
|
||||
有关配置 Prometheus 自定义资源的信息,请参阅[此页面。](prometheus.md)
|
||||
|
||||
### PrometheusRules
|
||||
|
||||
有关配置 PrometheusRules 自定义资源的信息,请参阅[此页面。](prometheusrules.md)
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
---
|
||||
title: 配置 PrometheusRule
|
||||
title: PrometheusRule 配置
|
||||
---
|
||||
|
||||
PrometheusRule 定义了一组 Prometheus 告警和/或记录规则。
|
||||
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
---
|
||||
title: 配置
|
||||
---
|
||||
|
||||
<head>
|
||||
<link rel="canonical" href="https://ranchermanager.docs.rancher.com/zh/how-to-guides/advanced-user-guides/monitoring-v2-configuration-guides"/>
|
||||
</head>
|
||||
|
||||
本文介绍在 Rancher UI 中配置 Monitoring V2 的一些最重要选项。
|
||||
|
||||
有关为 Prometheus 配置自定义抓取目标和规则的信息,请参阅 [Prometheus Operator](https://github.com/prometheus-operator/prometheus-operator) 的上游文档。Prometheus Operator [设计文档](https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/design.md)中解释了一些最重要的自定义资源。Prometheus Operator 文档还可以帮助你设置 RBAC、Thanos 或进行自定义配置。
|
||||
|
||||
## 设置资源限制和请求
|
||||
|
||||
安装 `rancher-monitoring` 时可以配置 Monitoring 应用的资源请求和限制。有关默认限制的更多信息,请参阅[此页面](../../../reference-guides/monitoring-v2-configuration/helm-chart-options.md#配置资源限制和请求)。
|
||||
|
||||
:::tip
|
||||
|
||||
在空闲集群上,Monitoring 可能会占用很多 CPU 资源。要提高性能,请关闭 Prometheus Adapter。
|
||||
|
||||
:::
|
||||
|
||||
## Prometheus 配置
|
||||
|
||||
通常不需要直接编辑 Prometheus 自定义资源。
|
||||
|
||||
相反,要让 Prometheus 抓取自定义指标,你只需创建一个新的 ServiceMonitor 或 PodMonitor 来将 Prometheus 配置为抓取其他指标。
|
||||
|
||||
### ServiceMonitor 和 PodMonitor 配置
|
||||
|
||||
有关详细信息,请参阅[此页面](../../../reference-guides/monitoring-v2-configuration/servicemonitors-and-podmonitors.md)。
|
||||
|
||||
### 高级 Prometheus 配置
|
||||
|
||||
有关直接编辑 Prometheus 自定义资源(对高级用例可能有帮助)的更多信息,请参阅[此页面](advanced-configuration/prometheus.md)。
|
||||
|
||||
## Alertmanager 配置
|
||||
|
||||
Alertmanager 自定义资源通常不需要直接编辑。在常见用例中,你可以通过更新路由和接收器来管理告警。
|
||||
|
||||
路由和接收器是 Alertmanager 自定义资源配置的一部分。在 Rancher UI 中,路由(Route)和接收器(Receiver)并不是真正的自定义资源,而是 Prometheus Operator 用来将你的配置与 Alertmanager 自定义资源同步的伪自定义资源。当路由和接收器更新时,Monitoring 应用将自动更新 Alertmanager 来反映这些更改。
|
||||
|
||||
对于一些高级用例,你可能需要直接配置 Alertmanager。有关详细信息,请参阅[此页面](advanced-configuration/alertmanager.md)。
|
||||
|
||||
### 接收器
|
||||
|
||||
接收器(Receiver)用于设置通知。有关如何配置接收器的详细信息,请参阅[此页面](../../../reference-guides/monitoring-v2-configuration/receivers.md)。
|
||||
|
||||
### 路由
|
||||
|
||||
路由(Route)在通知到达接收器之前过滤它们。每条路由都需要引用一个已经配置好的接收器。有关如何配置路由的详细信息,请参阅[此页面](../../../reference-guides/monitoring-v2-configuration/routes.md)。
|
||||
|
||||
### 高级配置
|
||||
|
||||
有关直接编辑 Alertmanager 自定义资源(对高级用例可能有帮助)的更多信息,请参阅[此页面](advanced-configuration/alertmanager.md)。
|
||||
+110
@@ -0,0 +1,110 @@
|
||||
---
|
||||
title: CIS 扫描
|
||||
---
|
||||
|
||||
<head>
|
||||
<link rel="canonical" href="https://ranchermanager.docs.rancher.com/zh/integrations-in-rancher/cis-scans"/>
|
||||
</head>
|
||||
|
||||
Rancher 可以通过运行安全扫描来检查 Kubernetes 是否按照 CIS Kubernetes Benchmark 中定义的安全最佳实践进行部署。CIS 扫描可以运行在任何 Kubernetes 集群,包括托管的 Kubernetes,例如 EKS、AKS 和 GKE。
|
||||
|
||||
`rancher-cis-benchmark` 应用使用了 <a href="https://github.com/aquasecurity/kube-bench" target="_blank">kube-bench,</a> ,这是 Aqua Security 的开源工具,用于检查集群是否符合 CIS Kubernetes Benchmark。此外,为了生成集群级别的报告,此应用使用了 <a href="https://github.com/vmware-tanzu/sonobuoy" target="_blank">Sonobuoy</a> 来聚合报告。
|
||||
|
||||
## 关于 CIS Benchmark
|
||||
|
||||
CIS(Center for Internet Security)是一个 501(c\)(3) 非营利组织,成立于 2000 年 10 月,其使命是识别、开发、验证、促进和维持网络防御的最佳实践方案,并建立和指导社区,以在网络空间中营造信任的环境。该组织总部位于纽约东格林布什,其成员包括大公司、政府机构和学术机构。
|
||||
|
||||
CIS Benchmark 是目标系统安全配置的最佳实践。CIS Benchmark 是由安全专家、技术供应商、公开和私人社区成员,以及 CIS Benchmark 开发团队共同志愿开发的。
|
||||
|
||||
在 CIS 网站上[注册](https://learn.cisecurity.org/benchmarks)以查看官方 Benchmark 文档。
|
||||
|
||||
## 关于生成的报告
|
||||
|
||||
每次扫描都会生成一份报告,你可以在 Rancher UI 中查看该报告,并以 CSV 格式下载它。
|
||||
|
||||
默认情况下使用 CIS Benchmark v1.6。
|
||||
|
||||
Benchmark 版本包含在生成的报告中。
|
||||
|
||||
Benchmark 提供两种类型的建议,分别是自动(Automated)和手动(Manual)。Benchmark 中标记为 Manual 的建议不包含在生成的报告中。
|
||||
|
||||
一些测试会被标记为“不适用”。由于 Rancher 配置 RKE 集群的方式,这些测试不会在任何 CIS 扫描中运行。有关如何审核测试结果,以及为什么某些测试会被标记为不适用,请参阅 Rancher 的 Kubernetes 对应版本的[自测指南](../../reference-guides/rancher-security/rancher-security.md#CIS-Benchmark-和自我评估)。
|
||||
|
||||
该报告包含以下信息:
|
||||
|
||||
| 报告中的列 | 描述 |
|
||||
|-------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `id` | CIS Benchmark 的 ID 号。 |
|
||||
| `description` | CIS Benchmark 测试的描述。 |
|
||||
| `remediation` | 为了通过测试需要修复的内容。 |
|
||||
| `state` | 测试的状态,可以是通过、失败、跳过或不适用。 |
|
||||
| `node_type` | 节点角色,角色决定了在节点上运行的测试。主测试在 controlplane 节点上运行,etcd 测试在 etcd 节点上运行,节点测试在 Worker 节点上运行。 |
|
||||
| `audit` | 这是 `kube-bench` 为此测试运行的审计检查。 |
|
||||
| `audit_config` | 适用于审计脚本的任何配置。 |
|
||||
| `test_info` | `kube-bench` 报告的测试相关信息(如果存在)。 |
|
||||
| `commands` | `kube-bench` 报告的测试相关的命令(如果存在)。 |
|
||||
| `config_commands` | `kube-bench` 报告的测试相关的配置数据(如果存在)。 |
|
||||
| `actual_value` | 测试的实际值。如果由 `kube-bench` 报告,则会显示。 |
|
||||
| `expected_result` | 测试的预期值。如果由 `kube-bench` 报告,则会显示。 |
|
||||
|
||||
请参阅[集群加固指南中的表格](../../reference-guides/rancher-security/rancher-security.md),以了解 Kubernetes、Benchmark、Rancher 以及我们的集群强化指南的版本对应关系。另外,请参阅强化指南,以获取符合 CIS 的集群的配置文件以及修复失败测试的信息。
|
||||
|
||||
## 测试配置文件
|
||||
|
||||
以下是可用的配置文件:
|
||||
|
||||
- Generic CIS 1.5
|
||||
- Generic CIS 1.6
|
||||
- RKE permissive 1.5
|
||||
- RKE hardened 1.5
|
||||
- RKE permissive 1.6
|
||||
- RKE hardened 1.6
|
||||
- RKE2 permissive 1.5
|
||||
- RKE2 hardened 1.5
|
||||
- RKE2 permissive 1.6
|
||||
- RKE2 hardened 1.6
|
||||
- AKS
|
||||
- EKS
|
||||
- GKE
|
||||
|
||||
你还可以通过保存一组要跳过的测试来自定义配置文件。
|
||||
|
||||
所有配置文件都会有一组不适用的测试,CIS 扫描会跳过这些测试。RKE 集群管理 Kubernetes 的方式导致这些测试被认为不适用。
|
||||
|
||||
RKE 集群扫描配置文件有两种类型:
|
||||
|
||||
- **Permissive**:此配置文件有一组要跳过的测试,跳过的原因是这些测试会在默认的 RKE Kubernetes 集群上失败。除了跳过的测试列表之外,配置文件也不会运行不适用的测试。
|
||||
- **Hardened**:此配置文件不会跳过任何测试(不适用的测试除外)。
|
||||
|
||||
EKS 和 GKE 集群扫描的配置文件基于这些集群类型特定的 CIS Benchmark 版本。
|
||||
|
||||
要通过 “Hardened” 配置文件,你需要遵从[强化指南](../../reference-guides/rancher-security/rancher-security.md#Rancher-加固指南)并使用强化指南中定义的 `cluster.yml` 来配置一个强化集群。
|
||||
|
||||
默认配置文件和支持的 CIS Benchmark 版本取决于扫描的集群类型:
|
||||
|
||||
`rancher-cis-benchmark` 支持 CIS 1.6 Benchmark 版本。
|
||||
|
||||
- RKE Kubernetes 集群默认使用 RKE Permissive 1.6 配置文件。
|
||||
- EKS 和 GKE 有自己的 CIS Benchmark,由 `kube-bench` 发布。这些集群默认使用相应的测试配置文件。
|
||||
- RKE2 Kubernetes 集群默认使用 RKE2 Permissive 1.6 配置文件。
|
||||
- RKE、RKE2、EKS 和 GKE 以外的集群类型默认使用 Generic CIS 1.5 配置文件。
|
||||
|
||||
## 跳过和不适用的测试
|
||||
|
||||
有关要跳过和不适用的测试列表,请参阅[此页面](../../how-to-guides/advanced-user-guides/cis-scan-guides/skip-tests.md)。
|
||||
|
||||
目前,只有用户定义的跳过测试会在生成报告中标记为跳过。
|
||||
|
||||
如果某个默认配置文件将某个测试定义为跳过,则该测试也会标记为不适用。
|
||||
|
||||
## RBAC
|
||||
|
||||
有关权限的详细信息,请参阅[此页面](rbac-for-cis-scans.md)。
|
||||
|
||||
## 配置
|
||||
|
||||
有关为扫描、配置文件和 Benchmark 版本配置自定义资源的更多信息,请参阅[此页面](configuration-reference.md)。
|
||||
|
||||
## 操作指南
|
||||
|
||||
要了解如何运行 CIS 扫描,请参阅 [CIS 扫描指南](../../how-to-guides/advanced-user-guides/cis-scan-guides/cis-scan-guides.md)。
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
---
|
||||
title: 配置选项
|
||||
---
|
||||
|
||||
<head>
|
||||
<link rel="canonical" href="https://ranchermanager.docs.rancher.com/zh/integrations-in-rancher/istio/configuration-options"/>
|
||||
</head>
|
||||
|
||||
### Egress 支持
|
||||
|
||||
默认情况下,Egress 网关是禁用的,但你可以在安装或升级时使用 values.yaml 或[覆盖文件](#覆盖文件)启用它。
|
||||
|
||||
### 启用自动 Sidecar 注入
|
||||
|
||||
默认情况下,自动 sidecar 注入是禁用的。要启用此功能,请在安装或升级时在 values.yaml 中设置 `sidecarInjectorWebhook.enableNamespacesByDefault=true`。这会自动将 Istio sidecar 注入到所有已部署的新命名空间。
|
||||
|
||||
### 覆盖文件
|
||||
|
||||
覆盖文件用于为 Istio 进行更广泛的配置。它允许你更改 [IstioOperator API](https://istio.io/latest/docs/reference/config/istio.operator.v1alpha1/) 中可用的任何值。你可以自定义默认安装以满足你的需求。
|
||||
|
||||
覆盖文件将在 Istio Chart 默认安装的基础上添加配置。换言之,你不需要为安装中已定义的组件进行重新定义。
|
||||
|
||||
有关覆盖文件的更多信息,请参阅 [Istio 文档](https://istio.io/latest/docs/setup/install/istioctl/#configure-component-settings)
|
||||
|
||||
### 选择器和抓取配置
|
||||
|
||||
Monitoring 应用设置了 `prometheus.prometheusSpec.ignoreNamespaceSelectors=false`,即在默认情况下跨所有命名空间进行监控。这样,你可以查看部署在具有 `istio-injection=enabled` 标签的命名空间中的资源的流量、指标和图。
|
||||
|
||||
如果你想将 Prometheus 限制为特定的命名空间,请设置 `prometheus.prometheusSpec.ignoreNamespaceSelectors=true`。完成此操作后,你需要添加其他配置来继续监控你的资源。
|
||||
|
||||
详情请参阅[本节](selectors-and-scrape-configurations.md)。
|
||||
|
||||
### 在具有 Pod 安全策略的情况下启用 Istio
|
||||
|
||||
详情请参阅[本节](pod-security-policies.md)。
|
||||
|
||||
### 在 RKE2 集群上安装 Istio 的其他步骤
|
||||
|
||||
详情请参阅[本节](install-istio-on-rke2-cluster.md)。
|
||||
|
||||
### 项目网络隔离的其他步骤
|
||||
|
||||
详情请参阅[本节](project-network-isolation.md)。
|
||||
+148
@@ -0,0 +1,148 @@
|
||||
---
|
||||
title: Istio
|
||||
---
|
||||
|
||||
<head>
|
||||
<link rel="canonical" href="https://ranchermanager.docs.rancher.com/zh/integrations-in-rancher/istio"/>
|
||||
</head>
|
||||
|
||||
[Istio](https://istio.io/) 是一种开源工具,可以让 DevOps 团队更轻松地观察、控制、排查并保护复杂的微服务网络中的流量。
|
||||
|
||||
随着微服务网络的变化和增长,微服务网络之间的交互变得越来越难以管理和理解。在这种情况下,将服务网格作为单独的基础设施层是非常有用的。Istio 的服务网格可以让你在不直接更改微服务的情况下控制微服务之间的流量。
|
||||
|
||||
Rancher 与 Istio 集成,使得管理员或集群所有者可以将 Istio 交给开发者团队,然后开发者使用 Istio 执行安全策略,排查问题,或为蓝绿部署,金丝雀部署,和 A/B 测试进行流量管理。
|
||||
|
||||
此核心服务网格支持但不限于以下功能:
|
||||
|
||||
- **管理流量**:例如入口和出口路由、断路、镜像。
|
||||
- **安全**:具有用于验证和授权流量和用户的资源,包括 mTLS。
|
||||
- **可观察性**:观察日志、指标和分布式流量。
|
||||
|
||||
[设置 Istio](../../how-to-guides/advanced-user-guides/istio-setup-guide/istio-setup-guide.md) 后,你可以通过 Rancher UI、`kubectl` 或 ` Istioctl` 来使用 Istio 的 controlplane 功能。
|
||||
|
||||
Istio 需要由 `cluster-admin` 设置后才能在项目中使用。
|
||||
|
||||
## Rancher 2.5 的新功能
|
||||
|
||||
Istio 已简化了整体架构。结合 Pilot、Citadel、Galley 和 sidecar injector 创建了一个单独的组件 Istiod。Node Agent 功能也已合并到 istio-agent 中。
|
||||
|
||||
以前由 Istio 安装的插件(cert-manager、Grafana、Jaeger、Kiali、Prometheus、Zipkin)现在需要单独安装。Istio 支持安装来自 Istio 项目的集成,并保持与非 Istio 项目的兼容性。
|
||||
|
||||
你仍然可以通过安装 [Rancher Monitoring](../monitoring-and-alerting/monitoring-and-alerting.md) 或安装你自己的 Prometheus operator 来使用 Prometheus 集成。Rancher 的 Istio chart 还默认安装 Kiali,确保你可以开箱即用地全面了解微服务。
|
||||
|
||||
Istio 已经脱离了使用 Helm 安装的方式,现在通过 Istioctl 二进制文件或 Istio Operator 进行安装。为了使用最简单的方式与 Istio 交互,Rancher 的 Istio 会维护一个 Helm Chart,该 Chart 使用 Istioctl 二进制文件来管理你的 Istio 安装。
|
||||
|
||||
此 Helm Chart 将在 UI 的**应用 & 市场**中提供。有权访问 Rancher Chart 应用商店的用户需要先设置 Istio,然后才能在项目中使用它。
|
||||
|
||||
## Istio 附带的工具
|
||||
|
||||
我们的 [Istio](https://istio.io/) 安装程序将 istioctl 二进制命令包装在一个 Helm chart 中,其中包括一个覆盖文件的选项,用来支持复杂的自定义配置。
|
||||
|
||||
它还包括以下内容:
|
||||
|
||||
### Kiali
|
||||
|
||||
Kiali 是一个全面的可视化辅助工具,用于绘制整个服务网格中的流量图。它允许你查看它们的连接方式,包括它们之间的流量速率和延迟。
|
||||
|
||||
你可以检查服务网格的运行状况,或深入查看单个组件的传入和传出请求。
|
||||
|
||||
### Jaeger
|
||||
|
||||
Jaeger 是用于跟踪分布式系统的工具。我们的 Istio 安装程序包括能快速启动的一体化 [Jaeger](https://www.jaegertracing.io/) 安装。
|
||||
|
||||
请注意,这不是符合 Jaeger 生产要求的部署。此部署使用在内存中的存储组件,而 Jaeger 推荐在生产环境中使用持久存储组件。有关你所需的部署策略的更多信息,请参阅 [Jaeger 文档](https://www.jaegertracing.io/docs/latest/operator/#production-strategy)。
|
||||
|
||||
## 先决条件
|
||||
|
||||
在启用 Istio 之前,建议你先确认你的 Rancher worker 节点是否有足够的 [CPU 和内存](cpu-and-memory-allocations.md)来运行 Istio 的所有组件。
|
||||
|
||||
如果要在 RKE2 集群上安装 Istio,则需要执行一些额外的步骤。有关详细信息,请参阅[本节](#在-rke2-集群上安装-istio-的其他步骤)
|
||||
|
||||
## 设置指南
|
||||
|
||||
如需了解如何设置 Istio 并在项目中使用它,请参阅[设置指南](../../how-to-guides/advanced-user-guides/istio-setup-guide/istio-setup-guide.md)。
|
||||
|
||||
## 卸载 Istio
|
||||
|
||||
要从集群、命名空间或工作负载中删除 Istio 组件,请参阅[卸载 Istio](disable-istio.md)。
|
||||
|
||||
## 从之前的 Istio 版本进行迁移
|
||||
|
||||
对于低于 1.7.x 版本的 Istio,不存在升级路径。要通过 Apps & Marketplace(Rancher 版本在 v2.6.5 之前)或 App(Rancher 版本在 v2.6.5+)成功安装 Istio,你需要在废弃的 Rancher UI 全局视图中禁用现有的 Istio。
|
||||
|
||||
|
||||
如果你有大量额外的 Istio CRD(自定义资源定义),可能需要考虑手动迁移那些在两个版本的 Istio 中都受支持的 CRD。你可以通过运行 `kubectl get <resource> -n istio-system -o yaml` 命令来完成此操作,将输出的 yaml 保存下来,并在新版本中重新部署。
|
||||
|
||||
另一个方法是逐个手动卸载 Istio 资源,但保留在两个版本的 Istio 中都受支持且新版本不会安装的资源。这种方法更容易导致安装新版本时出现问题,但根据环境情况可能是一个不错的选择。
|
||||
|
||||
## 访问可视化
|
||||
|
||||
> 默认情况下,只有 cluster-admin 可以访问 Kiali。有关如何允许具有管理员、编辑或查看权限的角色访问它们的说明,请参阅[本节](rbac-for-istio.md)。
|
||||
在集群中设置 Istio 后,你可以在 Rancher UI 中使用 Grafana、Prometheus 和 Kiali。
|
||||
|
||||
要访问 Grafana 和 Prometheus 可视化:
|
||||
|
||||
1. 在左上角,单击 **☰ > 集群管理**。
|
||||
2. 在**集群**页面上,转到要可视化的集群,然后单击 **Explore**。
|
||||
3. 在左侧导航栏中,单击**监控**。
|
||||
4. 点击 **Grafana** 或任何其他仪表板。
|
||||
|
||||
要访问 Kiali 可视化:
|
||||
|
||||
1. 在左上角,单击 **☰ > 集群管理**。
|
||||
2. 在**集群**页面上,转到要查看 Kiali 的集群,然后单击 **Explore**。
|
||||
3. 在左侧导航栏中,单击 **Istio**。
|
||||
4. 单击 **Kiali**。从这里,你可以访问**流量图**或**流量指标**选项卡,从而可视化网络指标。
|
||||
|
||||
默认情况下,prometheus 会拾取所有命名空间,并将数据用于 Kiali 图。如果你想使用不同的配置进行 prometheus 数据抓取,请参阅[选择器/抓取配置](configuration-options/selectors-and-scrape-configurations.md)。
|
||||
|
||||
你的角色决定了你对可视化的访问。只有 `cluster-admin` 角色可以使用 Grafana 和 Prometheus。默认情况下,只有 `cluster-admin` 可以使用 Kiali UI,但是 `cluster-admin` 可以通过编辑 Istio values.yaml 来允许其他角色进行访问。
|
||||
|
||||
## 架构
|
||||
|
||||
Istio 安装了一个服务网格,它使用 [Envoy](https://www.envoyproxy.io) Sidecar 代理来拦截到每个工作负载的流量。这些 sidecar 拦截并管理服务之间的通信,从而实现精细化观察并控制集群内的流量。
|
||||
|
||||
只有注入了 Istio sidecar 的工作负载可以通过 Istio 进行跟踪和控制。
|
||||
|
||||
如果命名空间启用了 Istio,部署到命名空间的新工作负载会自动具有 Istio sidecar。你需要为之前的工作负载手动启用 Istio。
|
||||
|
||||
有关 Istio sidecar 的更多信息,请参阅 [Istio sidecare-injection 文档](https://istio.io/docs/setup/kubernetes/additional-setup/sidecar-injection/)。有关 Istio 架构的更多信息,请参阅 [Istio 架构文档](https://istio.io/latest/docs/ops/deployment/architecture/)。
|
||||
|
||||
### 多个 Ingress
|
||||
|
||||
默认情况下,每个 Rancher 配置的集群都有一个 NGINX Ingress Controller 来允许流量进入集群。Istio 还在 `istio-system` 命名空间中默认安装一个 Ingress Gateway。因此,你的集群将有两个 ingress。
|
||||
|
||||

|
||||
|
||||
可以通过[覆盖文件](configuration-options/configuration-options.md#覆盖文件)来启用其他 Istio Ingress Gateway。
|
||||
|
||||
### Egress 支持
|
||||
|
||||
默认情况下,Egress 网关是禁用的,但你可以在安装或升级时使用 values.yaml 或[覆盖文件](configuration-options/configuration-options.md#覆盖文件)启用它。
|
||||
|
||||
## 在 RKE2 集群上安装 Istio 的其他步骤
|
||||
|
||||
要在 RKE2 集群上安装 Istio,请按照[步骤](configuration-options/install-istio-on-rke2-cluster.md)进行操作。
|
||||
|
||||
## 在离线环境中升级 Istio
|
||||
|
||||
现在,Istio Pod 安全策略默认启用。新值 `installer.releaseMirror.enabled` 已添加到 rancher-istio Chart 中,以启用和禁用支持离线升级的 Server。请注意,`installer.releaseMirror.enabled` 默认设置为 `false`。你可以在安装或升级时根据需要设置该值。按照以下步骤执行:
|
||||
|
||||
1. 在 Rancher UI 中配置离线 Rancher 实例和离线自定义集群。
|
||||
2. 在集群中安装 Monitoring:**Cluster Explorer > Apps & Marketplace > Charts > Monitoring**。
|
||||
3. 将 Istio 所需的所有镜像拉入在离线环境中使用的私有镜像仓库。
|
||||
4. 在集群中安装 Istio:**Cluster Explorer > Apps & Marketplace > Charts > Istio**。
|
||||
|
||||
:::note
|
||||
|
||||
你可以在新安装的 Istio 上启用 [Jaeger](https://www.jaegertracing.io/) 和 [Kiali](https://kiali.io/)。为确保 Jaeger 和 Kiali 正常工作,请在安装期间将 `values.yaml` 中的 `installer.releaseMirror.enabled` 设置为 `true`。
|
||||
|
||||
:::
|
||||
|
||||
5. 升级 Istio。
|
||||
|
||||
:::caution
|
||||
|
||||
如果你还没有执行操作,请设置 `installer.releaseMirror.enabled=true` 以升级 Istio。
|
||||
|
||||
:::
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
---
|
||||
title: 自定义资源配置
|
||||
---
|
||||
|
||||
<head>
|
||||
<link rel="canonical" href="https://ranchermanager.docs.rancher.com/zh/integrations-in-rancher/logging/custom-resource-configuration"/>
|
||||
</head>
|
||||
|
||||
通过以下自定义资源配置 logging:
|
||||
|
||||
- [Flow 和 ClusterFlow](flows-and-clusterflows.md)
|
||||
- [Output 和 ClusterOutput](outputs-and-clusteroutputs.md)
|
||||
+140
@@ -0,0 +1,140 @@
|
||||
---
|
||||
title: Rancher Logging 集成
|
||||
description: Rancher 集成了主流的日志服务。了解集成日志服务的要求和优势,并在你的集群上启用 Logging。
|
||||
---
|
||||
|
||||
<head>
|
||||
<link rel="canonical" href="https://ranchermanager.docs.rancher.com/zh/integrations-in-rancher/logging"/>
|
||||
</head>
|
||||
|
||||
现在,Rancher 的日志管理由 [Logging operator](https://kube-logging.github.io/docs/) 提供支持,它取代了以前的内部解决方案。
|
||||
|
||||
## 启用 Logging
|
||||
|
||||
你可以转到**应用**页面并安装 Logging 应用程序,从而为 Rancher 管理的集群启用 Logging:
|
||||
<Tabs groupId="rancher-version">
|
||||
<TabItem value="Rancher v2.6.5+">
|
||||
|
||||
1. 转到要安装 Logging 的集群,然后单击 **Apps**。
|
||||
2. 点击 **Logging** 应用。
|
||||
3. 滚动到 Helm Chart README 的底部,然后单击**安装**。
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="Rancher before v2.6.5">
|
||||
|
||||
1. 转到要安装 Logging 的集群,然后单击 **Apps & Marketplace**。
|
||||
2. 点击 **Logging** 应用。
|
||||
3. 滚动到 Helm Chart README 的底部,然后单击**安装**。
|
||||
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
**结果**:Logging 应用已部署到 `cattle-logging-system` 命名空间中。
|
||||
|
||||
## 卸载 Logging
|
||||
<Tabs groupId="rancher-version">
|
||||
<TabItem value="Rancher v2.6.5+">
|
||||
|
||||
1. 转到要安装 Logging 的集群,然后单击 **Apps**。
|
||||
2. 点击**已安装的应用**。
|
||||
3. 转到 `cattle-logging-system` 命名空间并选中 `rancher-logging` 和 `rancher-logging-crd` 框。
|
||||
4. 单击**删除**。
|
||||
5. 确认**删除**。
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="Rancher before v2.6.5">
|
||||
|
||||
1. 转到要安装 Logging 的集群,然后单击 **Apps & Marketplace**。
|
||||
2. 点击**已安装的应用**。
|
||||
3. 转到 `cattle-logging-system` 命名空间并选中 `rancher-logging` 和 `rancher-logging-crd` 框。
|
||||
4. 单击**删除**。
|
||||
5. 确认**删除**。
|
||||
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
**结果**:已卸载 `rancher-logging`。
|
||||
|
||||
## 架构
|
||||
|
||||
有关 Logging 应用程序工作原理的更多信息,请参阅[本节](logging-architecture.md)。
|
||||
|
||||
## RBAC
|
||||
|
||||
Rancher Logging 有两个角色,分别是 `logging-admin` 和 `logging-view`。有关如何以及何时使用这些角色的更多信息,请参阅[此页面](rbac-for-logging.md)。
|
||||
|
||||
## 配置 Logging 自定义资源
|
||||
|
||||
要管理 `Flows`、`ClusterFlows`、`Outputs` 和 `ClusterOutputs`:
|
||||
|
||||
1. 在左上角,单击 **☰ > 集群管理**。
|
||||
2. 在**集群**页面上,转到要配置 Logging 自定义资源的集群,然后单击 **Explore**。
|
||||
3. 在左侧导航栏中,单击 **Logging**。
|
||||
|
||||
### Flows 和 ClusterFlows
|
||||
|
||||
有关配置 `Flows` 和 `ClusterFlows` 的帮助,请参阅[此页面](custom-resource-configuration/flows-and-clusterflows.md)。
|
||||
|
||||
### Outputs 和 ClusterOutputs
|
||||
|
||||
有关配置 `Outputs` 和 `ClusterOutputs` 的帮助,请参阅[此页面](custom-resource-configuration/outputs-and-clusteroutputs.md)。
|
||||
|
||||
## 配置 Logging Helm Chart
|
||||
|
||||
有关在安装或升级 Logging 应用程序时可配置的选项,请参阅[此页面](logging-helm-chart-options.md)。
|
||||
|
||||
### Windows 支持
|
||||
|
||||
你可以从 Windows 节点[启用 Logging](logging-helm-chart-options.md#启用禁用-windows-节点-logging)。
|
||||
|
||||
### 使用自定义 Docker 根目录
|
||||
|
||||
有关使用自定义 Docker 根目录的详细信息,请参阅[本节](logging-helm-chart-options.md#使用自定义-docker-根目录)。
|
||||
|
||||
### 处理污点和容忍度
|
||||
|
||||
有关如何在 Logging 应用程序中使用污点和容忍度的信息,请参阅[此页面](taints-and-tolerations.md)。
|
||||
|
||||
### 在 SELinux 上使用 Logging V2
|
||||
|
||||
有关在启用了 SELinux 的节点上使用 Logging 应用程序的信息,请参阅[本节](logging-helm-chart-options.md#启用-logging-应用程序以使用-selinux)。
|
||||
|
||||
### 其他日志来源
|
||||
|
||||
默认情况下,Rancher 会收集所有类型集群的 controlplane 组件和节点组件的日志。在某些情况下,也会收集其他日志。有关详细信息,请参阅[本节](logging-helm-chart-options.md#其他日志来源)。
|
||||
|
||||
## 故障排除
|
||||
|
||||
### 日志缓冲区导致 Pod 过载
|
||||
|
||||
根据你的配置,默认缓冲区大小可能太大并导致 Pod 故障。减少负载的一种方法是降低记录器的刷新间隔。这可以防止日志溢出缓冲区。你还可以添加更多刷新线程来处理大量日志试图同时填充缓冲区的情况。
|
||||
|
||||
有关如何配置日志缓冲区来满足企业需求的更完整说明,请参阅[缓冲区](https://kube-logging.github.io/docs/configuration/plugins/outputs/buffer/)和 [Fluentd 配置](https://kube-logging.github.io/docs/logging-infrastructure/fluentd/)的官方 Logging Operator 文档。
|
||||
|
||||
### `cattle-logging` 命名空间正在重新创建
|
||||
|
||||
如果你的集群之前在旧版 Rancher UI 的全局视图中部署了 Logging,`cattle-logging` 命名空间可能会不断被重新创建。
|
||||
|
||||
要解决这个问题,你可以将所有 `clusterloggings.management.cattle.io` 和 `projectloggings.management.cattle.io` 自定义资源从管理集群中针对该集群的命名空间中删除。
|
||||
这些自定义资源会导致 Rancher 在下游集群中创建 `cattle-logging` 命名空间(如果不存在)。
|
||||
|
||||
集群命名空间与集群 ID 匹配,因此我们需要找到每个集群的集群 ID。
|
||||
|
||||
1. 在左上角,单击 **☰ > 集群管理**。
|
||||
1. 在**集群**页面上,转到要获取 ID 的集群,然后单击 **Explore**。
|
||||
2. 从以下其中一个 URL 中复制 `<cluster-id>` 的内容。`<cluster-id>` 是集群命名空间名称。
|
||||
|
||||
```bash
|
||||
# Cluster Management UI
|
||||
https://<your-url>/c/<cluster-id>/
|
||||
|
||||
# Cluster Dashboard
|
||||
https://<your-url>/dashboard/c/<cluster-id>/
|
||||
```
|
||||
|
||||
现在我们有了 `<cluster-id>` 命名空间,我们可以删除导致 `cattle-logging` 不断重新创建的自定义资源。
|
||||
*警告*:请确保当前未使用 Logging (从旧版 Rancher UI 全局视图中安装的版本)。
|
||||
|
||||
```bash
|
||||
kubectl delete crd clusterloggings.management.cattle.io -n <cluster-id>
|
||||
kubectl delete crd projectloggings.management.cattle.io -n <cluster-id>
|
||||
```
|
||||
+100
@@ -0,0 +1,100 @@
|
||||
---
|
||||
title: 监控和告警
|
||||
description: Prometheus 允许你查看来自不同 Rancher 和 Kubernetes 对象的指标。了解监控范围以及如何启用集群监控
|
||||
---
|
||||
|
||||
<head>
|
||||
<link rel="canonical" href="https://ranchermanager.docs.rancher.com/zh/integrations-in-rancher/monitoring-and-alerting"/>
|
||||
</head>
|
||||
|
||||
你可以使用 `rancher-monitoring` 应用,将业界领先的开源监控和告警解决方案快速部署到你的集群中。
|
||||
|
||||
### 功能
|
||||
|
||||
Prometheus 支持查看 Rancher 和 Kubernetes 对象的指标。通过使用时间戳,Prometheus 能让你通过 Rancher UI 或 Grafana(与 Prometheus 一起部署的分析查看平台)以更容易阅读的图表和视觉形式来查询和查看这些指标。
|
||||
|
||||
通过查看 Prometheus 从集群的 controlplane、节点和 deployment 中抓取的数据,你可以随时了解集群中发生的所有事件。然后,你可以使用这些分析来更好地运行你的环境,例如在系统紧急情况发生之前阻止它们、制定维护策略,或恢复崩溃的服务器。
|
||||
|
||||
Rancher v2.5 的 `rancher-monitoring` operator 由 [Prometheus](https://prometheus.io/),[Grafana](https://grafana.com/grafana/),[Alertmanager](https://prometheus.io/docs/alerting/latest/alertmanager/),[Prometheus Operator](https://github.com/prometheus-operator/prometheus-operator) 和 [Prometheus adapter](https://github.com/DirectXMan12/k8s-prometheus-adapter) 组成。
|
||||
|
||||
Monitoring 应用:
|
||||
|
||||
- 监控集群节点、Kubernetes 组件和软件部署的状态和进程。
|
||||
- 根据 Prometheus 收集的指标定义告警。
|
||||
- 创建自定义 Grafana 仪表板。
|
||||
- 使用 Prometheus Alertmanager 通过电子邮件、Slack、PagerDuty 等配置告警通知。
|
||||
- 根据 Prometheus 收集的指标,将预先计算的、经常需要的,或计算成本高的表达式定义为新的时间序列。
|
||||
- 通过 Prometheus Adapter,将从 Prometheus 收集的指标公开给 Kubernetes Custom Metrics API,以便在 HPA 中使用。
|
||||
|
||||
## Monitoring 工作原理
|
||||
|
||||
有关监控组件如何协同工作的说明,请参阅 [Monitoring 工作原理](how-monitoring-works.md)。
|
||||
|
||||
## 默认组件和部署
|
||||
|
||||
### 内置仪表板
|
||||
|
||||
默认情况下,监控应用将 Grafana 仪表板(由 [kube-prometheus](https://github.com/prometheus-operator/kube-prometheus) 项目策划)部署到集群上。
|
||||
|
||||
它还部署一个 Alertmanager UI 和一个 Prometheus UI。有关这些工具的更多信息,请参见[内置仪表板](built-in-dashboards.md)。
|
||||
|
||||
### 默认指标 Exporter
|
||||
|
||||
默认情况下,Rancher Monitoring 会部署 Exporter(例如 [node-exporter](https://github.com/prometheus/node_exporter) 和 [kube-state-metrics](https://github.com/kubernetes/kube-state-metrics))。
|
||||
|
||||
这些默认 Exporter 会自动从 Kubernetes 集群的所有组件(包括工作负载)中抓取 CPU 和内存的指标。
|
||||
|
||||
### 默认告警
|
||||
|
||||
Monitoring 应用会默认部署一些告警。要查看默认告警,请转到 [Alertmanager UI](built-in-dashboards.md#alertmanager-ui) 并单击**展开所有组**。
|
||||
|
||||
### Rancher UI 中公开的组件
|
||||
|
||||
有关 Rancher UI 中公开的监控组件列表,以及编辑它们的常见用例,请参阅[本节](how-monitoring-works.md#rancher-ui-中公开的组件)。
|
||||
|
||||
## RBAC
|
||||
|
||||
有关配置 monitoring 访问权限的信息,请参阅[此页面](rbac-for-monitoring.md)。
|
||||
|
||||
|
||||
## 指南
|
||||
|
||||
- [启用 monitoring](../../how-to-guides/advanced-user-guides/monitoring-alerting-guides/enable-monitoring.md)
|
||||
- [卸载 monitoring](../../how-to-guides/advanced-user-guides/monitoring-alerting-guides/uninstall-monitoring.md)
|
||||
- [Monitoring 工作负载](../../how-to-guides/advanced-user-guides/monitoring-alerting-guides/set-up-monitoring-for-workloads.md)
|
||||
- [自定义 Grafana 仪表板](../../how-to-guides/advanced-user-guides/monitoring-alerting-guides/customize-grafana-dashboard.md)
|
||||
- [持久化 Grafana 仪表板](../../how-to-guides/advanced-user-guides/monitoring-alerting-guides/create-persistent-grafana-dashboard.md)
|
||||
- [调试高内存使用率](../../how-to-guides/advanced-user-guides/monitoring-alerting-guides/debug-high-memory-usage.md)
|
||||
- [迁移 Monitoring V1 到 V2](../../how-to-guides/advanced-user-guides/monitoring-alerting-guides/migrate-to-rancher-v2.5+-monitoring.md)
|
||||
|
||||
## 配置
|
||||
|
||||
### 在 Rancher 中配置 Monitoring 资源
|
||||
|
||||
此处的配置参考假设你已经熟悉 monitoring 组件的协同工作方式。如需更多信息,请参阅 [monitoring 的工作原理](how-monitoring-works.md)。
|
||||
|
||||
- [ServiceMonitor 和 PodMonitor](../../reference-guides/monitoring-v2-configuration/servicemonitors-and-podmonitors.md)
|
||||
- [接收器](../../reference-guides/monitoring-v2-configuration/receivers.md)
|
||||
- [路由](../../reference-guides/monitoring-v2-configuration/routes.md)
|
||||
- [PrometheusRule](../../how-to-guides/advanced-user-guides/monitoring-v2-configuration-guides/advanced-configuration/prometheusrules.md)
|
||||
- [Prometheus](../../how-to-guides/advanced-user-guides/monitoring-v2-configuration-guides/advanced-configuration/prometheus.md)
|
||||
- [Alertmanager](../../how-to-guides/advanced-user-guides/monitoring-v2-configuration-guides/advanced-configuration/alertmanager.md)
|
||||
|
||||
### 配置 Helm Chart 选项
|
||||
|
||||
有关 `rancher-monitoring` Chart 选项的更多信息,包括设置资源限制和请求的选项,请参阅 [Helm Chart 选项](../../reference-guides/monitoring-v2-configuration/helm-chart-options.md)。
|
||||
|
||||
## Windows 集群支持
|
||||
|
||||
如果 Monitoring 部署到 RKE1 Windows 集群,Monitoring V2 将自动部署 [windows-exporter](https://github.com/prometheus-community/windows_exporter) DaemonSet 并设置 ServiceMonitor,以从每个部署的 Pod 中收集指标。这将使用 `windows_` 指标填充 Prometheus,这些指标与 [node_exporter](https://github.com/prometheus/node_exporter) 为 Linux 主机导出的 `node_` 指标类似。
|
||||
|
||||
为了能够为 Windows 完全部署 Monitoring V2,你的所有 Windows 主机都必须至少具有 v0.1.0 的 [wins](https://github.com/rancher/wins) 版本。
|
||||
|
||||
有关如何在现有 Windows 主机上升级 wins 版本的更多信息,请参阅 [Windows 集群对 Monitoring V2 的支持](windows-support.md)。
|
||||
|
||||
|
||||
## 已知问题
|
||||
|
||||
有一个[已知问题](https://github.com/rancher/rancher/issues/28787#issuecomment-693611821),即 K3s 集群需要的内存超过分配的默认内存。如果你在 K3s 集群上启用 Monitoring,将 `prometheus.prometheusSpec.resources.memory.limit` 设置为 2500 Mi,并将 `prometheus.prometheusSpec.resources.memory.request` 设置为 1750 Mi。
|
||||
|
||||
如需获取意见和建议,请参阅[调试高内存使用情况](../../how-to-guides/advanced-user-guides/monitoring-alerting-guides/debug-high-memory-usage.md)。
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
---
|
||||
title: Monitoring 配置参考
|
||||
---
|
||||
|
||||
<head>
|
||||
<link rel="canonical" href="https://ranchermanager.docs.rancher.com/zh/reference-guides/monitoring-v2-configuration"/>
|
||||
</head>
|
||||
|
||||
以下将说明在 Rancher 中如何配置 Monitoring V2 的基本重要选项:
|
||||
|
||||
- [接收器配置](receivers.md)
|
||||
- [路由配置](routes.md)
|
||||
- [ServiceMonitor 和 PodMonitor 配置](servicemonitors-and-podmonitors.md)
|
||||
- [Helm Chart 选项](helm-chart-options.md)
|
||||
- [示例](examples.md)
|
||||
+108
@@ -0,0 +1,108 @@
|
||||
---
|
||||
title: Prometheus Federator
|
||||
---
|
||||
|
||||
<head>
|
||||
<link rel="canonical" href="https://ranchermanager.docs.rancher.com/zh/reference-guides/prometheus-federator"/>
|
||||
</head>
|
||||
|
||||
Prometheus Federator(也称为 Project Monitoring V2)基于 [rancher/helm-project-operator](https://github.com/rancher/helm-project-operator) 部署一个 Helm Project Operator。该 Operator 管理 Helm Chart 的部署,每个 Operator 都包含一个 Project Monitoring Stack,而每个堆栈都包含:
|
||||
|
||||
- [Prometheus](https://prometheus.io/)(由 [Prometheus Operator](https://github.com/prometheus-operator/prometheus-operator) 在外部管理)
|
||||
- [Alertmanager](https://prometheus.io/docs/alerting/latest/alertmanager/)(由 [Prometheus Operator](https://github.com/prometheus-operator/prometheus-operator) 在外部管理)
|
||||
- [Grafana](https://github.com/helm/charts/tree/master/stable/grafana)(通过嵌入式 Helm Chart 部署)
|
||||
- 基于 [kube-prometheus](https://github.com/prometheus-operator/kube-prometheus/) 社区策划资源集合的默认 PrometheusRules 和 Grafana 仪表板
|
||||
- 监视已部署资源的默认 ServiceMonitor
|
||||
|
||||
:::note 重要提示:
|
||||
|
||||
Prometheus Federator 适合在已安装 Prometheus Operator CRD 的集群中与现有的 Prometheus Operator Deployment 一起部署。
|
||||
|
||||
:::
|
||||
|
||||
## Operator 工作原理
|
||||
|
||||
1. 在部署此 Chart 时,用户可以创建 ProjectHelmCharts CR,并在**项目 Registration 命名空间 (`cattle-project-<id>`)** 中将 `spec.helmApiVersion` 设置为 `monitoring.cattle.io/v1alpha1`(在 Rancher UI 中也称为“项目监控”)。
|
||||
2. 在看到每个 ProjectHelmChartCR 时,Operator 会代表项目所有者在**项目 Release 命名空间 (`cattle-project-<id>-monitoring`)** 中自动部署一个 Project Prometheus 堆栈(基于 ProjectHelmChart 控制器在 **Operator / System Namespace** 中创建的 HelmChart CR 和 HelmRelease CR)。
|
||||
3. RBAC 将自动分配到项目 Release 命名空间中,从而允许用户查看 Prometheus、Alertmanager 以及已部署的 Project Monitoring Stack 的 Grafana UI(基于在项目 Registration 命名空间上针对[面向用户的默认 Kubernetes 角色](https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles)定义的 RBAC)。有关详细信息,请参阅[配置 RBAC](rbac.md)。
|
||||
|
||||
### 什么是项目?
|
||||
|
||||
在 Prometheus Federator 中,项目是一组可以由 `metav1.LabelSelector` 标识的命名空间。默认情况下,用于标识项目的标签是 `field.cattle.io/projectId`,该标签用于标识给定 Rancher 项目中包含的命名空间。
|
||||
|
||||
### 配置由 ProjectHelmChart 创建的 Helm 版本
|
||||
|
||||
此 ProjectHelmChart 资源的 `spec.values` 对应于为底层 Helm Chart 配置的 `values.yaml` 覆盖,该 Helm Chart 是 Operator 代表用户部署的。要查看底层 Chart 的 `values.yaml` 规范,你可以选择以下其中一种方式:
|
||||
|
||||
- 查看位于 [`charts/rancher-project-monitoring` 中的 `rancher/prometheus-federator`](https://github.com/rancher/prometheus-federator/blob/main/charts/rancher-project-monitoring) 的 Chart 定义(Chart 版本会绑定到 Operator 版本)。
|
||||
- 查找在每个项目 Registration 命名空间中自动创建的名为 `monitoring.cattle.io.v1alpha1` 的 ConfigMap,其中包含用于配置 Chart(直接嵌入到 `prometheus-federator` 二进制文件中)的`values.yaml` 和 `questions.yaml`。
|
||||
|
||||
### 命名空间
|
||||
|
||||
Prometheus Federator 是基于 [rancher/helm-project-operator](https://github.com/rancher/helm-project-operator) 的 Project Operator,Prometheus Federator 提供了三类命名空间供 Operator 查找:
|
||||
|
||||
1. **Operator / System 命名空间**:部署 Operator 的命名空间(例如 `cattle-monitoring-system`)。此命名空间将包含该 Operator 监视的所有 ProjectHelmChart 的所有 HelmChart 和 HelmRelease。**只有集群管理员才能访问此命名空间**。
|
||||
|
||||
2. **项目 Registration 命名空间 (`cattle-project-<id>`)**:Operator 在这些命名空间中监视 ProjectHelmChart。对于在项目发布命名空间中创建的自动分配的 RBAC,应用于此命名空间的 RoleBinding 和 ClusterRoleBinding 也会作为 RBAC 的真实来源。有关详细信息,请参阅 [RBAC 页面](rbac.md)。**项目所有者(admin)、项目成员(edit)和只读成员(view)应该有权访问此命名空间。**
|
||||
|
||||
:::note 注意事项:
|
||||
|
||||
- 如果提供了 `.Values.global.cattle.projectLabel`(默认设置为 `field.cattle.io/projectId`),则 Operator 会自动生成项目注册命名空间,并将它导入到命名空间绑定的项目中。换言之,如果观察到至少一个带有该标签的命名空间,则 Operator 会创建一个项目 Registration 命名空间。除非出现以下两种情况,否则 Operator 不会让这些命名空间被删除。第一种情况是带有该标签的所有命名空间都消失了(例如,这是该项目中的最后一个命名空间,在这种情况下,命名空间将标有标签 `"helm.cattle.io/helm-project-operator-orphaned": "true"`,表示可以删除)。第二种情况是由于项目 ID 是在 `.Values.helmProjectOperator.otherSystemProjectLabelValues` 下提供的(用作项目的拒绝名单),导致 Operator 不再监视该项目。这些命名空间不会被自动删除,这样能避免破坏用户数据。如果需要,建议用户在创建或删除项目时手动清理这些命名空间。
|
||||
|
||||
- 如果未提供 `.Values.global.cattle.projectLabel`,则 Operator / System 命名空间也是项目注册命名空间。
|
||||
|
||||
:::
|
||||
|
||||
3. **项目发布命名空间(`cattle-project-<id>-monitoring`)**:Operator 代表 ProjectHelmChart 在其中部署项目监控堆栈的命名空间集。Operator 还将根据在项目 Registration 命名空间中找到的绑定,自动为项目监控堆栈在此命名空间中创建的角色分配 RBAC。**只有集群管理员才能访问这个命名空间。部署的 Helm Chart 和 Prometheus Federator 将为项目所有者(admin)、项目成员(edit)和只读成员(view)分配该命名空间的有限访问权限。**
|
||||
|
||||
:::note 注意事项:
|
||||
|
||||
- 项目发布命名空间会自动部署并导入到 ID 在 `.Values.helmProjectOperator.projectReleaseNamespaces.labelValue` 下指定的项目中,如果未指定,且项目注册命名空间中指定了 ProjectHelmChart,则默认为 `.Values.global.cattle.systemProjectId` 的值。
|
||||
|
||||
- 项目发布命名空间的孤立约定与项目注册命名空间的相同(参见上面的注释)。
|
||||
|
||||
- 如果 `.Values.projectReleaseNamespaces.enabled` 为 false,则项目发布命名空间与项目注册命名空间是相同的。
|
||||
|
||||
:::
|
||||
|
||||
### Helm 资源(HelmChart、HelmRelease)
|
||||
|
||||
在部署 ProjectHelmChart 时,Prometheus Federator 将自动创建和管理两个子自定义资源,它们依次管理以下底层 Helm 资源:
|
||||
|
||||
- HelmChart CR(通过 Operator 中的嵌入式 [k3s-io/helm-contoller](https://github.com/k3s-io/helm-controller) 管理):此自定义资源会根据应用到 HelmChart CR 的变更,在触发 `helm install`、`helm upgrade` 或 `helm uninstall` 的同一命名空间中自动创建一个 Job。此 CR 会根据 ProjectHelmChart 的更改(例如,修改 `values.yaml`)或底层项目定义的更改(例如,从项目中添加或删除命名空间)自动更新。
|
||||
|
||||
:::note 重要提示:
|
||||
|
||||
如果 ProjectHelmChart 没有部署或更新底层项目监控堆栈,你可以先使用此资源在 Operator / System 命名空间中创建的 Job 来检查 Helm 操作是否有问题。通常只能由**集群管理员访问**。
|
||||
|
||||
:::
|
||||
|
||||
- HelmRelease CR(通过 Operator 中的嵌入式 [rancher/helm-locker](https://github.com/rancher/helm-locker) 管理):此自定义资源会自动锁定已部署的 Helm 版本并自动覆盖对底层资源的更新,除非更改是 Helm 操作导致的(`helm install`、`helm upgrade` 或 `helm uninstall` 由 HelmChart CR 执行)。
|
||||
|
||||
:::note
|
||||
|
||||
HelmRelease CR 会发出 Kubernetes 事件,用于检测底层 Helm 版本修改并将其锁定回原位。要查看这些事件,你可以使用 `kubectl describe helmrelease <helm-release-name> -n <operator/system-namespace>`。你还可以查看此 Operator 的日志,了解检测到更改的时间以及哪些资源被尝试更改。
|
||||
|
||||
:::
|
||||
|
||||
这两种资源都是为 Operator / System 命名空间中的所有 Helm Chart 创建的,用于避免低权限用户的权限升级。
|
||||
|
||||
### 高级 Helm Project Operator 配置
|
||||
|
||||
有关高级配置的更多信息,请参阅[此页面](https://github.com/rancher/prometheus-federator/blob/main/charts/prometheus-federator/0.0.1/README.md#advanced-helm-project-operator-configuration)。
|
||||
|
||||
<!--
|
||||
|Value|Configuration|
|
||||
|---|---------------------------|
|
||||
|`helmProjectOperator.valuesOverride`| Allows an Operator to override values that are set on each ProjectHelmChart deployment on an operator-level; user-provided options (specified on the `spec.values` of the ProjectHelmChart) are automatically overridden if operator-level values are provided. For an example, see how the default value overrides `federate.targets`. Note: When overriding list values like `federate.targets`, user-provided list values will **not** be concatenated. |
|
||||
|`helmProjectOperator.projectReleaseNamespaces.labelValues`| The value of the Project that all Project Release Namespaces should be auto-imported into via label and annotation. Not recommended to be overridden on a Rancher setup. |
|
||||
|`helmProjectOperator.otherSystemProjectLabelValues`| Other namespaces that the operator should treat as a system namespace that should not be monitored. By default, all namespaces that match `global.cattle.systemProjectId` will not be matched. `cattle-monitoring-system`, `cattle-dashboards`, and `kube-system` are explicitly marked as system namespaces as well, regardless of label or annotation. |
|
||||
|`helmProjectOperator.releaseRoleBindings.aggregate`| Whether to automatically create RBAC resources in Project Release namespaces.
|
||||
|`helmProjectOperator.releaseRoleBindings.clusterRoleRefs.<admin\|edit\|view>`| ClusterRoles to reference to discover subjects to create RoleBindings for in the Project Release Namespace for all corresponding Project Release Roles. See RBAC above for more information. |
|
||||
|`helmProjectOperator.hardenedNamespaces.enabled`| Whether to automatically patch the default ServiceAccount with `automountServiceAccountToken: false` and create a default NetworkPolicy in all managed namespaces in the cluster; the default values ensure that the creation of the namespace does not break a CIS 1.16 hardened scan. |
|
||||
|`helmProjectOperator.hardenedNamespaces.configuration`| The configuration to be supplied to the default ServiceAccount or auto-generated NetworkPolicy on managing a namespace. |
|
||||
-->
|
||||
|
||||
### Local 集群上的 Prometheus Federator
|
||||
|
||||
Prometheus Federator 是一个资源密集型应用程序。你可以将其安装到 Local 集群(**不推荐**)。
|
||||
Reference in New Issue
Block a user