diff --git a/content/zh/docs/reference/config/config-status/index.md b/content/zh/docs/reference/config/config-status/index.md index 73935ac308..61107c8637 100644 --- a/content/zh/docs/reference/config/config-status/index.md +++ b/content/zh/docs/reference/config/config-status/index.md @@ -5,7 +5,9 @@ weight: 21 --- {{< warning >}} -此功能处于 Alpha 阶段,请参见 [Istio功能状态](/zh/about/feature-stages/)。欢迎您的反馈意见 [Istio用户体验讨论](https://discuss.istio.io/c/UX/23)。当前,此功能仅针对具有单个控制平面版本的单个小规模集群进行了测试。 +此功能处于 Alpha 阶段,请参见 [Istio功能状态](/zh/about/feature-stages/)。 +欢迎您的反馈意见 [Istio用户体验讨论](https://discuss.istio.io/c/UX/23)。 +当前,此功能仅针对具有单个控制平面版本的单个小规模集群进行了测试。 {{< /warning >}} @@ -22,17 +24,20 @@ $ istioctl install --set values.pilot.env.PILOT_ENABLE_STATUS=true --set values. * 有多少个数据平面实例与之关联。 * 工具输出信息,例如 `istioctl analyze`。 -例如,`kubectl wait` 命令监视 `status` 字段以确定是否取消阻止配置并继续。有关更多信息,请参见[等待资源状态以应用配置](/zh/docs/ops/configuration/mesh/config-resource-ready/). +例如,`kubectl wait` 命令监视 `status` 字段以确定是否取消阻止配置并继续。 +有关更多信息,请参见[等待资源状态以应用配置](/zh/docs/ops/configuration/mesh/config-resource-ready/)。 -## 查看 `status` 字段{#view-the-status-field} +## 查看 `status` 字段 {#view-the-status-field} -您可以使用 `kubectl get` 查看资源中 `status` 字段的内容。 例如,要查看虚拟服务的状态,请使用以下命令: +您可以使用 `kubectl get` 查看资源中 `status` 字段的内容。 +例如,要查看虚拟服务的状态,请使用以下命令: {{< text bash >}} $ kubectl get virtualservice -o yaml {{< /text >}} -在输出结果中,`status` 字段包含多个嵌套字段,其中包含详细信息关于通过网格传播配置更改的过程。 +在输出结果中,`status` 字段包含多个嵌套字段, +其中包含详细信息关于通过网格传播配置更改的过程。 {{< text yaml >}} status: @@ -58,27 +63,38 @@ status: message: 'mTLS not enabled for virtual service' {{< /text >}} -## `conditions` 字段{#the-conditions-field} +## `conditions` 字段 {#the-conditions-field} -conditions 字段代表资源的可能状态。 一个 condition 的 `type` 字段可以具有以下值: +conditions 字段代表资源的可能状态。 +一个 condition 的 `type` 字段可以具有以下值: * `PassedAnalysis` * `Reconciled` 当您应用配置时,每种类型的条件都会添加到 `conditions` 字段中。 -`Reconciled` 类型条件的 `status` 字段被初始化为 `False`,以表明资源仍在分配给所有代理的过程中。 +`Reconciled` 类型条件的 `status` 字段被初始化为 `False`, +以表明资源仍在分配给所有代理的过程中。 -当协调完成后,状态将变为 `True`。 根据集群的速度,`status` 字段可能会立即转换为 `True`。 +当协调完成后,状态将变为 `True`。 +根据集群的速度,`status` 字段可能会立即转换为 `True`。 -`PassedAnalysis` 类型条件的 `status` 字段的值为 `True` 或 `False`,取决于 Istio 的后台分析器是否检测到您的配置有问题。如果为 `False`,则将在 `validationMessages` 字段中详细说明问题。 +`PassedAnalysis` 类型条件的 `status` 字段的值为 `True` 或 `False`, +取决于 Istio 的后台分析器是否检测到您的配置有问题。 +如果为 `False`,则将在 `validationMessages` 字段中详细说明问题。 -`PassedAnalysis` 类型条件仅是一个信息字段。 它不会阻止应用无效的配置。 该状态可能表示验证失败,但是应用配置成功。 这意味着 Istio 能够设置新配置,但是该配置无效,可能是由于语法错误或类似问题。 +`PassedAnalysis` 类型条件仅是一个信息字段。 +它不会阻止应用无效的配置。该状态可能表示验证失败,但是应用配置成功。 +这意味着 Istio 能够设置新配置,但是该配置无效,可能是由于语法错误或类似问题。 -## `validationMessages` 字段{#the-validation-messages-field} +## `validationMessages` 字段 {#the-validation-messages-field} -如果验证失败,请检查 `validationMessages` 字段以了解更多信息。`validationMessages` 字段包含有关验证过程的详细信息,例如指示 Istio 无法应用配置的错误消息,以及未导致错误的警告或参考消息。 +如果验证失败,请检查 `validationMessages` 字段以了解更多信息。 +`validationMessages` 字段包含有关验证过程的详细信息, +例如指示 Istio 无法应用配置的错误消息,以及未导致错误的警告或参考消息。 -如果类型为 `PassedValidation` 的条件的状态为 `False`,则会有 `validationMessages` 字段来解释该问题。 当 `PassedValidation` 状态为 `True` 时,可能会出现消息,因为这些消息是信息性消息。 +如果类型为 `PassedValidation` 的条件的状态为 `False`, +则会有 `validationMessages` 字段来解释该问题。 +当 `PassedValidation` 状态为 `True` 时,可能会出现消息,因为这些消息是信息性消息。 有关验证消息的示例,请参见[配置分析消息](/zh/docs/reference/config/analysis/)。 diff --git a/content/zh/docs/reference/config/proxy_extensions/wasm_telemetry/index.md b/content/zh/docs/reference/config/proxy_extensions/wasm_telemetry/index.md index 8dfc15c098..c56a928b5b 100644 --- a/content/zh/docs/reference/config/proxy_extensions/wasm_telemetry/index.md +++ b/content/zh/docs/reference/config/proxy_extensions/wasm_telemetry/index.md @@ -11,7 +11,9 @@ status: Experimental {{< boilerplate experimental >}} -默认情况下,遥测默认启用并作为一个 `filter` 被编译在 Istio 代理中,同时也被编译成 WebAssembly (Wasm) 模块,并随 Istio proxy 一起发布。若要使用 Wasm 进行遥测,请使用 `preview` 属性安装 Istio 。 +默认情况下,遥测默认启用并作为一个 `filter` 被编译在 Istio 代理中, +同时也被编译成 WebAssembly(Wasm)模块,并随 Istio proxy 一起发布。 +若要使用 Wasm 进行遥测,请使用 `preview` 属性安装 Istio 。 {{< text bash >}} $ istioctl install --set profile=preview @@ -26,8 +28,10 @@ $ istioctl install --set values.telemetry.v2.metadataExchange.wasmEnabled=true - {{< warning >}} 基于 Wasm 的遥测存在几个已知的局限性: -* 代理 CPU 的使用将在 Wasm 模块加载阶段(例如:当上述配置被应用时)达到高峰。增加代理 CPU 资源限制将有助于加速加载。 -* 当代理基线资源使用增加时,根据初步的性能测试结果运行基于 Wasm 的遥测要比默认安装环境多花费 30%~50% 的 CPU,并使内存使用量增加一倍。 +* 代理 CPU 的使用将在 Wasm 模块加载阶段(例如:当上述配置被应用时)达到高峰。 + 增加代理 CPU 资源限制将有助于加速加载。 +* 当代理基线资源使用增加时,根据初步的性能测试结果运行基于 Wasm + 的遥测要比默认安装环境多花费 30%~50% 的 CPU,并使内存使用量增加一倍。 性能问题将在接下来的版本中不断改进。 {{}} diff --git a/content/zh/docs/reference/config/security/conditions/index.md b/content/zh/docs/reference/config/security/conditions/index.md index 3ecae84cbb..51820eb2a0 100644 --- a/content/zh/docs/reference/config/security/conditions/index.md +++ b/content/zh/docs/reference/config/security/conditions/index.md @@ -8,7 +8,8 @@ owner: istio/wg-security-maintainers test: n/a --- -此页面描述了可以用作[授权策略规则](/zh/docs/reference/config/security/authorization-policy/#Rule) `when` 字段中所支持的键和值的格式。 +此页面描述了可以用作[授权策略规则](/zh/docs/reference/config/security/authorization-policy/#Rule) +`when` 字段中所支持的键和值的格式。 {{< warning >}} 不支持的键和值将被忽略。 @@ -16,23 +17,23 @@ test: n/a 有关更多信息,请参阅[授权概念页面](/zh/docs/concepts/security/#authorization)。 -## 支持条件{#supported-conditions} +## 支持条件 {#supported-conditions} -| 名称 | 描述 | 支持的协议 | 示例 | -|------|-------------|--------------------|---------| -| `request.headers` | `HTTP` 请求头,需要用 `[]` 括起来 | HTTP only | `key: request.headers[User-Agent]`
`values: ["Mozilla/*"]` | -| `source.ip` | 源 `IP` 地址,支持单个 `IP` 或 `CIDR` | HTTP and TCP | `key: source.ip`
`values: ["10.1.2.3"]` | -| `remote.ip` | 由 `X-Forwarded-For` 请求头或代理协议确定的原始客户端 IP 地址,支持单个 IP 或 CIDR | HTTP and TCP | `key: remote.ip`
`values: ["10.1.2.3", "10.2.0.0/16"]` | -| `source.namespace` | 源负载实例命名空间,需启用双向 TLS | HTTP and TCP | `key: source.namespace`
`values: ["default"]` | -| `source.principal` | 源负载的标识,需启用双向 TLS | HTTP and TCP | `key: source.principal`
`values: ["cluster.local/ns/default/sa/productpage"]` | -| `request.auth.principal` | 已认证过 `principal` 的请求。 | HTTP only | `key: request.auth.principal`
`values: ["accounts.my-svc.com/104958560606"]` | -| `request.auth.audiences` | 此身份验证信息的目标主体 | HTTP only | `key: request.auth.audiences`
`values: ["my-svc.com"]` | -| `request.auth.presenter` | 证书的颁发者 | HTTP only | `key: request.auth.presenter`
`values: ["123456789012.my-svc.com"]` | -| `request.auth.claims` | `Claims` 来源于 `JWT`。需要用 `[]` 括起来 | HTTP only | `key: request.auth.claims[iss]`
`values: ["*@foo.com"]` | -| `destination.ip` | 目标 `IP` 地址,支持单个 `IP` 或 `CIDR` | HTTP and TCP | `key: destination.ip`
`values: ["10.1.2.3", "10.2.0.0/16"]` | -| `destination.port` | 目标 `IP` 地址上的端口,必须在 `[0,65535]` 范围内 | HTTP and TCP | `key: destination.port`
`values: ["80", "443"]` | -| `connection.sni` | 服务器名称指示,需启用双向 TLS | HTTP and TCP | `key: connection.sni`
`values: ["www.example.com"]` | -| `experimental.envoy.filters.*` | 用于过滤器的实验性元数据匹配,包装的值 `[]` 作为列表匹配 | HTTP and TCP | `key: experimental.envoy.filters.network.mysql_proxy[db.table]`
`values: ["[update]"]` | +| 名称 | 描述 | 支持的协议 | 示例 | +|--------------------------------|---------------------------------------------------------------------------------|--------------|--------------------------------------------------------------------------------------------| +| `request.headers` | `HTTP` 请求头,需要用 `[]` 括起来 | HTTP only | `key: request.headers[User-Agent]`
`values: ["Mozilla/*"]` | +| `source.ip` | 源 `IP` 地址,支持单个 `IP` 或 `CIDR` | HTTP and TCP | `key: source.ip`
`values: ["10.1.2.3"]` | +| `remote.ip` | 由 `X-Forwarded-For` 请求头或代理协议确定的原始客户端 IP 地址,支持单个 IP 或 CIDR | HTTP and TCP | `key: remote.ip`
`values: ["10.1.2.3", "10.2.0.0/16"]` | +| `source.namespace` | 源负载实例命名空间,需启用双向 TLS | HTTP and TCP | `key: source.namespace`
`values: ["default"]` | +| `source.principal` | 源负载的标识,需启用双向 TLS | HTTP and TCP | `key: source.principal`
`values: ["cluster.local/ns/default/sa/productpage"]` | +| `request.auth.principal` | 已认证过 `principal` 的请求。 | HTTP only | `key: request.auth.principal`
`values: ["accounts.my-svc.com/104958560606"]` | +| `request.auth.audiences` | 此身份验证信息的目标主体 | HTTP only | `key: request.auth.audiences`
`values: ["my-svc.com"]` | +| `request.auth.presenter` | 证书的颁发者 | HTTP only | `key: request.auth.presenter`
`values: ["123456789012.my-svc.com"]` | +| `request.auth.claims` | `Claims` 来源于 `JWT`。需要用 `[]` 括起来 | HTTP only | `key: request.auth.claims[iss]`
`values: ["*@foo.com"]` | +| `destination.ip` | 目标 `IP` 地址,支持单个 `IP` 或 `CIDR` | HTTP and TCP | `key: destination.ip`
`values: ["10.1.2.3", "10.2.0.0/16"]` | +| `destination.port` | 目标 `IP` 地址上的端口,必须在 `[0,65535]` 范围内 | HTTP and TCP | `key: destination.port`
`values: ["80", "443"]` | +| `connection.sni` | 服务器名称指示,需启用双向 TLS | HTTP and TCP | `key: connection.sni`
`values: ["www.example.com"]` | +| `experimental.envoy.filters.*` | 用于过滤器的实验性元数据匹配,包装的值 `[]` 作为列表匹配 | HTTP and TCP | `key: experimental.envoy.filters.network.mysql_proxy[db.table]`
`values: ["[update]"]` | {{< warning >}} 无法保证 `experimental.*` 密钥向后的兼容性,可以随时将它们删除,但是须要谨慎操作。 diff --git a/content/zh/docs/reference/config/security/normalization/index.md b/content/zh/docs/reference/config/security/normalization/index.md index b82fc149ec..c976aa7211 100644 --- a/content/zh/docs/reference/config/security/normalization/index.md +++ b/content/zh/docs/reference/config/security/normalization/index.md @@ -15,40 +15,40 @@ test: n/a 适用于 `paths` 和 `notPaths` 字段。 -### 1. 单个百分号编码字符(%HH) +### 1. 单个百分号编码字符(%HH) {#1-single-percent-encoded-character-hh} Istio 将单个百分号编码字符规范化如下(只进行一次规范化,不进行双重解码): -| 百分号编码字符(大小写不敏感) | 规范化结果 | 注释 | 是否启用 | -| ------------------------------ | ---------- | ----------------- | --------------------------------------- | -| `%00` | `N/A` | 请求将始终被拒绝,并返回 HTTP 状态码 400 | N/A | -| `%2d` | `-` | (破折号) | 默认情况下使用选项 `BASE` 启用 | -| `%2e` | `.` | (点) | 默认情况下使用选项 `BASE` 启用 | -| `%2f` | `/` | (正斜杠) | 默认情况下禁用,可以使用选项 `DECODE_AND_MERGE_SLASHES` 启用 | -| `%30` - `%39` | `0` - `9` | (数字) | 默认情况下使用选项 `BASE` 启用 | -| `%41` - `%5a` | `A` - `Z` | (大写字母) | 默认情况下使用选项 `BASE` 启用 | -| `%5c` | `\` | (反斜杠) | 默认情况下禁用,可以使用选项`DECODE_AND_MERGE_SLASHES`启用 | -| `%5f` | `_` | (下划线) | 默认情况下使用选项 `BASE` 启用 | -| `%61` - `%7a` | `a` - `z` | (小写字母) | 默认情况下使用选项 `BASE` 启用 | -| `%7e` | `~` | (波浪号) | 默认情况下使用选项 `BASE` 启用 | +| 百分号编码字符(大小写不敏感) | 规范化结果 | 注释 | 是否启用 | +|------------------------------|------------|------------------------------------------|-----------------------------------------------------------| +| `%00` | `N/A` | 请求将始终被拒绝,并返回 HTTP 状态码 400 | N/A | +| `%2d` | `-` | (破折号) | 默认情况下使用选项 `BASE` 启用 | +| `%2e` | `.` | (点) | 默认情况下使用选项 `BASE` 启用 | +| `%2f` | `/` | (正斜杠) | 默认情况下禁用,可以使用选项 `DECODE_AND_MERGE_SLASHES` 启用 | +| `%30` - `%39` | `0` - `9` | (数字) | 默认情况下使用选项 `BASE` 启用 | +| `%41` - `%5a` | `A` - `Z` | (大写字母) | 默认情况下使用选项 `BASE` 启用 | +| `%5c` | `\` | (反斜杠) | 默认情况下禁用,可以使用选项`DECODE_AND_MERGE_SLASHES`启用 | +| `%5f` | `_` | (下划线) | 默认情况下使用选项 `BASE` 启用 | +| `%61` - `%7a` | `a` - `z` | (小写字母) | 默认情况下使用选项 `BASE` 启用 | +| `%7e` | `~` | (波浪号) | 默认情况下使用选项 `BASE` 启用 | 例如,路径为 `/some%2fdata/%61%62%63` 的请求将被规范化为 `/some/data/abc`。 -### 2. 反斜杠(`\`) +### 2. 反斜杠(`\`) {#2-backslash-} Istio 将反斜杠 `\` 规范化为正斜杠 `/`。 例如,路径为 `/some\data` 的请求将被规范化为 `/some/data`。 默认情况下,这是使用选项 `BASE` 启用的。 -### 3. 多个正斜杠(`//`、`///` 等) +### 3. 多个正斜杠(`//`、`///` 等) {#3-multiple-forward-slashes---etc} Istio 将多个正斜杠合并为单个正斜杠(/)。 例如,路径为 `/some//data///abc` 的请求将被规范化为 `/some/data/abc`。 默认情况下,这是禁用的,但可以使用选项`MERGE_SLASHES`启用。 -### 4. 单点和双点(`/./`、`/../`) +### 4. 单点和双点(`/./`、`/../`) {#4-single-dot-and-double-dots--} Istio 将根据 [RFC 3986](https://tools.ietf.org/html/rfc3986#section-6) 解析单点 `/./` 和双点 `/../`。单点将被解析为当前目录,双点将被解析为父目录。 @@ -57,7 +57,7 @@ Istio 将根据 [RFC 3986](https://tools.ietf.org/html/rfc3986#section-6) 默认情况下,这是使用选项`BASE`启用的。 -### 5. 带查询的路径(/foo?v=1) +### 5. 带查询的路径(/foo?v=1) {#5-path-with-query-foov1} 与路径比较时,Istio 授权策略将删除问号(`?`)后面的所有内容。 请注意,后端应用程序仍将看到查询。 @@ -68,23 +68,23 @@ Istio 将根据 [RFC 3986](https://tools.ietf.org/html/rfc3986#section-6) 适用于 `methods` 和 `notMethods` 字段。 -### 1. 方法不大写 +### 1. 方法不大写 {#1-method-not-in-upper-case} 如果 HTTP 请求中的动词未大写,Istio 将拒绝该请求,并返回 HTTP 状态码 400。 默认情况下,此功能已启用。 -## 与标头名称相关 +## 与标头名称相关 {#header-name-related} 适用于在 `request.headers[]` 条件中指定的标头名称。 -### 1. 大小写不敏感匹配 +### 1. 大小写不敏感匹配 {#1-case-insensitive-matching} Istio 授权策略将使用大小写不敏感的方式比较标头名称。 默认情况下,此功能已启用。 -### 2. 重复标头 +### 2. 重复标头 {#2-duplicate-headers} Istio 将通过使用逗号作为分隔符将重复的标头合并成单个标头,并将所有值连接起来。 @@ -93,7 +93,7 @@ Istio 将通过使用逗号作为分隔符将重复的标头合并成单个标 默认情况下,此功能已启用。 -### 3. 标头名称中的空格 +### 3. 标头名称中的空格 {#3-white-space-in-header-name} 如果标头名称包含任何空格,Istio 将拒绝该请求,并返回 HTTP 状态码 400。