From 27d84b889b84de65263dee448ff209087c40e27b Mon Sep 17 00:00:00 2001 From: Wilson Wu Date: Fri, 13 Dec 2024 17:02:03 +0800 Subject: [PATCH] Sync #16057 helm and istioctl setup docs into Chinese --- content/zh/docs/setup/install/helm/index.md | 48 +++++++++++++- .../zh/docs/setup/install/istioctl/index.md | 64 +++++++------------ 2 files changed, 68 insertions(+), 44 deletions(-) diff --git a/content/zh/docs/setup/install/helm/index.md b/content/zh/docs/setup/install/helm/index.md index 0258c3649f15..c1234ba7ed0b 100644 --- a/content/zh/docs/setup/install/helm/index.md +++ b/content/zh/docs/setup/install/helm/index.md @@ -148,8 +148,9 @@ $ helm install --namespace --create-namespace [--s ### 从非 Helm 安装迁移 {#migrating-from-non-helm-installations} 如果你要从使用 `istioctl` 安装的 Istio 版本迁移到 Helm(Istio 1.5 或更早版本), -则需要删除当前的 Istio 控制平面资源,并根据上面的说明,使用 Helm 重新安装 Istio。 -在删除当前 Istio 时,千万不能删掉 Istio 的自定义资源定义(CRD),以免丢掉您的自定义 Istio 资源。 +则需要删除当前的 Istio 控制平面资源,并根据上面的说明, +使用 Helm 重新安装 Istio。在删除当前 Istio 时, +千万不能删掉 Istio 的自定义资源定义(CRD),以免丢掉您的自定义 Istio 资源。 {{< warning >}} 建议:从集群中删除 Istio 前,使用上面的说明备份您的 Istio 资源。 @@ -216,3 +217,46 @@ $ helm install --namespace --create-namespace [--s {{< text syntax=bash snip_id=delete_crds >}} $ kubectl get crd -oname | grep --color=never 'istio.io' | xargs kubectl delete {{< /text >}} + +## 安装前生成清单 {#generate-a-manifest-before-installation} + +您可以在安装 Istio 之前使用 `helm template` 子命令为每个组件生成清单。 +例如,要为 `istiod` 组件生成可以使用 `kubectl` 安装的清单: + +{{< text syntax=bash snip_id=none >}} +$ helm template istiod istio/istiod -n istio-system --kube-version {Kubernetes version of target cluster} > istiod.yaml +{{< /text >}} + +生成的清单可用于检查具体安装了什么以及跟踪清单随时间的变化。 + +{{< tip >}} +您通常用于安装的任何其他标志或自定义值覆盖也应提供给 `helm template` 命令。 +{{< /tip >}} + +要安装上面生成的清单,它将在目标集群中创建 `istiod` 组件: + +{{< text syntax=bash snip_id=none >}} +$ kubectl apply -f istiod.yaml +{{< /text >}} + +{{< warning >}} +如果尝试使用 `helm template` 安装和管理 Istio,请注意以下注意事项: + +1. 必须手动创建 Istio 命名空间(默认为 `istio-system`)。 + +1. 资源可能未按照与 `helm install` 相同的依赖顺序进行安装 + +1. 此方法尚未作为 Istio 版本的一部分进行测试。 + +1. 虽然 `helm install` 会自动从 Kubernetes 上下文中检测特定于环境的设置, + 但 `helm template` 无法做到这一点,因为它是离线运行的, + 这可能会导致意外结果。特别是,如果您的 Kubernetes 环境不支持第三方服务帐户令牌, + 您必须确保遵循[这些步骤](/zh/docs/ops/best-practices/security/#configure-third-party-service-account-tokens)。 + +1. 由于集群中的资源没有按正确的顺序可用,生成的清单的 `kubectl apply` 可能会显示瞬态错误。 + +1. `helm install` 会自动修剪配置更改时应删除的任何资源(例如,如果您删除网关)。 + 当您将 `helm template` 与 `kubectl` 一起使用时, + 不会发生这种情况,必须手动删除这些资源。 + +{{< /warning >}} diff --git a/content/zh/docs/setup/install/istioctl/index.md b/content/zh/docs/setup/install/istioctl/index.md index 59534e1ead19..fe58a71ad5dc 100644 --- a/content/zh/docs/setup/install/istioctl/index.md +++ b/content/zh/docs/setup/install/istioctl/index.md @@ -100,20 +100,22 @@ $ istioctl install --set profile=demo ## 安装前生成清单文件 {#generate-a-manifest-before-installation} -在安装 Istio 之前,可以用 `manifest generate` 子命令生成清单文件。 -例如,用下面命令生成 `default` 配置档的清单文件: +在安装 Istio 之前,可以用 `manifest generate` +子命令生成清单文件。例如,使用以下命令为可以使用 `kubectl` +安装的 `default` 配置文件生成清单: {{< text bash >}} $ istioctl manifest generate > $HOME/generated-manifest.yaml {{< /text >}} -生成的清单文件可用于检查具体安装了什么,也可用于跟踪清单是如何随着时间而改变的。 -虽然 `IstioOperator` CR 代表完整的用户配置,足以用于跟踪, -但 `manifest generate` 命令的输出还能截获底层 chart 潜在的改变,因此可以用于跟踪实际安装过的资源。 +生成的清单可用于检查具体安装了什么以及跟踪清单随时间的变化。 +虽然 `IstioOperator` CR 代表完整的用户配置并且足以跟踪它, +但 `manifest generate` 的输出还捕获了底层图表中可能的变化, +因此可用于跟踪实际安装的资源。 -`manifest generate` 的输出还能传递给 `kubectl apply` 或类似的命令,用来安装 Istio。 -然而,这些替代的安装方法不能像 `istioctl install` 那样,将相同的依赖顺序应用于资源, -并且也没有在 Istio 发行版中测试过。 +{{< tip >}} +您通常用于安装的任何其他标志或自定义值覆盖也应提供给 `istioctl manifest generate` 命令。 +{{< /tip >}} {{< warning >}} 如果尝试使用 `istioctl manifest generate` 安装和管理 Istio,请注意以下事项: @@ -127,48 +129,26 @@ $ istioctl manifest generate > $HOME/generated-manifest.yaml $ istioctl manifest generate --set values.defaultRevision=default {{< /text >}} +1. 资源可能没有按照与 `istioctl install` 相同的依赖项顺序进行安装。 + +1. 此方法尚未作为 Istio 版本的一部分进行测试。 + 1. `istioctl install` 会在 Kubernetes 上下文中自动探测环境特定的设置, 但以离线运行的 `manifest generate` 不行,而且可能导致意外结果。 - 特别是,如果 Kubernetes 环境不支持第三方服务帐户令牌,则必须确保遵循[这些步骤](/zh/docs/ops/best-practices/security/#configure-third-party-service-account-tokens)。 + 特别是,如果 Kubernetes 环境不支持第三方服务帐户令牌, + 则必须确保遵循[这些步骤](/zh/docs/ops/best-practices/security/#configure-third-party-service-account-tokens)。 + 建议在 `istio manifest generate` 命令后附加'`--cluster-specific` 以检测目标集群的环境, + 这会将这些特定于集群的环境设置嵌入到生成的清单中。这需要对正在运行的集群进行网络访问。 -1. 用 `kubectl apply` 执行生成的清单,会显示临时错误,这是因为集群中的资源进入可用状态的顺序有问题。 +1. 用 `kubectl apply` 执行生成的清单,会显示临时错误, + 这是因为集群中的资源进入可用状态的顺序有问题。 1. `istioctl install` 自动清除一些资源,其实这些资源在配置改变时(例如,当您删除网关)就应该被删掉了。 - 但此机制在 `kubectl` 和 `istio manifest generate` 协同使用时并不会发生,所以这些资源必须手动删除。 + 但此机制在 `kubectl` 和 `istio manifest generate` + 协同使用时并不会发生,所以这些资源必须手动删除。 {{< /warning >}} -## 显示清单的差异 {#show-differences-in-manifests} - -使用这一组命令,以 YAML 风格的差异对比方式,显示 default 配置项和定制安装生成的两个清单之间的差异: - -{{< text bash >}} -$ istioctl manifest generate > 1.yaml -$ istioctl manifest generate -f samples/operator/pilot-k8s.yaml > 2.yaml -$ istioctl manifest diff 1.yaml 2.yaml -Differences in manifests are: - - -Object Deployment:istio-system:istiod has diffs: - -spec: - template: - spec: - containers: - '[#0]': - resources: - requests: - cpu: 500m -> 1000m - memory: 2048Mi -> 4096Mi - - -Object HorizontalPodAutoscaler:istio-system:istiod has diffs: - -spec: - maxReplicas: 5 -> 10 - minReplicas: 1 -> 2 -{{< /text >}} - ## 验证安装是否成功 {#verify-a-successful-installation} 您可以用 `verify-install` 命令检查 Istio 是否安装成功,此命令用您指定的清单对比集群中实际的安装情况。