Icon 使用 Helm 进行安装

使用 Helm 安装和配置 Istio 的快速入门说明。 这是将 Istio 安装到您的生产环境的推荐安装方式,因为它为 Istio 控制平面和数据平面 sidecar 提供了丰富的配置。

先决条件

  1. 下载 Istio 的发布版本
  2. 在 Kubernetes 中安装 Istio

安装步骤

要安装 Istio 的核心组件,您可以选择以下四个互斥选项之一。

但是,我们建议您在生产环境使用 Helm Chart 安装 Istio。通过此安装,您可以利用所有选项来根据需要配置和自定义 Istio。

选项1:通过 Helm 的 helm template 安装 Istio

  1. 将 Istio 的核心组件呈现为名为 istio.yaml 的 Kubernetes 清单文件:

    $ helm template install/kubernetes/helm/istio --name istio --namespace istio-system > $HOME/istio.yaml
  2. 通过清单文件安装组件

    $ kubectl create namespace istio-system
    $ kubectl create -f $HOME/istio.yaml

选项2:通过 Helm 和 Tiller 的 helm install 安装 Istio

此选项允许 Helm 和 Tiller 管理 Istio 的生命周期。

Warning 使用 Helm 升级 Istio 还没有进行全面的测试。

  1. 如果还没有为 Tiller 配置 service account,请配置一个:

    $ kubectl create -f install/kubernetes/helm/helm-service-account.yaml
  2. 使用 service account 在您的集群中安装 Tiller:

    $ helm init --service-account tiller
  3. 安装 Istio:

    $ helm install install/kubernetes/helm/istio --name istio --namespace istio-system

自定义示例:流量管理最小集

Istio 配备了一组丰富而强大的功能,但你可能只需要这些功能的一部分。例如,用户可能只对安装 Istio 的流量管理所需的最小集合感兴趣。

这个示例展示了如何安装使用流量管理功能所需的最小组件集和。

执行以下命令来安装 Pilot 和 Citadel:

$ helm install install/kubernetes/helm/istio --name istio --namespace istio-system \
  --set ingress.enabled=false \
  --set gateways.istio-ingressgateway.enabled=false \
  --set gateways.istio-egressgateway.enabled=false \
  --set galley.enabled=false \
  --set sidecarInjectorWebhook.enabled=false \
  --set mixer.enabled=false \
  --set prometheus.enabled=false \
  --set global.proxy.envoyStatsd.enabled=false

请确保 istio-pilot-*istio-citadel-* 的 Kubernetes pod 已经部署,并且他们的容器已经启动并运行:

$ kubectl get pods -n istio-system
NAME                                     READY     STATUS    RESTARTS   AGE
istio-citadel-b48446f79-wd4tk            1/1       Running   0          1m
istio-pilot-58c65f74bc-2f5xn             2/2       Running   0          1m

在这个最小集合之下,您安装您自己的应用并为实例配置请求路由。 您需要手动注入 sidecar

安装选项 中有选项的完整列表,可以让您根据自己的需要对 Istio 安装进行裁剪。

卸载

  • 对于选项1,使用 kubectl 进行卸载:

    $ kubectl delete -f $HOME/istio.yaml
  • 对于选项2,使用 Helm 进行卸载:

    $ helm delete --purge istio

    如果您的 Helm 版本低于 2.9.0,那么在重新部署新版 Istio chart 之前,您需要手动清理额外的 job 资源:

    $ kubectl -n istio-system delete job --all

See also

描述了使用 Helm chart 安装 Istio 时可以使用的选项。

基于 GKE 的 Istio 多集群安装。

对 Google Kubernetes Engine(GKE)集群进行配置以便安装运行 Istio。

多 IBM Cloud Private 集群安装 Istio 示例。

安装支持多集群的 Istio。

这里讲述了 Istio 对 Kubernetes 中 Pod 和服务的要求。