使用 Helm 安装

    本指南中使用的 Helm Chart 与通过 Istioctl 或 安装 Istio 时使用的底层 Chart 相同。

    1. 执行任何必要的。

    2. 检查 Pod 和服务的要求

    3. 3.6 或更高的版本。

    4. 配置 Helm 存储库:

    本节介绍使用 Helm 安装 Istio 的过程。Helm 安装的一般语法是:

    该命令指定的变量如下:

    • <chart> 一个打好包的 Chart 路径,也可以是一个未打包的 Chart 目录或 URL。
    • <release> 一个用于标识和管理安装后的 Helm Chart 的名称。
    • <namespace> 要安装 Chart 的命名空间。

    可以使用一个或多个 --set <parameter>=<value> 参数更改默认配置值。 或者,您可以使用 --values <file> 参数,在一个自定义值文件中指定几个参数。

    您可以使用 helm show values <chart> 命令显示配置参数的默认值,或参考 artifacthub Chart 文档中的 、 Istiod Chart 配置参数 和 。

    1. 为 Istio 组件,创建命名空间 istio-system:

      如果在第二步使用了 --create-namespace 参数,这一步可以跳过。

      1. $ kubectl create namespace istio-system
    2. 执行修订版安装时,base chart 需要设置 --defaultRevision 值以使资源验证起作用。 有关 --defaultRevision 选项的更多信息可以在 Helm 升级文档中找到。

      1. $ helm install istio-base istio/base -n istio-system
    3. 使用 helm ls 命令验证 CRD 的安装情况:

      1. $ helm ls -n istio-system
      2. NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
      3. istio-base istio-system 1 ... ... ... ... deployed base-1.16.1 1.16.1

      在输出中找到 istio-base 的条目,并确保状态已被设置为 deployed

    4. 安装 Istio discovery chart,它用于部署 istiod 服务:

    5. 验证 Istio discovery chart 的安装情况:

      1. NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
      2. istio-base istio-system 1 ... ... ... ... deployed base-1.16.1 1.16.1
    6. 获取已安装的 Helm Chart 的状态以确保它已部署:

      1. $ helm status istiod -n istio-system
      2. NAME: istiod
      3. LAST DEPLOYED: Fri Jan 20 22:00:44 2023
      4. NAMESPACE: istio-system
      5. STATUS: deployed
      6. REVISION: 1
      7. TEST SUITE: None
      8. NOTES:
      9. "istiod" successfully installed!
      10. To learn more about the release, try:
      11. $ helm status istiod
      12. $ helm get all istiod
      13. Next steps:
      14. * Deploy a Gateway: https://istio.io/latest/docs/setup/additional-setup/gateway/
      15. * Try out our tasks to get started on common configurations:
      16. * https://istio.io/latest/docs/tasks/traffic-management
      17. * https://istio.io/latest/docs/tasks/security/
      18. * https://istio.io/latest/docs/tasks/policy-enforcement/
      19. * https://istio.io/latest/docs/tasks/policy-enforcement/
      20. * https://istio.io/latest/docs/releases/supported-releases/
      21. * https://istio.io/latest/docs/ops/best-practices/security/
      22. For further documentation see https://istio.io website
      23. Tell us how your install/upgrade experience went at https://forms.gle/99uiMML96AmsXY5d6
    7. 检查 istiod 服务是否安装成功,其 Pod 是否正在运行:

      1. $ kubectl get deployments -n istio-system --output wide
      2. NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR
      3. istiod 1/1 1 1 10m discovery docker.io/istio/pilot:1.16.1 istio=pilot
    8. (可选)安装 Istio 的入站网关:

      1. $ kubectl create namespace istio-ingress
      2. $ kubectl label namespace istio-ingress istio-injection=enabled
      3. $ helm install istio-ingress istio/gateway -n istio-ingress --wait

      请参阅安装网关以获得关于网关安装的详细文档。

      网关被部署的命名空间不得具有 istio-injection=disabled 标签。 有关更多信息,请参见。

      有关如何使用 Helm 后期渲染器自定义 Helm chart 的详细文档, 请参见高级 Helm Chart 自定义

    如果你需要将使用 istioctl 或 Operator 安装的 Istio 迁移到 Helm, 那要删除当前 Istio 控制平面资源,并根据上面的说明,使用 Helm 重新安装 Istio。 在删除当前 Istio 时,前外不能删掉 Istio 的客户资源定义(CRDs),以免丢掉你的定制 Istio 资源。

    建议:从集群中删除 Istio 前,使用上面的说明备份你的 Istio 资源。

    依据你的安装方式,选择 或 Operator 卸载指南

    您可以通过卸载上述安装的 chart,以便卸载 Istio 和及其组件。

    1. 列出在命名空间 istio-system 中安装的所有 Istio chart:

    2. (可选)删除 Istio 的所有网关 chart:

      1. $ helm delete istio-ingress -n istio-ingress
      2. $ kubectl delete namespace istio-ingress
    3. 删除 Istio discovery chart:

      1. $ helm delete istiod -n istio-system
    4. 删除 Istio base chart:

      从设计角度而言,通过 Helm 删除 chart 并不会删除通过该 chart 安装的 CRD。

      1. $ helm delete istio-base -n istio-system
    5. 删除命名空间 istio-system

      1. $ kubectl delete namespace istio-system

    如果你决定继续使用旧的控制平面不更新,您可以通过第一次发布来卸载较新的版本及其标记 。 您必须按照上述卸载步骤卸载 Istio 的修订版。

    (可选)删除 Istio 安装的 CRD

    永久删除 CRD 会移除您在集群中已创建的所有 Istio 资源。 用下面命令永久删除集群中安装的 Istio CRD: