istio中文手册
  • 前言
    • 序言
  • 概念原理
    • 什么是服务网格?
    • 后 Kubernetes 时代的应用网络
    • 服务网格架构
      • 服务网格的实现模式
      • Istio 架构解析
    • Sidecar 模式
      • Istio 中的 Sidecar 注入与流量劫持详解
      • Sidecar 的自动注入过程详解
    • 流量管理
      • 流量管理基础概念
      • Istio 中的 Sidecar 的流量路由详解
    • 安全
      • mTLS
  • 数据平面
    • Envoy 中的基本术语
    • Istio sidecar proxy 配置
    • Envoy proxy 配置详解
    • Envoy API
    • xDS 协议解析
      • LDS(监听器发现服务)
      • RDS(路由发现服务)
      • CDS(集群发现服务)
      • EDS(端点发现服务)
      • SDS(秘钥发现服务)
      • ADS(聚合发现服务)
      • HDS(健康发现服务)
    • Envoy 高级 API
      • MS(Metric 服务)
      • RLS(速率限制服务)
  • 安装指南
    • 快速开始
    • Istio 安装
    • 可观察性工具 kiali
  • 配置
    • 流量管理
      • VirtualService
      • DestinationRule
      • Gateway
      • EnvoyFilter
      • Sidecar
      • ServiceEntry
      • WorkloadEntry
      • WorkloadGroup
    • 安全
      • AuthorizationPolicy
      • RequestAuthentication
      • PeerAuthentication
      • JWTRule
  • Istio 生态
    • Istio 生态概述
    • Slime——基于 Istio 的智能服务网格管理器
  • 开发指南
    • Istio 开发环境配置
  • 实践案例
    • Bookinfo 示例
由 GitBook 提供支持
在本页
  • Istio 的 helm chart
  • 使用 Helm 安装 Istio
  • 安装 Helm
  • 安装 Istio
  • Istio 中的 CRD
  • 参考

这有帮助吗?

  1. 安装指南

Istio 安装

上一页快速开始下一页可观察性工具 kiali

最后更新于3年前

这有帮助吗?

Istio 官方推荐使用 Helm 来安装,Istio 中的很多组件都可以选择安装或开启,因此 Helm chart 也是组合式的,后解压可以看到 install/kubernetes/helm/istio 目录下的 Helm chart 配置文件,参考 。

Istio 的 helm chart

下图是 Istio Helm Chart 的配置大全,通过给不同的组件使用不同的着色给大家一个直观的体验。

Istio 的安装文件中包括如下几个子 chart。

  • ingress

  • ingressgateway

  • egressgateway

  • sidecarInjectorWebhook

  • galley

  • mixer

  • pilot

  • security(citadel)

  • grafana

  • prometheus

  • servicegraph

  • tracing(jaeger)

  • kiali

所有的这些子 Chart 都可以通过 YAML 配置中的 enabled 标志选择性的开启,具体配置方法请参考安装包解压后的 install/kubernetes/helm/istio/README.md 文件。

使用 Helm 安装 Istio

因为使用单个 YAML 文件安装 Istio 的可读性很低(动辄上万行的 YAML 文件),从 Istio 1.0 以后版本起,官方推荐使用 Helm 来安装 Istio,不过在 Istio 的安装包中仍提供直接可用的 YAML 文件,用户也可以使用 helm template 生成独立的 YAML 文件。

下面我们说明如何使用在安装有 tiller 的 Kubernetes 集群中使用 Helm 安装 Istio。

安装 Helm

1. 下载安装包

2. 安装 helm

下载后解压出 helm 可执行文件,将其移动到您的 $PATH 路径下。

3. 设置 RBAC

因为 tiller 将于 Kubernetes API Server 通信,需要相应的角色和权限,需要设置 RBAC。

kubectl apply -f install/kubernetes/helm/helm-service-account.yaml

4. 安装 tiller

执行 helm init 安装 tiller,默认将从 gcr.io 下载 tiller 的镜像,若需要指定特定的镜像仓库可以使用如下面的命令:

helm init -i jimmysong/kubernetes-helm-tiller:v2.11.0 --service-account tiller

