helm安装istio_安装 - 使用 Helm 自定义安装 - 《Istio 1.6 官方文档中文版》 - 书栈网 · BookStack...

使用 Helm 自定义安装

Helm 的安装方法已被弃用。 请改用使用 istioctl 安装。

请按照本指南安装和配置 Istio 网格,以进行深入评估或用于生产。

这种安装方式使用 Helm charts 自定义 Istio 控制平面和 Istio 数据平面的 sidecar。 你只需使用 helm template 生成配置并使用 kubectl apply 命令安装它, 或者你可以选择使用 helm install 让 Tiller 来完全管理安装。

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

先决条件

添加 Helm chart 仓库

本指南的以下命令使用了包含 Istio 发行版镜像的 Helm charts。 如果要使用 Istio 发行版 Helm chart ,建议使用下面的命令添加 Istio 发行版仓库:

$ helm repo add istio.io https://storage.googleapis.com/istio-release/releases/1.6.0/charts/

安装步骤

将目录切换到 Istio 发行版的根目录,然后在以下两个互斥选项选择一种安装:

如果您不使用 Tiller 部署 Istio,请查看方案 1。

如果您使用 Helm 的 Tiller pod 来管理 Istio 发行版, 请查看方案 2。

默认情况下,Istio 使用 LoadBalancer 服务类型。而有些平台是不支持 LoadBalancer 服务的。对于不支持 LoadBalancer 服务类型的平台, 执行下面的步骤时,可以在 Helm 命令中加入 --set gateways.istio-ingressgateway.type=NodePort 选项,使用 NodePort 来替代 LoadBalancer 服务类型。

方案 1: 使用 helm template 命令安装

在您的集群没有按照 Tiller 而且您也不想安装它的情况下,选择此方案安装。

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

$ kubectl createnamespaceistio-system

使用 kubectl apply 安装所有 Istio 的 自定义资源 (CRDs) :

$ helmtemplateinstall/kubernetes/helm/istio-init--name istio-init--namespaceistio-system|kubectl apply-f-

等待所有的 Istio CRD 创建完成:

$ kubectl-n istio-system wait--for=condition=complete job--all

选择一个配置文件 接着部署与您选择的配置文件相对应的 Istio 核心组件。 我们建议在生产环境使用默认的配置文件:

您可以添加一个或多个 --set = 来进一步自定义 helm 命令的安装选项 。

$ helmtemplateinstall/kubernetes/helm/istio--name istio--namespaceistio-system|kubectl apply-f-$ helmtemplateinstall/kubernetes/helm/istio--name istio--namespaceistio-system \

--values install/kubernetes/helm/istio/values-istio-demo.yaml|kubectl apply-f-$ helmtemplateinstall/kubernetes/helm/istio--name istio--namespaceistio-system \

--values install/kubernetes/helm/istio/values-istio-minimal.yaml|kubectl apply-f-$ helmtemplateinstall/kubernetes/helm/istio--name istio--namespaceistio-system \

--values install/kubernetes/helm/istio/values-istio-sds-auth.yaml|kubectl apply-f-$ helmtemplateinstall/kubernetes/helm/istio-cni--name=istio-cni--namespace=kube-system|kubectl apply-f-

将 --set istio_cni.enabled=true 设置追加到 helm 命令上,来启用 Istio CNI 插件。 以 Istio 默认配置文件为例:

$ helmtemplateinstall/kubernetes/helm/istio--name istio--namespaceistio-system \

--setistio_cni.enabled=true|kubectl apply-f-

方案 2: 在 Helm 和 Tiller 的环境中使用 helm install 命令安装

这个方案使用 Helm 和 Tiller 来对 Istio 的生命周期进行管理。

本文档中介绍如何使用带 Tiller 的 Helm 不使用安全默认值。 有关基于 Tiller 安全安装的进一步步骤请参考安全安装 Helm。

请确保您的集群的 Tiller 设置了 cluster-admin 角色的 Service Account。 如果还没有定义,请执行下面命令创建:

$ kubectl apply-f@manifests/UPDATING-CHARTS.md@

使用 Service Account 在集群上安装 Tiller:

$ helm init--service-account tiller

安装 istio-init chart,来启动 Istio CRD 的安装过程:

$ helm install install/kubernetes/helm/istio-init--name istio-init--namespaceistio-system

