使用 Ansible 安装

使用 Ansible 安装和配置 Istio 的说明。

先决条件

  1. 下载对应的 Istio 版本

  2. 执行所有必要的平台特定配置

  3. 安装 Ansible 2.4.

如果使用 OpenShift,必须满足以下先决条件。

  • 最低版本:3.9.0
  • oc 配置为可以访问集群
  • 用户已登录到集群
  • 用户在 OpenShift 上具有 cluster-admin 角色

使用 Ansible 进行部署

重要Ansible playbook 的所有执行都必须在 Istio 的 install/kubernetes/ansible 路径中进行。

playbook 将在您的机器上下载并本地安装 Istio。需要在 OpenShift 上部署默认配置的 Istio,可以使用以下命令:

$ ansible-playbook main.yml

使用 Ansible 进行自定义安装

Ansible playbook 附带了合理的默认值。

目前公开的选项有:

参数描述默认值
cluster_flavour定义目标集群类型k8socpocp
cmd_path自定义 kubectloc 路径kubectloc 二进制文件的有效路径$PATH/oc
istio.auth使用双向 TLS 进行安装truefalsefalse
istio.addon要安装的 Istio 插件包含任何 kiali 的数组Istio 已经默认安装了 grafanaprometheusjaeger
istio.delete_resources删除 Istio namespace 下安装的资源truefalsefalse
istio.samples包含应该安装的示例的名称的数组bookinfo, helloworld, httpbin, sleepnone

默认安装

运维人员使用所有默认选项在 OpenShift 上安装 Istio:

$ ansible-playbook main.yml

可选覆盖

在某些情况下,默认值可能需要被覆盖。

以下命令描述了运维人员如何覆盖 Ansible playbook 的默认值:

运维人员在 Kubernetes 上安装 Istio:

$ ansible-playbook main.yml -e '{"cluster_flavour": "k8s"}'

运维人员在 Kubernetes 上安装 Istio 并显式指定 kubectl 的路径:

$ ansible-playbook main.yml -e '{"cluster_flavour": "k8s", "cmd_path": "~/kubectl"}'

运维人员在 Kubernetes 上安装 Istio,使用非默认配置:

$ ansible-playbook main.yml -e '{"istio": {"auth": true, "delete_resources": true}}'

运维人员在 Kubernetes 上安装 Istio,使用自定义插件:

$ ansible-playbook main.yml -e '{"istio": {"delete_resources": true, "addon": ["kiali"]}}'

运维人员在 Kubernetes 上安装 Istio 并额外部署了一些示例:

$ ansible-playbook main.yml -e '{"istio": {"samples": ["helloworld", "bookinfo"]}}'

卸载

如果需要不同版本的 Istio,请在执行 playbook 之前删除 istio-system namespace。 这种情况下,不需要设置 istio.delete_resources 参数。

istio.delete_resources 设置为 true 会从集群中删除 Istio 控制平面。

为了避免任何不一致,该标志只能在集群上重新安装相同版本的 Istio 时使用。

See also

在 kubernetes 集群中快速安装 Istio service mesh 的说明。

演示如何独立升级 Istio 控制平面和数据平面。

关于 Istio 发布包下载过程的说明。

对 Minikube 集群进行配置以便安装运行 Istio。

基于 GKE 的 Istio 多集群安装。

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