使用 Istioctl 安装

按照本指南安装和配置 Istio 网格以进行深入评估或生产使用。如果您是 Istio 新手,只想尝试一下,请按照 快速入门指南 操作。

本安装指南使用 istioctl 命令行工具,它提供了对 Istio 控制平面和 Istio 数据平面边车的丰富自定义功能。它具有用户输入验证功能,有助于防止安装错误,并提供自定义选项来覆盖配置的任何方面。

使用这些说明,您可以选择 Istio 内置的任何一个 配置配置文件,然后根据您的特定需求进一步自定义配置。

istioctl 命令通过命令行选项支持完整的 IstioOperator API,用于单个设置或传递包含 IstioOperator 自定义资源 (CR) 的 yaml 文件。

先决条件

在开始之前,请检查以下先决条件

  1. 下载 Istio 版本.
  2. 执行任何必要的 平台特定设置
  3. 检查 Pod 和服务的配置要求

使用默认配置文件安装 Istio

最简单的选项是使用以下命令安装 default Istio 配置配置文件

$ istioctl install

此命令在您的 Kubernetes 配置定义的集群上安装 default 配置文件。与用于评估广泛 Istio 功能的更大 demo 配置文件不同,default 配置文件是建立生产环境的良好起点。

可以配置各种设置来修改安装。例如,要启用访问日志,请执行以下操作:

$ istioctl install --set meshConfig.accessLogFile=/dev/stdout

从外部图表安装

默认情况下,istioctl 使用编译的图表生成安装清单。这些图表与 istioctl 一起发布,用于审计和自定义目的,可以在版本 tar 的 manifests 目录中找到。istioctl 还可以使用外部图表,而不是编译的图表。要选择外部图表,请将 manifests 标志设置为本地文件系统路径:

$ istioctl install --manifests=manifests/

如果使用 istioctl 1.24.0 二进制文件,此命令将导致与 istioctl install 相同的安装,因为它指向与编译的图表相同的图表。除了用于实验或测试新功能外,我们建议使用编译的图表而不是外部图表,以确保 istioctl 二进制文件与图表兼容。

安装不同的配置文件

可以通过在命令行上传递配置文件名称,将其他 Istio 配置文件安装到集群中。例如,可以使用以下命令安装 demo 配置文件:

$ istioctl install --set profile=demo

显示可用配置文件列表

您可以使用以下命令显示 istioctl 可以访问的 Istio 配置文件名称:

$ istioctl profile list
Istio configuration profiles:
    default
    demo
    empty
    minimal
    openshift
    preview
    remote

显示配置文件的配置

您可以查看配置文件的配置设置。例如,要查看 demo 配置文件的设置,请运行以下命令:

$ istioctl profile dump demo
components:
  egressGateways:
  - enabled: true
    k8s:
      resources:
        requests:
          cpu: 10m
          memory: 40Mi
    name: istio-egressgateway

...

要查看整个配置的子集,可以使用 --config-path 标志,它只选择给定路径下的配置部分:

$ istioctl profile dump --config-path components.pilot demo
enabled: true
k8s:
  env:
  - name: PILOT_TRACE_SAMPLING
    value: "100"
  resources:
    requests:
      cpu: 10m
      memory: 100Mi

显示配置文件差异

profile diff 子命令可用于显示配置文件之间的差异,这对于在将更改应用于集群之前检查自定义效果非常有用。

您可以使用以下命令显示默认配置文件和演示配置文件之间的差异:

$ istioctl profile diff default demo
 gateways:
   egressGateways:
-  - enabled: false
+  - enabled: true
...
     k8s:
        requests:
-          cpu: 100m
-          memory: 128Mi
+          cpu: 10m
+          memory: 40Mi
       strategy:
...

在安装之前生成清单

您可以使用 manifest generate 子命令在安装 Istio 之前生成清单。例如,使用以下命令为 default 配置文件生成清单:

$ istioctl manifest generate > $HOME/generated-manifest.yaml

生成的清单可用于检查究竟安装了什么,以及跟踪清单随时间的变化。虽然 IstioOperator CR 代表完整的用户配置,足以跟踪它,但 manifest generate 的输出还捕获了底层图表中的可能变化,因此可用于跟踪实际安装的资源。

manifest generate 的输出还可用于使用 kubectl apply 或等效工具安装 Istio。但是,这些替代安装方法可能不会以与 istioctl install 相同的依赖顺序应用资源,并且未在 Istio 版本中进行测试。

显示清单差异

您可以使用以下命令显示默认配置文件和自定义安装之间生成的清单的 YAML 样式差异:

$ 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

验证安装成功

您可以使用 verify-install 命令检查 Istio 安装是否成功,该命令将集群上的安装与您指定的清单进行比较。

如果您在部署之前没有生成清单,请运行以下命令立即生成它:

$ istioctl manifest generate <your original installation options> > $HOME/generated-manifest.yaml

然后运行以下 verify-install 命令以查看安装是否成功:

$ istioctl verify-install -f $HOME/generated-manifest.yaml

有关自定义安装配置的更多信息,请参阅 自定义安装配置

卸载 Istio

要从集群中完全卸载 Istio,请运行以下命令:

$ istioctl uninstall --purge

或者,要仅删除特定 Istio 控制平面,请运行以下命令:

$ istioctl uninstall <your original installation options>

$ istioctl manifest generate <your original installation options> | kubectl delete --ignore-not-found=true -f -

默认情况下不会删除控制平面命名空间(例如,istio-system)。如果不再需要,请使用以下命令将其删除:

$ kubectl delete namespace istio-system
此信息是否有用?
您对改进有什么建议吗?

感谢您的反馈!