diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 70205e6d6bf6b..65cf53c767fee 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,6 +1,6 @@ { "name": "istio build-tools", - "image": "gcr.io/istio-testing/build-tools:master-dfedc8d689da03c57793a8e62e75a6bc36d2ae07", + "image": "gcr.io/istio-testing/build-tools:master-19ea6974be75ee10364d3c1e14117e528cbc0f42", "privileged": true, "remoteEnv": { "USE_GKE_GCLOUD_AUTH_PLUGIN": "True", diff --git a/bin/init.sh b/bin/init.sh index ced5b29478752..2c1c3ab39cbf2 100755 --- a/bin/init.sh +++ b/bin/init.sh @@ -78,8 +78,8 @@ then make "$ISTIOCTL_ARTIFACT" cp -a "$ISTIOCTL_ARTIFACT" "${ISTIOIO_BIN}/istioctl" else - make "${ISTIO_OUT}/release/istioctl-linux-amd64" - cp -a "${ISTIO_OUT}/release/istioctl-linux-amd64" /gobin/istioctl + make "${ISTIO_OUT}/release/istioctl-linux-${GOARCH_LOCAL}" + cp -a "${ISTIO_OUT}/release/istioctl-linux-${GOARCH_LOCAL}" /gobin/istioctl fi popd > /dev/null diff --git a/common/.commonfiles.sha b/common/.commonfiles.sha index c7a42928a64d4..238657cee273e 100644 --- a/common/.commonfiles.sha +++ b/common/.commonfiles.sha @@ -1 +1 @@ -23b438ddb640faacc7da4e9a954faa96f783059c +6738fd242ecd7564e6c5c3c7277c0cde106d29be diff --git a/common/scripts/setup_env.sh b/common/scripts/setup_env.sh index afab1ada1024e..e7cf8d6c1cacb 100755 --- a/common/scripts/setup_env.sh +++ b/common/scripts/setup_env.sh @@ -75,7 +75,7 @@ fi TOOLS_REGISTRY_PROVIDER=${TOOLS_REGISTRY_PROVIDER:-gcr.io} PROJECT_ID=${PROJECT_ID:-istio-testing} if [[ "${IMAGE_VERSION:-}" == "" ]]; then - IMAGE_VERSION=master-dfedc8d689da03c57793a8e62e75a6bc36d2ae07 + IMAGE_VERSION=master-19ea6974be75ee10364d3c1e14117e528cbc0f42 fi if [[ "${IMAGE_NAME:-}" == "" ]]; then IMAGE_NAME=build-tools diff --git a/content/en/docs/ops/deployment/performance-and-scalability/index.md b/content/en/docs/ops/deployment/performance-and-scalability/index.md index 522c3430ac56f..3efc2e176c807 100644 --- a/content/en/docs/ops/deployment/performance-and-scalability/index.md +++ b/content/en/docs/ops/deployment/performance-and-scalability/index.md @@ -105,7 +105,7 @@ average and tail latencies. The actual tail latency depends on the traffic patte Inside the mesh, a request traverses the client-side proxy and then the server-side proxy. In the default configuration of Istio {{< istio_release_name >}} (i.e. Istio with telemetry v2), -the two proxies add about 1.7 ms and 2.7 ms to the 90th and 99th percentile latency, respectively, over the baseline data plane latency. +the two proxies add about 1.31 ms and 1.58 ms to the 90th and 99th percentile latency, respectively, over the baseline data plane latency. We obtained these results using the [Istio benchmarks](https://github.com/istio/tools/tree/{{< source_branch_name >}}/perf/benchmark) for the `http/1.1` protocol, with a 1 kB payload at 1000 requests per second using 16 client connections, 2 proxy workers and mutual TLS enabled. diff --git a/content/en/docs/ops/deployment/performance-and-scalability/latency_p90_fortio_with_jitter.svg b/content/en/docs/ops/deployment/performance-and-scalability/latency_p90_fortio_with_jitter.svg index 72bce509a187a..2311a6b298718 100644 --- a/content/en/docs/ops/deployment/performance-and-scalability/latency_p90_fortio_with_jitter.svg +++ b/content/en/docs/ops/deployment/performance-and-scalability/latency_p90_fortio_with_jitter.svg @@ -6,7 +6,7 @@ - 2023-08-15T19:45:21.018924 + 2023-09-06T15:21:50.163326 image/svg+xml @@ -42,16 +42,16 @@ z +" clip-path="url(#pcfc0964153)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square"/> - - + @@ -88,11 +88,11 @@ z +" clip-path="url(#pcfc0964153)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square"/> - + @@ -123,11 +123,11 @@ z +" clip-path="url(#pcfc0964153)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square"/> - + @@ -168,11 +168,11 @@ z +" clip-path="url(#pcfc0964153)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square"/> - + @@ -221,11 +221,11 @@ z +" clip-path="url(#pcfc0964153)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square"/> - + @@ -261,11 +261,11 @@ z +" clip-path="url(#pcfc0964153)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square"/> - + @@ -307,11 +307,11 @@ z +" clip-path="url(#pcfc0964153)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square"/> - + @@ -550,16 +550,16 @@ z +" clip-path="url(#pcfc0964153)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square"/> - - + @@ -582,186 +582,105 @@ z - + - + - - + + - + - + - + - - - + + + - + - + - + - - - + + + - + - + - + - - - - - - + + + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - + - + @@ -915,16 +834,16 @@ z - - + + - - - - - - - - + + + + + + + - - + + - - - - - - - - + + + + + + + @@ -995,10 +914,49 @@ L 737.424 558.1368 L 737.424 75.2544 " style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - + + + + + + + + + + + + + + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - + + - - - - - - - - - - - - - + + + - + - - - - - - - - - - @@ -1170,16 +1154,16 @@ Q 620.01775 113.1669 622.01775 113.1669 z " style="fill: #ffffff; opacity: 0.8; stroke: #cccccc; stroke-linejoin: miter"/> - + - + - + @@ -1219,16 +1203,16 @@ z - + - + - + @@ -1271,7 +1255,7 @@ z - + diff --git a/content/en/docs/ops/deployment/performance-and-scalability/latency_p99_fortio_with_jitter.svg b/content/en/docs/ops/deployment/performance-and-scalability/latency_p99_fortio_with_jitter.svg index bff55a775c278..fccf51271d060 100644 --- a/content/en/docs/ops/deployment/performance-and-scalability/latency_p99_fortio_with_jitter.svg +++ b/content/en/docs/ops/deployment/performance-and-scalability/latency_p99_fortio_with_jitter.svg @@ -6,7 +6,7 @@ - 2023-08-16T16:22:13.166401 + 2023-09-06T15:21:02.492061 image/svg+xml @@ -42,16 +42,16 @@ z +" clip-path="url(#p41af0cdded)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square"/> - - + @@ -88,11 +88,11 @@ z +" clip-path="url(#p41af0cdded)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square"/> - + @@ -123,11 +123,11 @@ z +" clip-path="url(#p41af0cdded)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square"/> - + @@ -168,11 +168,11 @@ z +" clip-path="url(#p41af0cdded)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square"/> - + @@ -221,11 +221,11 @@ z +" clip-path="url(#p41af0cdded)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square"/> - + @@ -261,11 +261,11 @@ z +" clip-path="url(#p41af0cdded)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square"/> - + @@ -307,11 +307,11 @@ z +" clip-path="url(#p41af0cdded)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square"/> - + @@ -550,16 +550,16 @@ z +" clip-path="url(#p41af0cdded)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square"/> - - + @@ -582,186 +582,105 @@ z - + - + - - + + - + - + - + - - - + + + - + - + - + - - - + + + - + - + - + - - - - - - + + + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - + - + @@ -915,16 +834,16 @@ z - - + + - - - - - - - - + + + + + + + - - + + - - - - - - - - + + + + + + + @@ -995,19 +914,83 @@ L 737.424 558.1368 L 737.424 75.2544 " style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> - - - + + + + + + - + - + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + - - - + + + - - - + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - + - - + + - - - - + + + + - - + + - - - - + + + + - + + + + + + + + + + + + + + + - - - - + + + + - - + + - - - - + + + + - - - + + + - - - - + + + + - - + + + + + + + + + + + + + + + + + + + + + + - - - + - + - + - + - - + - + - + - + + diff --git a/content/en/docs/reference/commands/istioctl/index.html b/content/en/docs/reference/commands/istioctl/index.html index 8856e84332f2a..af320f03f0d44 100644 --- a/content/en/docs/reference/commands/istioctl/index.html +++ b/content/en/docs/reference/commands/istioctl/index.html @@ -4,7 +4,7 @@ title: istioctl description: Istio control interface. generator: pkg-collateral-docs -number_of_entries: 94 +number_of_entries: 95 max_toc_level: 2 remove_toc_prefix: 'istioctl ' --- @@ -1119,6 +1119,8 @@

Examples

istioctl dashboard envoy

Open the Envoy admin dashboard for a sidecar

+

Note: envoy command is deprecated and can be replaced with proxy command, e.g. `istioctl dashboard proxy --help` +

istioctl dashboard envoy [<type>/]<name>[.<namespace>] [flags]
 
@@ -1462,6 +1464,89 @@

Examples

istioctl dash prometheus istioctl d prometheus +

istioctl dashboard proxy

+

Open the admin dashboard for a proxy, like envoy and ztunnel pods

+
istioctl dashboard proxy [<type>/]<name>[.<namespace>] [flags]
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FlagsShorthandDescription
--address <string>Address to listen on. Only accepts IP address or localhost as a value. When localhost is supplied, istioctl will try to bind on both 127.0.0.1 and ::1 and will fail if neither of these address are available to bind. (default `localhost`)
--browserWhen --browser is supplied as false, istioctl dashboard will not open the browser. Default is true which means istioctl dashboard will always open a browser to view the dashboard.
--context <string>Kubernetes configuration context (default ``)
--istioNamespace <string>-iIstio system namespace (default `istio-system`)
--kubeconfig <string>-cKubernetes configuration file (default ``)
--namespace <string>-nNamespace where the addon is running, if not specified, istio-system would be used (default `istio-system`)
--port <int>-pLocal port to listen to (default `0`)
--selector <string>-lLabel selector (default ``)
--ui-port <int>The component dashboard UI port. (default `15000`)
--vklog <Level>number for the log level verbosity. Like -v flag. ex: --vklog=9 (default `0`)
+

Examples

+
  # Open envoy admin dashboard for the productpage-123-456.default pod
+  istioctl dashboard proxy productpage-123-456.default
+
+  # Open envoy admin dashboard for one pod under a deployment
+  istioctl dashboard proxy deployment/productpage-v1
+
+  # Open dashboard for the ztunnel-bwh89.istio-system pod
+  istioctl dashboard proxy ztunnel-bwh89.istio-system
+
+  # Open dashboard for a waypoint pod
+  istioctl dashboard proxy namespace-istio-waypoint-869b56b69c-7khz4
+
+  # with short syntax
+  istioctl dash proxy ztunnel-bwh89.istio-system
+  istioctl d proxy ztunnel-bwh89.istio-system
+
+

istioctl dashboard skywalking

Open the Istio dashboard in the SkyWalking UI

istioctl dashboard skywalking [flags]
@@ -4293,7 +4378,7 @@ 

istioctl operator init

--context <string> -The name of the kubeconfig context to use. (default ``) +Kubernetes configuration context (default ``) --dry-run @@ -4325,7 +4410,7 @@

istioctl operator init

--kubeconfig <string> -c -Path to kube config. (default ``) +Kubernetes configuration file (default ``) --manifests <string> @@ -4382,7 +4467,7 @@

istioctl operator remove

--context <string> -The name of the kubeconfig context to use. (default ``) +Kubernetes configuration context (default ``) --dry-run @@ -4402,7 +4487,7 @@

istioctl operator remove

--kubeconfig <string> -c -Path to kube config. (default ``) +Kubernetes configuration file (default ``) --namespace <string> @@ -6060,7 +6145,7 @@

istioctl uninstall

--context <string> -The name of the kubeconfig context to use. (default ``) +Kubernetes configuration context (default ``) --dry-run @@ -6079,13 +6164,13 @@

istioctl uninstall

--istioNamespace <string> - -The namespace of Istio Control Plane. (default `istio-system`) +-i +Istio system namespace (default `istio-system`) --kubeconfig <string> -c -Path to kube config. (default ``) +Kubernetes configuration file (default ``) --manifests <string> diff --git a/content/en/docs/reference/commands/pilot-discovery/index.html b/content/en/docs/reference/commands/pilot-discovery/index.html index c8a9f8a3ae2c8..1fd7181d619be 100644 --- a/content/en/docs/reference/commands/pilot-discovery/index.html +++ b/content/en/docs/reference/commands/pilot-discovery/index.html @@ -596,7 +596,7 @@

Environment variables

EXTERNAL_CA String -External CA Integration Type. Permitted Values are ISTIOD_RA_KUBERNETES_API or ISTIOD_RA_ISTIO_API +External CA Integration Type. Permitted value is ISTIOD_RA_KUBERNETES_API. EXTERNAL_ISTIOD diff --git a/content/en/docs/reference/config/proxy_extensions/wasm-plugin/index.html b/content/en/docs/reference/config/proxy_extensions/wasm-plugin/index.html index 9ac01055e40e7..5be76162f8373 100644 --- a/content/en/docs/reference/config/proxy_extensions/wasm-plugin/index.html +++ b/content/en/docs/reference/config/proxy_extensions/wasm-plugin/index.html @@ -194,6 +194,7 @@

WasmPlugin

namespace. If the WasmPlugin is present in the config root namespace, it will be applied to all applicable workloads in any namespace.

+

At most one of the selector and targetRef can be set.

diff --git a/content/en/docs/reference/config/security/authorization-policy/index.html b/content/en/docs/reference/config/security/authorization-policy/index.html index 6e6b2b1e613a0..fa79c664e531e 100644 --- a/content/en/docs/reference/config/security/authorization-policy/index.html +++ b/content/en/docs/reference/config/security/authorization-policy/index.html @@ -393,7 +393,8 @@

AuthorizationPolicy

Optional. The selector decides where to apply the authorization policy. The selector will match with workloads in the same namespace as the authorization policy. If the authorization policy is in the root namespace, the selector will additionally match with workloads in all namespaces.

-

If not set, the selector will match all workloads.

+

If the selector and the targetRef are not set, the selector will match all workloads. At most one of the selector +and targetRef can be set.

diff --git a/content/en/docs/reference/config/security/request_authentication/index.html b/content/en/docs/reference/config/security/request_authentication/index.html index 58d49a8957c24..24050c3941d2d 100644 --- a/content/en/docs/reference/config/security/request_authentication/index.html +++ b/content/en/docs/reference/config/security/request_authentication/index.html @@ -405,7 +405,7 @@

RequestAuthentication

Optional. The selector decides where to apply the request authentication policy. The selector will match with workloads in the same namespace as the request authentication policy. If the request authentication policy is in the root namespace, the selector will additionally match with workloads in all namespaces.

-

If not set, the selector will match all workloads.

+

If not set, the selector will match all workloads. At most one of the selector and targetRef can be set.

diff --git a/content/en/docs/reference/config/telemetry/index.html b/content/en/docs/reference/config/telemetry/index.html index 6a1e3084e1961..baed344696e84 100644 --- a/content/en/docs/reference/config/telemetry/index.html +++ b/content/en/docs/reference/config/telemetry/index.html @@ -199,6 +199,7 @@

Telemetry

Optional. The selector decides where to apply the Telemetry policy. If not set, the Telemetry policy will be applied to all workloads in the same namespace as the Telemetry policy.

+

At most one of the selector and targetRef can be set.

diff --git a/content/en/docs/setup/install/operator/index.md b/content/en/docs/setup/install/operator/index.md index b592c7270f280..83e1f330ce232 100644 --- a/content/en/docs/setup/install/operator/index.md +++ b/content/en/docs/setup/install/operator/index.md @@ -77,7 +77,7 @@ You can alternatively deploy the operator using Helm: $ kubectl create namespace istio-operator {{< /text >}} -1. Install operator using Helm. +2) Install operator using Helm. {{< text syntax=bash snip_id=deploy_istio_operator_helm >}} $ helm install istio-operator manifests/charts/istio-operator \ diff --git a/content/en/docs/tasks/traffic-management/tcp-traffic-shifting/gtwapi_test.sh b/content/en/docs/tasks/traffic-management/tcp-traffic-shifting/gtwapi_test-disable.sh similarity index 100% rename from content/en/docs/tasks/traffic-management/tcp-traffic-shifting/gtwapi_test.sh rename to content/en/docs/tasks/traffic-management/tcp-traffic-shifting/gtwapi_test-disable.sh diff --git a/content/en/docs/tasks/traffic-management/tcp-traffic-shifting/test.sh b/content/en/docs/tasks/traffic-management/tcp-traffic-shifting/test-disable.sh similarity index 100% rename from content/en/docs/tasks/traffic-management/tcp-traffic-shifting/test.sh rename to content/en/docs/tasks/traffic-management/tcp-traffic-shifting/test-disable.sh diff --git a/content/en/news/releases/1.18.x/announcing-1.18.3/index.md b/content/en/news/releases/1.18.x/announcing-1.18.3/index.md new file mode 100644 index 0000000000000..163307d96785d --- /dev/null +++ b/content/en/news/releases/1.18.x/announcing-1.18.3/index.md @@ -0,0 +1,35 @@ +--- +title: Announcing Istio 1.18.3 +linktitle: 1.18.3 +subtitle: Patch Release +description: Istio 1.18.3 patch release. +publishdate: 2023-09-12 +release: 1.18.3 +--- + +This release contains bug fixes to improve robustness. + +This release note describes what’s different between Istio 1.18.2 and 1.18.3. + +{{< relnote >}} + +## Changes + +- **Added** ability to install gateway helm chart with a dual-stack service definition. + +- **Fixed** an issue where HTTP probe’s `request.host` was not well propagated. + ([Issue #46087](https://github.com/istio/istio/issues/46087)) + +- **Fixed** `health_checkers` EnvoyFilter extensions not being compiled into the proxy. + ([Issue #46277](https://github.com/istio/istio/issues/46277)) + +- **Fixed** an issue that Istio should prefer `IMDSv2` on AWS. + ([Issue #45825](https://github.com/istio/istio/issues/45825)) + +- **Fixed** an issue where the creation of a Telemetry object without any providers throws the IST0157 error. + ([Issue #46510](https://github.com/istio/istio/issues/46510)) + +- **Fixed** `meshConfig.defaultConfig.sampling` is ignored when there are only default providers. ([Issue #46653](https://github.com/istio/istio/issues/46653)) + +- **Fixed** an issue causing mesh configuration to not be properly synced, typically resulting in a misconfigured trust domain. + ([Issue #45739](https://github.com/istio/istio/issues/45739)) diff --git a/content/zh/blog/2021/wasm-progress/index.md b/content/zh/blog/2021/wasm-progress/index.md index 10cb219f04025..7d844f2018132 100644 --- a/content/zh/blog/2021/wasm-progress/index.md +++ b/content/zh/blog/2021/wasm-progress/index.md @@ -8,43 +8,69 @@ keywords: [wasm,extensibility,WebAssembly] 在一年前的今天,我们向 Istio 1.5 版本中引入了基于 WebAssembly 的可扩展性。 -在过去的一年里,Istio、Envoy 和 Proxy-Wasm 社区继续共同努力,使 WebAssembly(Wasm)可扩展性更加稳定、可靠且易于采用。让我们通过 Istio 1.9 发布版对 Wasm 支持进行更新,并谈谈我们未来的计划。 - -## WebAssembly 支持已合并到上游 Envoy - -在将 Wasm 和 WebAssembly for Proxies (Proxy-Wasm) ABI 的实验性支持添加到 Istio 对 Envoy 的分支后,我们从早期用户收集了一些很好的反馈。这些反馈与开发核心 Istio Wasm 扩展所获得的经验相结合,帮助 WebAssembly 在运行时变的更加成熟和稳定。 -这些改进解决了可直接将 Wasm 支持合并到 Envoy 上游的阻碍,于是在 2020 年 10 月它成为所有官方 Envoy 版本的一部分。 +在过去的一年里,Istio、Envoy 和 Proxy-Wasm 社区继续共同努力, +使 WebAssembly(Wasm)可扩展性更加稳定、可靠且易于采用。 +让我们通过 Istio 1.9 发布版对 Wasm 支持进行更新,并谈谈我们未来的计划。 + +## WebAssembly 支持已合并到上游 Envoy {#webassembly-support-merged-in-upstream-envoy} + +在将 Wasm 和 WebAssembly for Proxies(Proxy-Wasm)ABI +的实验性支持添加到 Istio 对 Envoy 的分支后,我们从早期用户收集了一些很好的反馈。 +这些反馈与开发核心 Istio Wasm 扩展所获得的经验相结合, +帮助 WebAssembly 在运行时变的更加成熟和稳定。 +这些改进解决了可直接将 Wasm 支持合并到 Envoy 上游的阻碍, +于是在 2020 年 10 月它成为所有官方 Envoy 版本的一部分。 这是一个重要的里程碑,因为它表明: * 运行时已准备好进行更广泛的采用。 * 编程 ABI/API、扩展配置 API 和运行时行为正在变得稳定。 * 您可以期待未来有更大的采用和支持社区。 -## `wasm-extensions` 生态系统仓库 +## `wasm-extensions` 生态系统仓库 {#wasm-extensions-ecosystem-repository} -作为 Envoy Wasm 运行时的早期用户,Istio 的可扩展性和可观测工作组在开发扩展方面获得了很多经验。我们构建了几个一流的扩展,包括 Metadata 交换、Prometheus 统计信息和属性生成。 -为了更广泛地分享我们的学习成果,我们在 `istio-ecosystem` 组织中创建了一个 `wasm-extensions` 存储库。该存储库有两个目的: +作为 Envoy Wasm 运行时的早期用户,Istio 的可扩展性和可观测工作组在开发扩展方面获得了很多经验。 +我们构建了几个一流的扩展,包括 [Metadata 交换](https://archive.istio.io/v1.17/docs/reference/config/proxy_extensions/metadata_exchange/)、 +[Prometheus 统计信息](https://archive.istio.io/v1.17/docs/reference/config/proxy_extensions/stats/) +和[属性生成](https://archive.istio.io/v1.17/docs/reference/config/proxy_extensions/attributegen/)。 +为了更广泛地分享我们的学习成果,我们在 `istio-ecosystem` +组织中创建了一个 [`wasm-extensions` 存储库](https://github.com/istio-ecosystem/wasm-extensions)。 +该存储库有两个目的: -* 它提供了规范的示例扩展,涵盖了几个热门需求的功能(例如[基本身份验证](https://github.com/istio-ecosystem/wasm-extensions/tree/master/extensions/basic_auth))。 -* 它提供了 Wasm 扩展开发、测试和发布指南。该指南基于与 Istio 可扩展性团队使用、维护和测试的相同构建工具链和测试框架。 +* 它提供了规范的示例扩展,涵盖了几个热门需求的功能 + (例如[基本身份验证](https://github.com/istio-ecosystem/wasm-extensions/tree/master/extensions/basic_auth))。 +* 它提供了 Wasm 扩展开发、测试和发布指南。 + 该指南基于与 Istio 可扩展性团队使用、维护和测试的相同构建工具链和测试框架。 -该指南目前涵盖了使用 C++ 进行 [WebAssembly 扩展开发](https://github.com/istio-ecosystem/wasm-extensions/blob/master/doc/write-a-wasm-extension-with-cpp.md)和单元测试, +该指南目前涵盖了使用 C++ 进行 +[WebAssembly 扩展开发](https://github.com/istio-ecosystem/wasm-extensions/blob/master/doc/write-a-wasm-extension-with-cpp.md)和单元测试, 以及使用 Go 测试框架进行[集成测试](https://github.com/istio-ecosystem/wasm-extensions/blob/master/doc/write-integration-test.md), -通过运行带有 Istio 代理二进制文件的 Wasm 模块来模拟真实运行时。 -在未来,我们还将添加几个更多的规范扩展,例如与 Open Policy Agent 的集成以及基于 JWT 令牌的请求头操作。 - -## 通过 Istio 代理分发 Wasm 模块 - -在 Istio 1.9 之前,需要使用 [Envoy 远程数据源](https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/core/v3/base.proto#config-core-v3-remotedatasource) 将远程 Wasm 模块分发到代理。 -[在此示例中](https://gist.github.com/bianpengyuan/8377898190e8052ffa36e88a16911910),可以看到定义了两个 `EnvoyFilter` 资源:一个用于添加远程获取 Envoy 集群,另一个用于将 Wasm 过滤器注入 HTTP 过滤器链中。 -这种方法有一个缺点:如果由于错误的配置或瞬态错误而导致远程获取失败,则 Envoy 将被错误的配置卡住。 -如果将 Wasm 扩展配置为 [fail closed](https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/wasm/v3/wasm.proto#extensions-wasm-v3-pluginconfig),则错误的远程获取将阻止 Envoy 提供服务。 -要解决这个问题,需要对 Envoy xDS 协议进行[根本性改变](https://github.com/envoyproxy/envoy/issues/9447),使其允许异步 xDS 响应。 - -Istio 1.9 通过利用 istio-agent 内部的 xDS 代理和 Envoy 的[扩展配置发现服务](https://www.envoyproxy.io/docs/envoy/latest/configuration/overview/extension) (ECDS),提供了一个可靠的开箱即用的分发机制。 - -istio-agent 拦截来自 istiod 的扩展配置资源更新,从中读取远程获取提示,下载 Wasm 模块,并使用已下载的 Wasm 模块路径重写 ECDS 配置。 -如果下载失败,istio-agent 将拒绝 ECDS 更新并阻止错误配置到达 Envoy。有关更多详细信息,请参见[我们的 Wasm 模块分发文档](/zh/docs/tasks/extensibility/wasm-module-distribution/)。 +通过运行带有 Istio 代理二进制文件的 Wasm +模块来模拟真实运行时。在未来,我们还将添加几个更多的规范扩展, +例如与 Open Policy Agent 的集成以及基于 JWT 令牌的请求头操作。 + +## 通过 Istio 代理分发 Wasm 模块 {#wasm-module-distribution-via-the-istio-agent} + +在 Istio 1.9 之前,需要使用 +[Envoy 远程数据源](https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/core/v3/base.proto#config-core-v3-remotedatasource)将远程 Wasm 模块分发到代理。 +[在此示例中](https://gist.github.com/bianpengyuan/8377898190e8052ffa36e88a16911910), +可以看到定义了两个 `EnvoyFilter` 资源:一个用于添加远程获取 Envoy +集群,另一个用于将 Wasm 过滤器注入 HTTP 过滤器链中。 +这种方法有一个缺点:如果由于错误的配置或瞬态错误而导致远程获取失败, +则 Envoy 将被错误的配置卡住。如果将 Wasm 扩展配置为 +[fail closed](https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/wasm/v3/wasm.proto#extensions-wasm-v3-pluginconfig), +则错误的远程获取将阻止 Envoy 提供服务。要解决这个问题, +需要对 Envoy xDS 协议进行[根本性改变](https://github.com/envoyproxy/envoy/issues/9447), +使其允许异步 xDS 响应。 + +Istio 1.9 通过利用 istio-agent 内部的 xDS 代理和 Envoy +的[扩展配置发现服务](https://www.envoyproxy.io/docs/envoy/latest/configuration/overview/extension)(ECDS), +提供了一个可靠的开箱即用的分发机制。 + +istio-agent 拦截来自 istiod 的扩展配置资源更新, +从中读取远程获取提示,下载 Wasm 模块,并使用已下载的 Wasm +模块路径重写 ECDS 配置。如果下载失败,istio-agent 将拒绝 +ECDS 更新并阻止错误配置到达 Envoy。有关更多详细信息, +请参见[我们的 Wasm 模块分发文档](/zh/docs/tasks/extensibility/wasm-module-distribution/)。 {{< image width="75%" link="./architecture-istio-agent-downloading-wasm-module.svg" @@ -52,17 +78,30 @@ istio-agent 拦截来自 istiod 的扩展配置资源更新,从中读取远程 caption="远程获取 Wasm 模块流程" >}} -## Istio Wasm SIG 和未来工作 +## Istio Wasm SIG 和未来工作 {#istio-wasm-sig-and-future-work} 尽管我们在 Wasm 可扩展性方面取得了很多进展,但该项目仍有许多方面需要完成。 为了整合各方的努力并更好地应对未来的挑战,我们成立了一个 [Istio WebAssembly SIG](https://discuss.istio.io/t/introducing-wasm-sig/9930), -旨在提供一种标准和可靠的方式,使 Istio 能够使用 Wasm 扩展。以下是我们正在处理的一些事项: - -* **一流的扩展 API**:目前,Wasm 扩展需要通过 Istio 的 `EnvoyFilter` API 注入。一流的扩展 API 将使在 Istio 中使用 Wasm 更加容易,并且我们预计这将在 Istio 1.10 中引入。 -* **分发模块的相互操作性**:基于 Solo.io 的 [WebAssembly OCI 图像规范](https://www.solo.io/blog/announcing-the-webassembly-wasm-oci-image-spec/),标准的 Wasm 模块格式将使构建、拉取、发布和执行变得容易。 -* **基于容器存储接口(CSI)的模块分发**:使用 istio-agent 分发模块易于采用,但可能不够高效,因为每个代理都会保留 Wasm 模块的副本。作为更有效的解决方案,使用 [Ephemeral CSI](https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html),将提供一个 DaemonSet 来配置 Pod 的存储。类似于 CNI 插件,CSI 驱动程序将从 xDS 流中获取 Wasm 模块,并在 Pod 启动时将其挂载到 `rootfs` 内部。 - -如果您想加入我们,该小组将每隔一周的北京时间星期三上午 6 点(太平洋时间星期二下午 2 点)举行会议。您可以在 [Istio 工作组日历](https://github.com/istio/community/blob/master/WORKING-GROUPS.md#working-group-meetings)上找到会议。 +旨在提供一种标准和可靠的方式,使 Istio 能够使用 Wasm 扩展。 +以下是我们正在处理的一些事项: + +* **一流的扩展 API**:目前,Wasm 扩展需要通过 Istio 的 `EnvoyFilter` API 注入。 + 一流的扩展 API 将使在 Istio 中使用 Wasm 更加容易, + 并且我们预计这将在 Istio 1.10 中引入。 +* **分发模块的相互操作性**:基于 Solo.io 的 + [WebAssembly OCI 图像规范](https://www.solo.io/blog/announcing-the-webassembly-wasm-oci-image-spec/), + 标准的 Wasm 模块格式将使构建、拉取、发布和执行变得容易。 +* **基于容器存储接口(CSI)的模块分发**:使用 istio-agent 分发模块易于采用, + 但可能不够高效,因为每个代理都会保留 Wasm 模块的副本。 + 作为更有效的解决方案,使用 + [Ephemeral CSI](https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html), + 将提供一个 DaemonSet 来配置 Pod 的存储。 + 类似于 CNI 插件,CSI 驱动程序将从 xDS 流中获取 Wasm 模块, + 并在 Pod 启动时将其挂载到 `rootfs` 内部。 + +如果您想加入我们,该小组将每隔一周的北京时间星期三上午 6 点 +(太平洋时间星期二下午 2 点)举行会议。 +您可以在 [Istio 工作组日历](https://github.com/istio/community/blob/master/WORKING-GROUPS.md#working-group-meetings)上找到会议。 我们期待看到您如何使用 Wasm 来扩展 Istio! diff --git a/content/zh/docs/ops/deployment/performance-and-scalability/index.md b/content/zh/docs/ops/deployment/performance-and-scalability/index.md index eee6c1adad5b5..d9a56361f2342 100644 --- a/content/zh/docs/ops/deployment/performance-and-scalability/index.md +++ b/content/zh/docs/ops/deployment/performance-and-scalability/index.md @@ -124,7 +124,7 @@ for the `http/1.1` protocol, with a 1 kB payload at 1000 requests per second usi --> 在网格内部,请求会依次遍历客户端和服务器端代理。在 Istio 1.19 的默认配置中(即带有遥测 v2 的 Istio),两个代理分别在基线数据平面延迟的 90 和 99 -分位延迟上增加约 1.7 和 2.7 毫秒。我们使用 `http/1.1` 协议的 +分位延迟上增加约 1.31 和 1.58 毫秒。我们使用 `http/1.1` 协议的 [Istio 基准测试](https://github.com/istio/tools/tree/{{< source_branch_name >}}/perf/benchmark)获得了这些结果, 测试标准是每秒 1000 请求,负载为 1KB,使用了 16 个客户端连接和 2 个代理 worker 并启用双向 TLS。 diff --git a/content/zh/docs/ops/deployment/requirements/index.md b/content/zh/docs/ops/deployment/requirements/index.md index 64ee2c258b653..889026449c5f3 100644 --- a/content/zh/docs/ops/deployment/requirements/index.md +++ b/content/zh/docs/ops/deployment/requirements/index.md @@ -31,10 +31,6 @@ Istio 为应用程序提供了大量的功能,而对应用程序代码本身 作为 Istio 服务网格中的一部分,Kubernetes 集群中的 Pod 和 Service 必须满足以下要求: -- **Service 关联**:不管一个 Pod 是否对外暴露端口,每个 Pod 必须至少属于一个 - [Kubernetes Service](https://kubernetes.io/zh-cn/docs/concepts/services-networking/service/)。 - 假如一个 Pod 同时属于多个 Kubernetes Service,那么它不能在不同 Service 的端口号上使用不同的协议(比如 HTTP 和 TCP)。 - - **应用 UID**:确保您的 Pod 不会被 ID(UID)为 `1337` 的用户运行应用,因为 `1337` 是为 Sidecar 代理保留的。 - **`NET_ADMIN` 和 `NET_RAW` 权限**:如果您的集群[强制执行](https://kubernetes.io/zh-cn/docs/concepts/policy/pod-security-policy/#enabling-pod-security-policies)了 @@ -72,6 +68,11 @@ Istio 为应用程序提供了大量的功能,而对应用程序代码本身 - `version` 标签:这个标签用于在特定方式部署的应用中表示版本。 +- **已命名 Service 端口**:可以选择已命名 Service 端口用于显式指定协议。 + 更多详细信息请参见[协议选择](/zh/docs/ops/configuration/traffic-management/protocol-selection/)。 + 如果一个 Pod 属于多个 [Kubernetes Service](https://kubernetes.io/zh-cn/docs/concepts/services-networking/service/), + 这些 Service 不能对不同的协议(例如 HTTP 和 TCP)使用相同的端口号。 + ## Istio 使用的端口 {#ports-used-by-Istio} Istio sidecar 代理(Envoy)使用以下端口和协议。 diff --git a/content/zh/docs/reference/commands/istioctl/index.html b/content/zh/docs/reference/commands/istioctl/index.html index 8856e84332f2a..af320f03f0d44 100644 --- a/content/zh/docs/reference/commands/istioctl/index.html +++ b/content/zh/docs/reference/commands/istioctl/index.html @@ -4,7 +4,7 @@ title: istioctl description: Istio control interface. generator: pkg-collateral-docs -number_of_entries: 94 +number_of_entries: 95 max_toc_level: 2 remove_toc_prefix: 'istioctl ' --- @@ -1119,6 +1119,8 @@

Examples

istioctl dashboard envoy

Open the Envoy admin dashboard for a sidecar

+

Note: envoy command is deprecated and can be replaced with proxy command, e.g. `istioctl dashboard proxy --help` +

istioctl dashboard envoy [<type>/]<name>[.<namespace>] [flags]
 
@@ -1462,6 +1464,89 @@

Examples

istioctl dash prometheus istioctl d prometheus +

istioctl dashboard proxy

+

Open the admin dashboard for a proxy, like envoy and ztunnel pods

+
istioctl dashboard proxy [<type>/]<name>[.<namespace>] [flags]
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FlagsShorthandDescription
--address <string>Address to listen on. Only accepts IP address or localhost as a value. When localhost is supplied, istioctl will try to bind on both 127.0.0.1 and ::1 and will fail if neither of these address are available to bind. (default `localhost`)
--browserWhen --browser is supplied as false, istioctl dashboard will not open the browser. Default is true which means istioctl dashboard will always open a browser to view the dashboard.
--context <string>Kubernetes configuration context (default ``)
--istioNamespace <string>-iIstio system namespace (default `istio-system`)
--kubeconfig <string>-cKubernetes configuration file (default ``)
--namespace <string>-nNamespace where the addon is running, if not specified, istio-system would be used (default `istio-system`)
--port <int>-pLocal port to listen to (default `0`)
--selector <string>-lLabel selector (default ``)
--ui-port <int>The component dashboard UI port. (default `15000`)
--vklog <Level>number for the log level verbosity. Like -v flag. ex: --vklog=9 (default `0`)
+

Examples

+
  # Open envoy admin dashboard for the productpage-123-456.default pod
+  istioctl dashboard proxy productpage-123-456.default
+
+  # Open envoy admin dashboard for one pod under a deployment
+  istioctl dashboard proxy deployment/productpage-v1
+
+  # Open dashboard for the ztunnel-bwh89.istio-system pod
+  istioctl dashboard proxy ztunnel-bwh89.istio-system
+
+  # Open dashboard for a waypoint pod
+  istioctl dashboard proxy namespace-istio-waypoint-869b56b69c-7khz4
+
+  # with short syntax
+  istioctl dash proxy ztunnel-bwh89.istio-system
+  istioctl d proxy ztunnel-bwh89.istio-system
+
+

istioctl dashboard skywalking

Open the Istio dashboard in the SkyWalking UI

istioctl dashboard skywalking [flags]
@@ -4293,7 +4378,7 @@ 

istioctl operator init

--context <string> -The name of the kubeconfig context to use. (default ``) +Kubernetes configuration context (default ``) --dry-run @@ -4325,7 +4410,7 @@

istioctl operator init

--kubeconfig <string> -c -Path to kube config. (default ``) +Kubernetes configuration file (default ``) --manifests <string> @@ -4382,7 +4467,7 @@

istioctl operator remove

--context <string> -The name of the kubeconfig context to use. (default ``) +Kubernetes configuration context (default ``) --dry-run @@ -4402,7 +4487,7 @@

istioctl operator remove

--kubeconfig <string> -c -Path to kube config. (default ``) +Kubernetes configuration file (default ``) --namespace <string> @@ -6060,7 +6145,7 @@

istioctl uninstall

--context <string> -The name of the kubeconfig context to use. (default ``) +Kubernetes configuration context (default ``) --dry-run @@ -6079,13 +6164,13 @@

istioctl uninstall

--istioNamespace <string> - -The namespace of Istio Control Plane. (default `istio-system`) +-i +Istio system namespace (default `istio-system`) --kubeconfig <string> -c -Path to kube config. (default ``) +Kubernetes configuration file (default ``) --manifests <string> diff --git a/content/zh/docs/reference/commands/pilot-discovery/index.html b/content/zh/docs/reference/commands/pilot-discovery/index.html index c8a9f8a3ae2c8..1fd7181d619be 100644 --- a/content/zh/docs/reference/commands/pilot-discovery/index.html +++ b/content/zh/docs/reference/commands/pilot-discovery/index.html @@ -596,7 +596,7 @@

Environment variables

EXTERNAL_CA String -External CA Integration Type. Permitted Values are ISTIOD_RA_KUBERNETES_API or ISTIOD_RA_ISTIO_API +External CA Integration Type. Permitted value is ISTIOD_RA_KUBERNETES_API. EXTERNAL_ISTIOD diff --git a/content/zh/docs/reference/config/proxy_extensions/wasm-plugin/index.html b/content/zh/docs/reference/config/proxy_extensions/wasm-plugin/index.html index f778ae57024a7..9c7958ff42c50 100644 --- a/content/zh/docs/reference/config/proxy_extensions/wasm-plugin/index.html +++ b/content/zh/docs/reference/config/proxy_extensions/wasm-plugin/index.html @@ -194,6 +194,7 @@

WasmPlugin

namespace. If the WasmPlugin is present in the config root namespace, it will be applied to all applicable workloads in any namespace.

+

At most one of the selector and targetRef can be set.

diff --git a/content/zh/docs/reference/config/security/authorization-policy/index.html b/content/zh/docs/reference/config/security/authorization-policy/index.html index 52e8883475e4f..2a105062f7090 100644 --- a/content/zh/docs/reference/config/security/authorization-policy/index.html +++ b/content/zh/docs/reference/config/security/authorization-policy/index.html @@ -393,7 +393,8 @@

AuthorizationPolicy

Optional. The selector decides where to apply the authorization policy. The selector will match with workloads in the same namespace as the authorization policy. If the authorization policy is in the root namespace, the selector will additionally match with workloads in all namespaces.

-

If not set, the selector will match all workloads.

+

If the selector and the targetRef are not set, the selector will match all workloads. At most one of the selector +and targetRef can be set.

diff --git a/content/zh/docs/reference/config/security/request_authentication/index.html b/content/zh/docs/reference/config/security/request_authentication/index.html index a0fc915ea16fa..326852f420266 100644 --- a/content/zh/docs/reference/config/security/request_authentication/index.html +++ b/content/zh/docs/reference/config/security/request_authentication/index.html @@ -405,7 +405,7 @@

RequestAuthentication

Optional. The selector decides where to apply the request authentication policy. The selector will match with workloads in the same namespace as the request authentication policy. If the request authentication policy is in the root namespace, the selector will additionally match with workloads in all namespaces.

-

If not set, the selector will match all workloads.

+

If not set, the selector will match all workloads. At most one of the selector and targetRef can be set.

diff --git a/content/zh/docs/reference/config/telemetry/index.html b/content/zh/docs/reference/config/telemetry/index.html index 8aa80154038af..958dc9bc1493d 100644 --- a/content/zh/docs/reference/config/telemetry/index.html +++ b/content/zh/docs/reference/config/telemetry/index.html @@ -199,6 +199,7 @@

Telemetry

Optional. The selector decides where to apply the Telemetry policy. If not set, the Telemetry policy will be applied to all workloads in the same namespace as the Telemetry policy.

+

At most one of the selector and targetRef can be set.

diff --git a/content/zh/docs/releases/supported-releases/index.md b/content/zh/docs/releases/supported-releases/index.md index 26d035144d2fd..7d04e5675f666 100644 --- a/content/zh/docs/releases/supported-releases/index.md +++ b/content/zh/docs/releases/supported-releases/index.md @@ -68,11 +68,11 @@ Istio 控制面可以比数据面高一个版本。但数据面的版本不能 Istio 不保证超出支持窗口期的 Minor 版本都有已知的 CVE 补丁。请使用最新和受支持的版本。 {{< /warning >}} -| Minor 版本 | 没有已知 CVE 的补丁版本 | -| ---------- | ------------------------------------------ | -| 1.18.x | 1.18.2+ | -| 1.17.x | 1.17.5+ | -| 1.16.x | 1.16.7+ | +| Minor 版本 | 没有已知 CVE 的补丁版本 | +| ---------------- | ---------------------------------------------------- | +| 1.19.x | 1.19.0+ | +| 1.18.x | 1.18.2+ | +| 1.17.x | 1.17.5+ | ## 支持的 Envoy 版本 {#supported-envoy-versions} @@ -80,11 +80,11 @@ Istio 的数据面基于 [Envoy](https://github.com/envoyproxy/envoy)。 这两个项目之间的版本关系如下: -| Istio 版本 | Envoy 版本 | -| ---------- | ---------- | -| 1.18.x | 1.26.x | -| 1.17.x | 1.25.x | -| 1.16.x | 1.24.x | +| Istio 版本 | Envoy 版本 | +| ------------- | ------------- | +| 1.19.x | 1.27.x | +| 1.18.x | 1.26.x | +| 1.17.x | 1.25.x | 通常,Istio 版本倾向于与 Envoy 版本逐一对应。 您可以在 [`istio/proxy`](https://github.com/istio/proxy/blob/master/WORKSPACE#L38) diff --git a/content/zh/docs/setup/install/operator/index.md b/content/zh/docs/setup/install/operator/index.md index 209920665dbf7..83154b95229dd 100644 --- a/content/zh/docs/setup/install/operator/index.md +++ b/content/zh/docs/setup/install/operator/index.md @@ -75,7 +75,7 @@ $ istioctl operator init --watchedNamespaces=istio-namespace1,istio-namespace2 $ kubectl create namespace istio-operator {{< /text >}} -1. 使用 Helm 安装 Operator。 +2) 使用 Helm 安装 Operator。 {{< text syntax=bash snip_id=deploy_istio_operator_helm >}} $ helm install istio-operator manifests/charts/istio-operator \ diff --git a/content/zh/docs/setup/platform-setup/amazon-eks/index.md b/content/zh/docs/setup/platform-setup/amazon-eks/index.md new file mode 100644 index 0000000000000..257e814620169 --- /dev/null +++ b/content/zh/docs/setup/platform-setup/amazon-eks/index.md @@ -0,0 +1,11 @@ +--- +title: Amazon EKS +description: 有关在 AWS 云中的 Amazon EKS 上设置 Istio 的说明。 +weight: 7 +skip_seealso: true +keywords: [platform-setup,aws-cloud,eks] +owner: istio/wg-environments-maintainers +test: n/a +--- + +按照 [Istio 的 EKS 蓝图](https://github.com/aws-ia/terraform-aws-eks-blueprints/tree/main/examples/istio)说明在 AWS 云中使用 Istio 设置配置 EKS 集群。 diff --git a/content/zh/docs/tasks/observability/distributed-tracing/lightstep/index.md b/content/zh/docs/tasks/observability/distributed-tracing/lightstep/index.md index 6396c98e1e9ad..eca41ebbec992 100644 --- a/content/zh/docs/tasks/observability/distributed-tracing/lightstep/index.md +++ b/content/zh/docs/tasks/observability/distributed-tracing/lightstep/index.md @@ -13,7 +13,7 @@ test: no 此任务介绍如何配置 Istio 才能收集追踪 span,并且把收集到的 span 发送到 [Lightstep](https://lightstep.com/products/)。Lightstep 可以分析来自大规模生产级软件的 -100% 未采样的事务数据,并做出容易理解的的分布式追踪和指标信息,这有助于解释性能行为和并加速根因分析。 +100% 未采样的事务数据,并做出容易理解的分布式追踪和指标信息,这有助于解释性能行为和并加速根因分析。 在此任务的结尾,Istio 将追踪 span 从代理发送到 Lightstep Satellite 池, 以让它们在 web UI 上展示。默认情况下,所有的 HTTP 请求都被捕获(为了看到端到端的追踪, 您的代码需要转发 OT 头,即使它没有参与到追踪)。 diff --git a/content/zh/docs/tasks/security/authorization/authz-ingress/index.md b/content/zh/docs/tasks/security/authorization/authz-ingress/index.md index 83688f2fc5c21..ff81623c0c0b0 100644 --- a/content/zh/docs/tasks/security/authorization/authz-ingress/index.md +++ b/content/zh/docs/tasks/security/authorization/authz-ingress/index.md @@ -129,7 +129,7 @@ Kubernetes 的 `Ingress` 资源也必须由 Ingress 控制器支持,该控制 |DO DOKS | Load Balancer | Network {{< tip >}} -您可以指示 AWS EKS 在网关服务上创建带有注解的的 Network Load Balancer: +您可以指示 AWS EKS 在网关服务上创建带有注解的 Network Load Balancer: {{< tabset category-name="config-api" >}} diff --git a/content/zh/docs/tasks/traffic-management/locality-load-balancing/_index.md b/content/zh/docs/tasks/traffic-management/locality-load-balancing/_index.md index 7a142717e5fc2..b42081c2b4147 100644 --- a/content/zh/docs/tasks/traffic-management/locality-load-balancing/_index.md +++ b/content/zh/docs/tasks/traffic-management/locality-load-balancing/_index.md @@ -3,6 +3,7 @@ title: 地域负载均衡 description: 本系列任务演示如何在 Istio 中配置地域负载均衡。 weight: 65 keywords: [locality,load balancing,priority,prioritized,kubernetes,multicluster] +list_below: true simple_list: true content_above: true aliases: diff --git a/content/zh/docs/tasks/traffic-management/locality-load-balancing/before-you-begin/index.md b/content/zh/docs/tasks/traffic-management/locality-load-balancing/before-you-begin/index.md index ed47b0039f71a..421aa59ae5809 100644 --- a/content/zh/docs/tasks/traffic-management/locality-load-balancing/before-you-begin/index.md +++ b/content/zh/docs/tasks/traffic-management/locality-load-balancing/before-you-begin/index.md @@ -25,6 +25,36 @@ owner: istio/wg-networking-maintainers caption="Setup for locality load balancing tasks" >}} +{{< tip >}} +在单个多区域集群环境中,还可以配置局部负载均衡以将故障转移到同一集群内的不同区域。 +要测试它,您需要创建一个具有多个工作区域的集群,并将 istiod 实例和应用程序部署到每个区域。 + +1: 如果您没有多区域 Kubernetes 集群,您可以使用 `kind` 通过以下命令在本地部署一个集群: + +{{< text syntax=bash snip_id=none >}} +$ kind create cluster --config=- <}} + +2: 使用 `topology.kubernetes.io/zone` 为每个工作节点添加区域名称标签: + +{{< text syntax=bash snip_id=none >}} +$ kubectl label node kind-worker topology.kubernetes.io/zone=us-south10 +$ kubectl label node kind-worker2 topology.kubernetes.io/zone=us-south12 +$ kubectl label node kind-worker3 topology.kubernetes.io/zone=us-south13 +{{< /text >}} + +3: 将 istiod 部署到控制平面节点,并将 helloworld 应用程序部署到每个工作节点。 + +{{< /tip >}} + ## 环境变量 {#environment-variables} 本指南假定将通过默认的 [Kubernetes 配置文件](https://kubernetes.io/zh-cn/docs/tasks/access-application-cluster/configure-access-multiple-clusters/)中的上下文访问所有集群。 diff --git a/content/zh/news/releases/1.19.x/_index.md b/content/zh/news/releases/1.19.x/_index.md new file mode 100644 index 0000000000000..bbaad86f072ae --- /dev/null +++ b/content/zh/news/releases/1.19.x/_index.md @@ -0,0 +1,8 @@ +--- +title: 1.19.x 版本 +description: 1.19 版本及其相关补丁发布的公告。 +weight: 10 +list_by_publishdate: true +layout: release-grid +decoration: dot +--- diff --git a/content/zh/news/releases/1.19.x/announcing-1.19/_index.md b/content/zh/news/releases/1.19.x/announcing-1.19/_index.md new file mode 100644 index 0000000000000..9d08753243c36 --- /dev/null +++ b/content/zh/news/releases/1.19.x/announcing-1.19/_index.md @@ -0,0 +1,74 @@ +--- +title: Announcing Istio 1.19.0 +linktitle: 1.19.0 +subtitle: 大版本更新 +description: Istio 1.19 发布公告。 +publishdate: 2023-09-05 +release: 1.19.0 +aliases: + - /zh/news/announcing-1.19 + - /zh/news/announcing-1.19.0 +--- + +我们很高兴地宣布 Istio 1.19 发布。这是 2023 年的第三个 Istio 版本, +我们要感谢整个 Istio 社区对 1.19.0 版本发布所作出的帮助。 +我们要感谢此版本的几位发布经理:来自 Microsoft 的 `Kalya Subramanian`、 +来自 DaoCloud 的 `Xiaopeng Han` 和来自 Google 的 `Aryan Gupta`。 +这些发布经理们要特别感谢测试和发布工作组负责人 Eric Van Norman (IBM) 在整个发布周期中提供的帮助和指导。 +我们还要感谢 Istio 工作组的维护者以及广大 Istio 社区,在发布过程中提供及时反馈、 +审核和社区测试,以及在确保及时发布方面给予的全力支持。 + +{{< relnote >}} + +{{< tip >}} +Istio 1.19.0 已得到 Kubernetes `1.25` 到 `1.28` 的官方正式支持。 +{{< /tip >}} + +## 新特性 {#what-is-new} + +### Gateway API + +Kubernetes [Gateway API](http://gateway-api.org/) +是一项旨在为 Kubernetes 带来丰富的服务网络 API +(类似于 Istio VirtualService 和 Gateway)的举措。 + +随着 Gateway API v0.8.0 的发布, +正式添加了[对服务网格的支持](https://gateway-api.sigs.k8s.io/blog/2023/0829-mesh-support/)! +这项进展是与更广泛的 Kubernetes 生态社区共同努力的结果,并且包含 Istio 在内的多个合规性实现。 + +查看[网格文档](/zh/docs/tasks/traffic-management/ingress/gateway-api/#mesh-traffic)以开始使用。 +与任何实验性功能一样,我们非常感谢反馈。 + +除了网格流量之外,入口流量的 API +使用[处于 Beta 阶段](/zh/docs/tasks/traffic-management/ingress/gateway-api/#configuring-a-gateway)并迅速接近 GA。 + +### Ambient Mesh + +在此发布周期中,团队一直在努力改进 [Ambient 网格](/zh/docs/ops/ambient/), +这是替代之前 Sidecar 模型的新 Istio 部署模型。如果您还没有听说过 Ambient, +请查看[介绍博客文章](/zh/blog/2022/introducing-ambient-mesh/)。 + +在此版本中,添加了对 `ServiceEntry`、`WorkloadEntry`、`PeerAuthentication` +和 DNS 代理的支持。此外,还修复了许多错误并提高了可靠性。 + +请注意,在此版本中,Ambient 网格仍处于 Alpha 功能阶段。 +您的反馈对于推动 Ambient 进入 Beta 版至关重要,因此请尝试一下并告诉我们您的想法! + +### 其他改进 {#additional-improvements} + +为了进一步简化 `Virtual Machine` 和 `Multicluster` 体验, +`WorkloadEntry` 资源中的地址字段现在是可选的。 + +我们还增强了安全配置。例如,您可以为 Istio 入口网关的 TLS 设置配置 `OPTIONAL_MUTUAL`, +这允许选择性使用和验证客户端证书。此外,您还可以通过 +`MeshConfig` 配置用于非 Istio mTLS 流量的首选密码套件。 + +## 升级至 1.19 {#upgrading-to-1.19} + +我们期待倾听您关于升级到 Istio 1.19 的体验。 +您可以加入 [Discuss Istio](https://discuss.istio.io/) 的会话中提供反馈, +或加入我们的 [Slack 工作空间](https://slack.istio.io/)中的 #release-1.19 频道。 + +您想直接为 Istio 做贡献吗? +找到并加入我们的某个[工作组](https://github.com/istio/community/blob/master/WORKING-GROUPS.md), +帮助我们改进。 diff --git a/content/zh/news/releases/1.19.x/announcing-1.19/change-notes/index.md b/content/zh/news/releases/1.19.x/announcing-1.19/change-notes/index.md new file mode 100644 index 0000000000000..02134707674a7 --- /dev/null +++ b/content/zh/news/releases/1.19.x/announcing-1.19/change-notes/index.md @@ -0,0 +1,346 @@ +--- +title: Istio 1.19.0 更新说明 +linktitle: 1.19.0 +subtitle: 次要版本 +description: Istio 1.19.0 更新说明。 +publishdate: 2023-09-05 +release: 1.19.0 +weight: 20 +--- + +## 弃用通知 {#deprecation-notices} + +以下通知说明了根据 [Istio 的弃用政策](/zh/docs/releases/feature-stages/#feature-phase-definitions)将在未来某个版本中移除的功能。 +请考虑升级您的环境以移除弃用的功能。 + +### 制品 {#artifacts} + +名称中未指定架构的对于 macOS 和 Windows 的制品 +(例如:`istio-1.18.0-osx.tar.gz`)将在多个版本中被删除。 +它们已被名称中包含架构的制品所取代(例如:`istio-1.18.0-osx-amd64.tar.gz`)。 +([Issue #45677](https://github.com/istio/istio/issues/45677)) + +## 流量治理 {#traffic-management} + +- **改进** 改进了基于路由的 JWT 声明,支持使用 `[]` 作为嵌套声明名称的分隔符。 + ([Issue #44228](https://github.com/istio/istio/issues/44228)) + +- **改进** 改进了 Sidecar 注入的性能,特别是对于具有大量环境变量的 Pod。 + +- **更新** 更新了使用 `ServiceEntry` 时的 DNS 解析, + 以便多网络网关的 DNS 将被在代理而不是在控制平面中解析。 + +- **新增** 添加了对代理中 `traffic.sidecar.istio.io/excludeInterfaces` 注解的支持。 + ([Issue #41271](https://github.com/istio/istio/issues/41271)) + +- **新增** 添加了在初始化 Ambient 中对 `WorkloadEntry` 的支持。 + ([Issue #45472](https://github.com/istio/istio/issues/45472)) + +- **新增** 添加了在 Ambient 中对没有地址的 `WorkloadEntry` 资源的支持。 + ([Issue #45758](https://github.com/istio/istio/issues/45758)) + +- **新增** 添加了在初始化 Ambient 中对 `ServiceEntry` 的支持。 + +- **新增** 在 VirtualService `HTTPRewrite` 中添加了对正则表达式重写的支持。 + ([Issue #22290](https://github.com/istio/istio/issues/22290)) + +- **新增** 在 Gateway 的 `ServerTLSSettings` 中添加了新的 TLS 模式 `OPTIONAL_MUTUAL`, + 如果存在客户端证书,该模式将对其进行验证。 + +- **新增** 添加了在双栈中设置正确 DNS 系列类型的增强。 + 增加了 `CheckIPFamilyTypeForFirstIPs`,以帮助根据第一个 IP 地址确认 IP 系列类型。 + 并将 `ISTIO_DUAL_STACK` 环境变量更改为控制平面和数据平面的统一变量。 + ([Issue #41462](https://github.com/istio/istio/issues/41462)) + +- **修复** 修复了不同网络上的 `WorkloadEntry` 资源不需要指定地址的问题。 + ([Issue #45150](https://github.com/istio/istio/issues/45150)) + +- **修复** 修复了 Istio Gateway API 的实现需要遵循 Gateway API 要求, + 即必须为 `kind: Service` 的 `parentRef` 设置 `group: ""` 字段。 + Istio 之前容忍了 Service-kind 父引用中组的缺失。这是一个重大改变;详细信息请参见升级说明。 + ([Issue #2309](https://github.com/kubernetes-sigs/gateway-api/issues/2309)) + +- **修复** 修复了为非 Istio mTLS 设置 `istio.alpn` 过滤器的问题。 + ([Issue #40680](https://github.com/istio/istio/issues/40680)) + +- **修复** 修复了 `http_route` 会影响其他 `virtualhosts` 的错误。 + ([Issue #44820](https://github.com/istio/istio/issues/44820)) + +- **修复** 修复了 EnvoyFilter 的操作顺序,以便被移除并被重新添加的资源不会被误删除。 + ([Issue #45089](https://github.com/istio/istio/issues/45089)) + +- **修复** 修复了当用户在 `./etc/istio/pod/labels` 中指定 `istio-locality` 时, + `VirtualMachine` `WorkloadEntry` 自动注册失败,并出现无效的 `istio-locality` 标签的问题。 + ([Issue #45413](https://github.com/istio/istio/issues/45413)) + +- **修复** 修复了在双栈网格中 `virtualHost.Domains` 缺少双栈服务中的第二个 IP 地址的问题。 + ([Issue #45557](https://github.com/istio/istio/issues/45557)) + +- **修复** 修复了当 `VirtualService` 具有不同大小写的相同主机时,路由配置因重复域名而被拒绝的错误。 + ([Issue #45719](https://github.com/istio/istio/issues/45719)) + +- **修复** 修复了如果禁用 xDS 缓存,删除集群时 Istiod 可能会崩溃的问题。 + ([Issue #45798](https://github.com/istio/istio/issues/45798)) + +- **修复** 修复了在已经为同一 VNI 和远程 IP 配置外部 `geneve` 链接或为另一个 + `geneve` 链接的节点上创建 `istioin` 和 `istioout` `geneve` 链接的问题。 + 用于避免在这些情况下出现错误,istio-cni 动态确定创建的 `geneve` 链接的可用目标端口。 + +- **修复** 修复了当入口中使用服务端口名称引用服务时,Istiod 无法自动检测服务端口更改的问题。 + ([Issue #46035](https://github.com/istio/istio/issues/46035)) + +- **修复** 修复了 HTTP 探针的 `request.host` 传播不畅的问题。 + ([Issue #46087](https://github.com/istio/istio/issues/46087)) + +- **修复** 修复了 Ambient `WorkloadEntry` xDS 事件在更新时触发的问题。 + ([Issue #46267](https://github.com/istio/istio/issues/46267)) + +- **修复** 修复了 `health_checkers` EnvoyFilter 扩展未编译到代理中的问题。 + ([Issue #46277](https://github.com/istio/istio/issues/46277)) + +- **修复** 修复了当 `LoadBalancer.Ingress.IP` 不存在或未设置为在 VIP 中不包含空 IP 字符串时产生崩溃的问题。 + +- **修复** 修复了 `HTTPGet` `healthcheck` 探针翻译中的回归问题。 + ([Issue #45632](https://github.com/istio/istio/issues/45632)) + +- **移除** 移除了 `CNI_ENABLE_INSTALL`、`CNI_ENABLE_REINSTALL`、 + `SKIP_CNI_BINARIES` 和 `UPDATE_CNI_BINARIES` 功能标志。 + +- **移除** 移除了对 Envoy API 名称匹配中已弃用的 EnvoyFilter 名称的支持。 + EnvoyFilter 将仅与规范命名标准匹配。有关更多详细信息,请参阅 + [Envoy 文档](https://www.envoyproxy.io/docs/envoy/latest/version_history/v1.14.0#deprecated)。 + +- **移除** 移除了 `ISTIO_DEFAULT_REQUEST_TIMEOUT` 功能标志。 + 请在 VirtualService API 中使用超时设置。 + +- **移除** 移除了 `ENABLE_AUTO_MTLS_CHECK_POLICIES` 功能标志。 + +- **移除** 移除了 `PILOT_ENABLE_LEGACY_AUTO_PASSTHROUGH` 功能标志。 + +- **移除** 移除了 `PILOT_ENABLE_LEGACY_ISTIO_MUTUAL_CREDENTIAL_NAME` 功能标志。 + +- **移除** 移除了 `PILOT_LEGACY_INGRESS_BEHAVIOR` 功能标志。 + +- **移除** 移除了 `PILOT_ENABLE_ISTIO_TAGS` 功能标志。 + +- **移除** 移除了 `ENABLE_LEGACY_LB_ALGORITHM_DEFAULT` 功能标志。 + +- **移除** 移除了 `PILOT_PARTIAL_FULL_PUSHES` 功能标志。 + +- **移除** 移除了 `PILOT_INBOUND_PROTOCOL_DETECTION_TIMEOUT` 功能标志。 + 如果仍然需要,可以在 MeshConfig 中进行配置。 + +- **移除** 移除了 `AUTO_RELOAD_PLUGIN_CERTS` 功能标志。 + +- **移除** 移除了 `PRIORITIZED_LEADER_ELECTION` 功能标志。 + +- **移除** 移除了 `SIDECAR_IGNORE_PORT_IN_HOST_MATCH` 功能标志。 + +- **移除** 移除了 `REWRITE_TCP_PROBES` 功能标志。 + +- **移除** 移除了 `EnvoyFilter` 中对 xDS v2 类型的支持。 + 这些应该使用 v3 接口。这一直是很多版本中的警告,现在已升级为错误。 + +- **移除** 移除了 `PILOT_ENABLE_PROTOCOL_SNIFFING_FOR_OUTBOUND` + 和 `PILOT_ENABLE_PROTOCOL_SNIFFING_FOR_INBOUND` 功能标志。 + 自 Istio 1.5 起,这些功能已默认启用。 + +- **移除** 移除了在 `EnvoyFilter` 配置中无需输入配置 URL 按名称查找 Envoy 扩展的支持。 + +- **优化** 优化了 EnvoyFilter 索引生成,以避免每次发生更改时重建所有`EnvoyFilter`, + 而是仅重建已更改的 `EnvoyFilter` 并就地更新。 + +## 安全性 {#security} + +- **新增** 添加了 DestinationRule 的 `insecureSkipVerify` 实现。 + 将 `insecureSkipVerify` 设置为 `true` 将禁用主机的 CA + 证书和 Subject Alternative Name 验证。 + ([Issue #33472](https://github.com/istio/istio/issues/33472)) + +- **新增** 添加了对 Ambient 中 PeerAuthentication 策略的支持。 + ([Issue #42696](https://github.com/istio/istio/issues/42696)) + +- **新增** 添加了通过 MeshConfig API 对非 `ISTIO_MUTUAL` 流量的 `cipher_suites` 支持。 + ([Issue #28996](https://github.com/istio/istio/issues/28996)) + +- **新增** 添加了对 Certificate Revocation List(CRL)的支持。 + +- **新增** 添加了对名为 `USE_EXTERNAL_WORKLOAD_SDS` 标志的支持。 + 当设置为 true 时,它将需要外部 SDS 工作负载套接字, + 并且如果未找到工作负载 SDS 套接字,它将阻止 istio-proxy 启动。 + ([Issue #45534](https://github.com/istio/istio/issues/45534)) + +- **修复** 修复了当颁发者 URL 中包含尾部斜杠时,无法正确解析 `jwk` 颁发者的问题。 + ([Issue #45546](https://github.com/istio/istio/issues/45546)) + +- **移除** 移除了 `SPIFFE_BUNDLE_ENDPOINTS` 功能标志。 + +## 遥测 {#telemetry} + +- **新增** 添加了名为 `provider_lookup_cluster_failures` 的新指标,用于查找集群故障。 + +- **新增** 添加了对 K8s 控制器队列指标的支持,通过将环境变量 + `ISTIO_ENABLE_CONTROLLER_QUEUE_METRICS` 设置为 `true` 来启用。 + ([Issue #44985](https://github.com/istio/istio/issues/44985)) + +- **新增** 添加了一个标志来禁用 `OTel` 内置资源标签。 + +- **新增** 为 `remote_cluster_sync_timeouts_total` 指标添加了 `cluster` 标签。 + ([Issue #44489](https://github.com/istio/istio/issues/44489)) + +- **新增** 添加了对 `sidecar.istio.io/statsHistogramBuckets` 注解的支持, + 用于自定义代理中的直方图存储桶。 + +- **新增** 添加了 HTTP 元数据交换过滤器,除了元数据 HTTP 头之外, + 还支持回退到 xDS 工作负载元数据发现。默认情况下,发现方法处于关闭状态。 + +- **新增** 添加了一个选项来配置 Envoy 用于向 Load Reporting Service + (LRS)服务器报告负载统计信息。 + +- **修复** 修复了通过 Istio 遥测 API 禁用日志提供程序不起作用的问题。 + +- **修复** 修复了除非明确指定 `match.metric=ALL_METRICS`, + 否则 `Telemetry` 不会完全禁用的问题;匹配所有指标现在被正确地视为默认值。 + +## 可扩展性 {#extensibility} + +- **新增** 添加了一个在获取失败和 VM 致命错误时无法打开的选项。 + +## 安装 {#installation} + +- **改进** 改进了在使用 OpenShift 集群时需要针对每个应用程序命名空间中手动创建 + `NetworkAttachmentDefinition` 资源情况。 + +- **更新** 更新了 Kiali 插件至 `v1.72.0` 版。 + +- **新增** 在 Gateway Chart 中添加了对 `PodDisruptionBudget`(PDB)的支持。 + ([Issue #44469](https://github.com/istio/istio/issues/44469)) + +- **新增** 添加了设置 CNI Ambient `configDir` 路径的 Helm 值。 + ([Issue #45400](https://github.com/istio/istio/issues/45400)) + +- **新增** 添加了针对 macOS 和 Windows 的名为 `amd64` 的制品。 + `amd64` 的制品并不像我们为其他操作系统所做的在名称中包含架构信息那样。这使得制品命名保持一致。 + +- **新增** 在 CNI 部署 Helm Chart 中添加 `rollingUpdate` `maxUnavailable` 设置以加快部署速度。 + +- **新增** 添加了自动设置 `GOMEMLIMIT` 和 `GOMAXPROCS` 到所有部署以提高性能。 + +- **新增** 添加了 Helm Chart [使用](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/#configurable-scaling-behavior)中 + Istiod 的 HPA 的可配置缩放行为。 + ([Issue #42634](https://github.com/istio/istio/issues/42634)) + +- **新增** 向 Istio Pilot Helm Chart 中添加了值,用于配置其他容器参数: + `volumeMounts` 和 `volumes`。可以与证书管理器 `istio-csr` 结合使用。 + ([Issue #113](https://github.com/cert-manager/istio-csr/issues/113)) + +- **新增** 向 Istiod Helm Chart 中添加了值,用于在部署上配置 + [topologySpreadConstraints](https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/)。 + 可用于更好地放置 Istiod 工作负载。 + ([Issue #42938](https://github.com/istio/istio/issues/42938)) + +- **新增** 添加了允许通过 Helm Chart 为 ztunnel Pod 设置 `terminationGracePeriodSeconds`。 + +- **修复** 修复了从 IstioOperator 中删除字段并重新安装未反映现有 IstioOperator 规范中的更改的问题。 + ([Issue #42068](https://github.com/istio/istio/issues/42068)) + +- **修复** 修复了当未设置修订版时,Operator 安装时无法正确生成 `ValidatingWebhookConfiguration` 的问题。 + ([Issue #43893](https://github.com/istio/istio/issues/43893)) + +- **修复** 修复了 Operator 未拒绝包含空格的无效 CIDR 条目的问题。 + ([Issue #45338](https://github.com/istio/istio/issues/45338)) + +- **修复** 修复了主机名包未被列为 VM 包依赖项的问题。 + ([Issue #45866](https://github.com/istio/istio/issues/45866)) + +- **修复** 修复了阻止 Gateway Chart 与自定义 `HorizontalPodAutoscaler` 资源一起使用的问题。 + +- **修复** 修复了 Istio 应在 AWS 上尽可能使用 `IMDSv2` 的问题。 + ([Issue #45825](https://github.com/istio/istio/issues/45825)) + +- **修复** 修复了 OpenShift 配置文件设置 `sidecarInjectorWebhook` + 导致使用多个网络时 `k8s.v1.cni.cncf.io/networks` 被覆盖的问题。 + ([Issue #43632](https://github.com/istio/istio/issues/43632))、([Issue #45034](https://github.com/istio/istio/issues/45034)) + +- **修复** 修复了使用没有跟踪选项的 `datadog` 或 `stackdriver` 时产生空遍历问题。 + ([Issue #45855](https://github.com/istio/istio/issues/45855)) + +- **修复** 修复了阻止路点和 ztunnel 端口暴露的问题。也可以为 Ambient 组件创建抓取的配置文件。 + ([Issue #45093](https://github.com/istio/istio/issues/45093)) + +- **移除** 移除了以下实验性 `istioctl` 命令:`add-to-mesh`、`remove-from-mesh` 和 `kube-uninject`。 + 建议使用自动 Sidecar 注入。 + +- **移除** 移除了 `ENABLE_LEGACY_FSGROUP_INJECTION` 功能标志。 + 其目的是支持 Kubernetes 1.18 及更早版本,但这些版本已不再受支持。 + +- **移除** 从 `base` Helm Chart 中移除了过时的清单。有关详细信息,请参阅升级说明。 + +## istioctl + +- **改进** 改进了 IST0123 警告消息描述。 + +- **更新** 更新了 `istioctl experimental workload configure` + 命令以接受通过 `--ingressIP` 传递的 IPv6 地址。 + +- **新增** 添加了配置类型和端点配置摘要到 `istioctl proxy-config all`。 + ([Issue #43807](https://github.com/istio/istio/issues/43807)) + +- **新增** 添加了对 `istioctl validate` 的目录支持。 + 现在,`-f` 标志接受文件路径和目录路径。 + +- **新增** 添加了对 YAML 输出到 `istioctl admin log` 的支持。 + +- **新增** 添加了对检查遥测标签的支持,现在包括 Istio 规范标签和 Kubernetes 推荐标签。 + +- **新增** 添加了对代理状态的命名空间过滤的支持。注意: + 请确保 istioctl 和 istiod 均已升级才能使此功能正常工作。 + +- **新增** 添加了对验证 JSON 文件到 `istioctl validate` 的支持。 + ([Issue #46136](https://github.com/istio/istio/issues/46136))、([Issue #46136](https://github.com/istio/istio/issues/46136)) + +- **新增** 如果用户在同一命名空间中指定多个 Istio 标签, + 对其添加了警告。包括 `istio-injection`、`istio.io/rev`、`istio.io/dataplane-mode`。 + +- **新增** 添加了支持在 `istioctl proxy-config listeners` 中显示多个侦听器地址。 + +- **修复** 修复了 `verify-install` 无法检测到 `DaemonSet` 组件状态的问题。 + +- **修复** 修复了 `istioctl proxy-config Secret` 命令中的证书有效性不准确的问题。 + +- **修复** 修复了 xDS `proxy-status` 显示不准确的 Istio 版本的问题。 + 注意:请确保 istioctl 和 istiod 均已升级,此修复程序才能发挥作用。 + +- **修复** 修复了 ztunnel Pod 可以与 `istioctl proxy-status` + 和 `istioctl Experimental proxy-status` 中的 Envoy + 配置文件进行比较的问题。他们现在被排除在比较之外。 + +- **修复** 修复了对 ztunnel Pod 执行 `rootCA` 比较时出现解析错误的问题。 + +- **修复** 修复了分析器报告网关管理服务消息的问题。 + +- **修复** 修复了在 `istioctl bug-report` 中通过 `--include` + 指定多个包含条件无法按预期工作的问题。 + ([Issue #45839](https://github.com/istio/istio/issues/45839)) + +- **修复** 修复了当未使用 `--revision` 标志时,带有修订标签的 Kubernetes + 资源会被 `istioctlanalyze` 过滤掉的问题。 + ([Issue #46239](https://github.com/istio/istio/issues/46239)) + +- **修复** 修复了在没有任何提供程序的情况下创建 Telemetry 对象会引发 IST0157 错误的问题。 + ([Issue #46510](https://github.com/istio/istio/issues/46510)) + +- **修复** 修复了当 `Gateway.Spec.Servers[].Port.Number` 与服务的 `Port` + 而不是 `TargetPort` 关联时,分析器为 `GatewayPortNotOnWorkload` 生成不正确结果的问题。 + +- **修复** 修复了 `istioctl experimental precheck` 中缺少`revision` 标志的问题。 + +- **移除** 从 `istioctl experimental` 中移除了 `uninstall` 命令。 + 请改用 `istioctl uninstall` 替代。 + +- **移除** 移除了以下实验性 `istioctl` 命令:`create-remote-secret` 和 `remote-clusters`。 + 它们已移至顶级 `istioctl` 命令。 + +## 文档变更 {#documentation-changes} + +- **改进** 改进了 Bookinfo 示例,现在可以直接在 OpenShift 中使用它们,而无需 `anyuid` SCC 权限。 diff --git a/content/zh/news/releases/1.19.x/announcing-1.19/upgrade-notes/index.md b/content/zh/news/releases/1.19.x/announcing-1.19/upgrade-notes/index.md new file mode 100644 index 0000000000000..d465ea957ec95 --- /dev/null +++ b/content/zh/news/releases/1.19.x/announcing-1.19/upgrade-notes/index.md @@ -0,0 +1,65 @@ +--- +title: Istio 1.19 升级说明 +description: 升级到 Istio 1.19 时要考虑的重要变更。 +weight: 20 +publishdate: 2023-09-05 +--- + +当您从 Istio 1.18.x 升级到 Istio 1.19.x 时,您需要考虑本页所述的变更。 +这些说明详述了故意打破 Istio `1.18.x` 向后兼容性的一些变更。 +这些说明还提到了在引入新特性的同时保持向后兼容性的一些变更。 +这里仅包含出乎 Istio `1.18.x` 用户意料的新特性变更。 + +## 使用 EnvoyFilter 的规范过滤器名称 {#use-the-canonical-filter-names-for-envoyfilter} + +如果您使用 EnvoyFilter API,请使用规范的过滤器名称。 +不支持使用已弃用的过滤器名称。有关更多详细信息, +请参阅 [Envoy 文档](https://www.envoyproxy.io/docs/envoy/latest/version_history/v1.14.0#deprecated)。 + +## 删除 `base` Helm Chart {#base-helm-chart-removals} + +之前存在于 `base` Helm Chart 中的许多配置**已复制**到之前版本中的 `istiod` Chart 中。 + +在此版本中,重复的配置已从 `base` Chart 中完全删除。 + +下面显示了旧配置到新配置的映射: + +| 旧 | 新 | +| --------------------------------------- | --------------------------------------- | +| `ClusterRole istiod` | `ClusterRole istiod-clusterrole` | +| `ClusterRole istiod-reader` | `ClusterRole istio-reader-clusterrole` | +| `ClusterRoleBinding istiod` | `ClusterRoleBinding istiod-clusterrole` | +| `Role istiod` | `Role istiod` | +| `RoleBinding istiod` | `RoleBinding istiod` | +| `ServiceAccount istiod-service-account` | `ServiceAccount istiod` | + +注意:大多数资源都会另外自动添加后缀。在旧 Chart 中是 `-{{ .Values.global.istioNamespace }}`。 +在新 Chart 中,对于命名空间范围的资源为 +`{{- if not (eq .Values.revision "") }}-{{ .Values.revision }}{{- end }}`,而对于集群范围的资源为 +`{{- if not (eq .Values.revision "")}}-{{ .Values.revision }}{{- end }}-{{ .Release.Namespace }}`。 + +## EnvoyFilter 必须指定 Envoy 扩展注入的类型 URL {#envoyfilter-must-specify-the-type-url-for-an-envoy-extension-injection} + +之前,Istio 允许仅通过其内部 Envoy 名称在 `EnvoyFilter` 中查找扩展。 +要查看您是否受到影响,请运行 `istioctl analyze` 并检查是否有弃用警告 +`using deprecated types by name without typed_config`。 +此外,请确保 `EnvoyFilter` 内的任何嵌套扩展列表都包含 `name:` 和 `typed_config:` 字段。 + +## Gateway API:附加服务的 `parentRefs` 必须指定空组 {#gateway-api-service-attached-parentrefs-must-specify-empty-group} + +由于 Gateway API 一致性测试的更新,Istio 将不再接受 Gateway API +路由中服务 `parentRef` 的默认组 `gateway.networking.k8s.io` +(例如 `HTTPRoute`、`TCPRoute` 等)。相反,您必须显式设置 `group: ""`,如下所示: + +{{< text yaml >}} +apiVersion: gateway.networking.k8s.io/v1beta1 +kind: HTTPRoute +metadata: + name: productpage +spec: + parentRefs: + - group: "" + kind: Service + name: productpage + port: 9080 +{{< /text >}} diff --git a/go.mod b/go.mod index 0c455028e4c27..48dc5aef43958 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module istio.io/istio.io -go 1.19 +go 1.20 // https://github.com/containerd/containerd/issues/5781 exclude k8s.io/kubernetes v1.13.0 @@ -11,7 +11,7 @@ replace github.com/imdario/mergo => github.com/imdario/mergo v0.3.5 require ( github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 golang.org/x/sync v0.3.0 - istio.io/istio v0.0.0-20230901023555-3b3ca8ec1632 + istio.io/istio v0.0.0-20230910030658-d3a37657c940 k8s.io/apimachinery v0.28.1 k8s.io/client-go v0.28.1 ) @@ -37,7 +37,7 @@ require ( github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4 // indirect github.com/containerd/stargz-snapshotter/estargz v0.14.3 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect - github.com/cyphar/filepath-securejoin v0.2.3 // indirect + github.com/cyphar/filepath-securejoin v0.2.4 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect github.com/docker/cli v24.0.5+incompatible // indirect @@ -195,8 +195,8 @@ require ( gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect helm.sh/helm/v3 v3.12.3 // indirect - istio.io/api v1.19.0-rc.0.0.20230828012244-464da4944bb2 // indirect - istio.io/client-go v1.19.0-rc.0 // indirect + istio.io/api v1.19.0-alpha.1.0.20230906212454-eb3480b47045 // indirect + istio.io/client-go v1.19.0-alpha.1.0.20230906213353-47c72a6168eb // indirect k8s.io/api v0.28.1 // indirect k8s.io/apiextensions-apiserver v0.28.1 // indirect k8s.io/apiserver v0.28.1 // indirect diff --git a/go.sum b/go.sum index 90932c181be10..712ee1fb7c63c 100644 --- a/go.sum +++ b/go.sum @@ -40,7 +40,7 @@ cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RX cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/AdaLogics/go-fuzz-headers v0.0.0-20230106234847-43070de90fa1 h1:EKPd1INOIyr5hWOWhvpmQpY6tKjeG0hT1s3AMC/9fic= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= @@ -144,8 +144,8 @@ github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46t github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= -github.com/cyphar/filepath-securejoin v0.2.3 h1:YX6ebbZCZP7VkM3scTTokDgBL2TY741X51MTk3ycuNI= -github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= +github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg= +github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= @@ -734,7 +734,7 @@ go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.35.0 h1:xFSRQBbXF6VvYRf2lqMJXxoB72XI1K/azav8TekHHSw= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.43.0 h1:7XZai4VhA473clBrOqqHdjHBImGfyEtv0qW4nnn/kAo= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.42.0 h1:pginetY7+onl4qN1vl0xW/V/v6OBZ0vVdH+esuJgvmM= go.opentelemetry.io/otel v1.17.0 h1:MW+phZ6WZ5/uk2nd93ANk/6yJ+dVrvNWUjGhnnFU5jM= go.opentelemetry.io/otel v1.17.0/go.mod h1:I2vmBGtFaODIVMBSTPVDlJSzBDNf93k60E6Ft0nyjo0= @@ -1229,12 +1229,12 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -istio.io/api v1.19.0-rc.0.0.20230828012244-464da4944bb2 h1:w/BvgCcFs67CVuVTp0UidSDJNY50e6ZrkBmRH8A242c= -istio.io/api v1.19.0-rc.0.0.20230828012244-464da4944bb2/go.mod h1:KstZe4bKbXouALUJ5PqpjNEhu5nj90HrDFitZfpNhlU= -istio.io/client-go v1.19.0-rc.0 h1:IhPVJW9TT18HafUPxgVCuaEBdNVPol8IJlKYGrXJmS0= -istio.io/client-go v1.19.0-rc.0/go.mod h1:zG9fwlp6qSvxlErRgc8X46CLC3Ga91cGR5ADUqEAQYU= -istio.io/istio v0.0.0-20230901023555-3b3ca8ec1632 h1:FIt188FjltdiOkQBxBfkaEt/j2LFt5fwLUpn5zcyt4g= -istio.io/istio v0.0.0-20230901023555-3b3ca8ec1632/go.mod h1:mb5FYy8JQ83rWhX8whFTR5QXvVj8NtyVJVBeNPLAIQU= +istio.io/api v1.19.0-alpha.1.0.20230906212454-eb3480b47045 h1:ECyIu8umc8WBi3zkqx8fovLXYiXLx5zJM/0Zyhe+egk= +istio.io/api v1.19.0-alpha.1.0.20230906212454-eb3480b47045/go.mod h1:hFqNwCBpXIy5jboW4geFoz3io9ZR3nVJ4oLI7udf6Vo= +istio.io/client-go v1.19.0-alpha.1.0.20230906213353-47c72a6168eb h1:5pdDJ0Ve+vhwcLy55+pTUr9mEdhJ63YmN+TOhdlBt2s= +istio.io/client-go v1.19.0-alpha.1.0.20230906213353-47c72a6168eb/go.mod h1:4QPP/1dpDk3orNpBsyq7I8irUONSRaL4AeDZrwVaYo8= +istio.io/istio v0.0.0-20230910030658-d3a37657c940 h1:VivKLtjb2+DXMdOEClxGMeY4sL83t/mCJmliBSYrC6Q= +istio.io/istio v0.0.0-20230910030658-d3a37657c940/go.mod h1:+27w5+tb1PUAhuZd6JBv4IwFwaU+h/1bsdxQ0uZBk0o= k8s.io/api v0.18.2/go.mod h1:SJCWI7OLzhZSvbY7U8zwNl9UA4o1fizoug34OV/2r78= k8s.io/api v0.18.4/go.mod h1:lOIQAKYgai1+vz9J7YcDZwC26Z0zQewYOGWdyIPUUQ4= k8s.io/api v0.28.1 h1:i+0O8k2NPBCPYaMB+uCkseEbawEt/eFaiRqUx8aB108= diff --git a/netlify.toml b/netlify.toml index f5fe9dbbc8470..ded3c1c5bb53d 100644 --- a/netlify.toml +++ b/netlify.toml @@ -2,12 +2,12 @@ publish = "public" [build.environment] - HUGO_VERSION = "0.117.0" - NODE_VERSION = "18.16.0" + HUGO_VERSION = "0.118.2" + NODE_VERSION = "18.17.1" BUILD_WITH_CONTAINER = "0" - GO_VERSION = "1.20.5" + GO_VERSION = "1.21.1" PYTHON_VERSION = "3.8" - RUBY_VERSION = "3.0.2" + RUBY_VERSION = "3.0.6" [[headers]] for = "/*"