5. 检查安装是否完成

helm version
Client: &version.Version{SemVer:"v2.11.0", GitCommit:"2e55dbe1fdb5fdb96b75ff144a339489417b146b", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.11.0", GitCommit:"2e55dbe1fdb5fdb96b75ff144a339489417b146b", GitTreeState:"clean"}

若没有看到报错信息则表示安装完成。

安装 Istio

然后使用 helm 命令安装 Istio。

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

Istio 将被安装到 istio-system 的 namespace 下。

Istio 中的 CRD

安装完 Istio 后我们再查看下 Istio 创建的与网络相关的 Kubernetes CRD(自定义资源类型),请参考使用自定义资源扩展 API。Istio 创建的所有的 Kubernetes CRD 可以这样查看。

kubectl get customresourcedefinition|grep istio.io

你将会看到 50 个 CRD,其实要想了解 Istio 控制平面是怎样工作的,只需要了解这 50 个 CRD 是怎么工作的即可,很遗憾目前 Istio 还没有推出 API 文档。根据 API 的域名看到所有的 CRD 分为四类。

  • authentication:策略管控

  • config:配置分发与遥测

  • networking:流量管理

  • rbac:基于角色的访问控制

详细列表如下:

# authentication,这两个 CRD 不是直接在 YAML 里定义的
meshpolicies.authentication.istio.io
policies.authentication.istio.io

# config
adapters.config.istio.io
apikeys.config.istio.io
attributemanifests.config.istio.io
authorizations.config.istio.io
bypasses.config.istio.io
checknothings.config.istio.io
circonuses.config.istio.io
deniers.config.istio.io
edges.config.istio.io
fluentds.config.istio.io
handlers.config.istio.io
httpapispecbindings.config.istio.io
httpapispecs.config.istio.io
instances.config.istio.io
kubernetesenvs.config.istio.io
kuberneteses.config.istio.io
listcheckers.config.istio.io
listentries.config.istio.io
logentries.config.istio.io
memquotas.config.istio.io
metrics.config.istio.io
noops.config.istio.io
opas.config.istio.io
prometheuses.config.istio.io
quotas.config.istio.io
quotaspecbindings.config.istio.io
quotaspecs.config.istio.io
rbacs.config.istio.io
redisquotas.config.istio.io
reportnothings.config.istio.io
rules.config.istio.io
servicecontrolreports.config.istio.io
servicecontrols.config.istio.io
signalfxs.config.istio.io
solarwindses.config.istio.io
stackdrivers.config.istio.io
statsds.config.istio.io
stdios.config.istio.io
templates.config.istio.io
tracespans.config.istio.io

# networking
destinationrules.networking.istio.io
envoyfilters.networking.istio.io
gateways.networking.istio.io
serviceentries.networking.istio.io
virtualservices.networking.istio.io

# rbac
rbacconfigs.rbac.istio.io
servicerolebindings.rbac.istio.io
serviceroles.rbac.istio.io

从中可以看出 config 类型的 CRD 是最多的,这是因为在 Mixer 中有众多的 adapter 导致,几十个 adapter 分别创建自己的适配器来对接基础设施后端。

CRD 的详细分类和用途如下图所示。

参考

上图可以通过 下载电子表格。

在本文发表时,Helm 最新的稳定版本为 v2.11.0,本文假设您已经有一个 Kubernetes 集群,Helm 的详细安装步骤请参考 ,下面简述了 Helm 的安装步骤。

您可以从 页面下载对应操作系统的安装包,以 Mac 系统为例,选择下载 MacOS amd64 的安装包。

在 页面下载与您的操作系统对应的安装包,解压之后将 bin/istioctl 移动到您的 $PATH 目录下。

上图可以通过 下载电子表格。

Google doc
Helm 官方文档
Helm release
Istio release
Google doc
使用 Helm 进行安装 - istio.io
Helm 官方文档 - helm.sh
下载 Istio 安装包
使用 Helm 进行安装
Istio Helm Chart Cheatsheet(原图来自沈旭光)
Istio CRD Cheatsheet(原图来自沈旭光)