istio 之 profile
在介绍 istio profile 之前,我们先介绍一下电信的套餐:
我们去电信开通手机业务时,一般都会选择手机套餐,不同的手机套餐会提供不同的增值服务。如上图所示,每个套餐就是一个 profile。istioctl 在安装 istio 时提供的 profile 概念与此类似,不同 profile 定义了不同的 istio 控制面行为。
istioctl profile
使用如下命令查看 istioctl profile:
istioctl profile list
执行结果如下图所示:1、demo
demo profile 仅供学习使用,并不合适作为生产环境。该 profile 会安装 ingressgateway、egressgateway、istio-pilot 等 istio 组件,同时会安装 grafana、istio-tracing、kiali、prometheus 等外部插件。使用如下命令查看 demo profile 的 istio 安装配置清单:
istioctl profile dump demo
从 dump 出的 profile 来看,最重要的是两块配置:插件和组件。插件是指外部第三方依赖,比如 grafana、kiali、prometheus、tracing;组件是指 istio 自身的组件,比如 citadel、egressgateway、ingressgateway、pilot、policy、sidecarInjector、telemetry 等。如下截图所示:
部分组件信息如下截图所示:
总结 demo profile 的组件、插件的开关情况信息如下截图所示,其中 X 代表开启组件或插件:
2、minimal
minimal profile 仅仅开启了 pilot 组件,其他的组件或者插件都是关闭的状态,可以通过如下命令查看明细:
istioctl profile dump minimal > minimal.yaml
如下图所示,minimal 插件都是关闭的:
仅有 pilot 组件是开启状态:
符合官方描述,如下图所示:
3、 default
default 是官方推荐的 istio 安装 profile。它在组件和插件的选择上做到了最合适,比如组件中它只开启了 ingressgateway、pilot,插件中只开启了 prometheus。如下图所示:
4、 empty
empty profile 不会开启任何组件或者插件。该 profile 的作用是提供一个干净的模板供有经验的 istio 使用者自定义配置。
5、 remote
remote profile 在实际使用中情况并不多见。该 profile 提供共享控制面去操作多集群服务网格。remote profile 官方提供的组件、插件描述如下图所示,但是根据本人实际观察,发现并不准确,特别标注在下图中:
dump 出的 ingress-gateway 组件应该处于开启状态:
dump 出来的 pilot 组件应该处于开启状态:
6、separate
官方宣称 separate profile 在未来的版本中将要被废弃掉了,所以就直接略过不提了吧。大家都生活得够艰难了,就不要给自己找麻烦了。
总结
本小节介绍了 istioctl 安装 istio 时提供的各个 profile,已经可以覆盖 90% 上的工作场景了。但是有些技术小骚仍然不会满足,那么后续哥将会继续提供自定义配置安装的方法,请继续跟随九析的脚步,我们一同轻松完爆 istio。