等待所有的 Istio CRD 创建完成:

$ kubectl-n istio-system wait--for=condition=complete job--all

选择一个配置文件 接着部署与您选择的配置文件相对应的 istio 的核心组件。 我们建议在生成环境部署中使用默认配置文件:

您可以添加一个或多个 --set = 来进一步定义 Helm 命令的 安装选项。

$ helm install install/kubernetes/helm/istio--name istio--namespaceistio-system$ helm install install/kubernetes/helm/istio--name istio--namespaceistio-system \

--values install/kubernetes/helm/istio/values-istio-demo.yaml$ helm install install/kubernetes/helm/istio--name istio--namespaceistio-system \

--values install/kubernetes/helm/istio/values-istio-minimal.yaml$ helm install install/kubernetes/helm/istio--name istio--namespaceistio-system \

--values install/kubernetes/helm/istio/values-istio-sds-auth.yaml$ helm install install/kubernetes/helm/istio-cni--name istio-cni--namespacekube-system

将 --set istio_cni.enabled=true 设置追加到 helm 命令上,来启用 Istio CNI 插件。 以 Istio 默认配置文件为例:

$ helm install install/kubernetes/helm/istio--name istio--namespaceistio-system--setistio_cni.enabled=true

验证安装查询配置文件的组件表,验证是否已部署了与您选择的配置文件相对应的 Kubernetes 服务

$ kubectlgetsvc-n istio-system

确保相应的 Kubernetes Pod 已部署并且 STATUS 是 Running:

$ kubectlgetpods-n istio-system

卸载如果你使用 helm template 命令安装的 Istio,使用如下命令卸载:

$ helmtemplateinstall/kubernetes/helm/istio--name istio--namespaceistio-system|kubectldelete-f-

$ kubectldeletenamespaceistio-system$ helmtemplateinstall/kubernetes/helm/istio--name istio--namespaceistio-system \

--values install/kubernetes/helm/istio/values-istio-demo.yaml|kubectldelete-f-

$ kubectldeletenamespaceistio-system$ helmtemplateinstall/kubernetes/helm/istio--name istio--namespaceistio-system \

--values install/kubernetes/helm/istio/values-istio-minimal.yaml|kubectldelete-f-

$ kubectldeletenamespaceistio-system$ helmtemplateinstall/kubernetes/helm/istio--name istio--namespaceistio-system \

--values install/kubernetes/helm/istio/values-istio-sds-auth.yaml|kubectldelete-f-

$ kubectldeletenamespaceistio-system$ helmtemplateinstall/kubernetes/helm/istio--name istio--namespaceistio-system \

--setistio_cni.enabled=true|kubectldelete-f-$ helmtemplateinstall/kubernetes/helm/istio-cni--name=istio-cni--namespace=kube-system|kubectldelete-f-如果您使用的 Helm 和 Tiller 安装的 Istio, 使用如下命令卸载:

$ helmdelete--purge istio

$ helmdelete--purge istio-init

$ helmdelete--purge istio-cni

$ kubectldeletenamespaceistio-system

删除 CRD 和 Istio 配置

Istio 的设计中,其自定义资源以 CRD 的形式存在于 Kubernetes 环境之中。CRD 中包含了运维过程中产生的运行时配置。正因如此,我们建议运维人员应该显式的对其进行删除,从而避免意外操作。

CRD 的删除,意味着删掉所有的用户配置。

istio-init Chart 包含了 istio-init/files 目录中的所有原始 CRD。下载该 Chart 之后,可以简单的使用 kubectl 删除 CRD。要永久删除 Istio 的 CRD 以及所有 Istio 配置, 请运行如下命令

$ kubectldelete-f install/kubernetes/helm/istio-init/files

相关内容

关于 Istio 1.1 和 Istio 1.2 之间的 Helm chart 安装选项的变更。

本文详细介绍了 Istio 1.0 系列到 Istio 1.1 系列之间的安装参数变化详情。

本文详细介绍了 Istio 1.2 系列到 Istio 1.3 系列之间的安装参数变化详情。

安装并使用 Istio CNI 插件,可以让运维人员用更低的权限来部署服务。

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

在 Istio 中配置和管理 DNS 证书。

你可能感兴趣的:(helm安装istio)