在GKE中安装Istio 我应该在GKE上使用Istio吗?

问题描述

找到了在GKE中安装istio的2种方法,不确定哪种是推荐的方法,并且有什么区别。 @H_404_1@1. Installing via lots of commands shown in the Istio document @H_404_1@2. I have an existing GKE cluster,their is an option to edit the cluster and add-on as Istio enabled

虽然尝试了两种方式,但在GKE群集工作负载UI控制台中看不到任何与istio相关的服务,例如城堡,厨房,遥测,但是如果我以@H_404_1@kubectl get pods -n istio-system运行,则可以在终端中看到它的运行情况。 它们在安装方面有什么不同,这是推荐的安装方式吗?

解决方法

回答问题:

找到了两种在GKE中安装istio的方法,不确定哪种是推荐的方法,并且有什么区别。

两种方法都是正确的(在GKE插件上启用Istio和/或使用istioctl / operator)。主要区别在于它们之间存在一些差异(使用的版本,其他配置选项,自动更新等)。

引用官方文档:

我应该在GKE上使用Istio吗?

在GKE上的Istio确实管理安装和升级时,它使用适合大多数需求的控制平面默认安装选项。但是,您应该注意以下限制:

  • 已安装的Istio版本与GKE版本绑定在一起,您将无法独立更新它们。
  • 在控制平面的配置上有strong limitations个。在生产环境中使用Istio on GKE附加组件之前,您应该查看这些限制。

如果您需要使用最新的Istio开源版本,或者想要更好地控制Istio控制平面配置(在某些生产用例中可能会发生),建议您使用open source version of Istio而不是比GKE插件上的Istio要好。

- Cloud.google.com: Istio: Istio on GKE: Overview: Should I use Istio on GKE

还值得一提的是:

请注意,Istio on GKE插件会自动在群集的节点池中为access scopesCloud MonitoringLogging设置Trace

- Cloud.google.com: Istio: Istio on GKE: Overview: Support

这意味着从Istio.io开始的安装可能需要其他配置/步骤才能将日志发送到Stackdriver。


还值得一提的是,对于GKE版本为1.17.9-gke.6300或更高版本且启用了GKE插件的Istio的群集,有一些重大更改。

从1.6版开始,Google Kubernetes Engine插件上的Istio使用Istio Operator进行安装和配置。 Istio运算符遵循Kubernetes Operator pattern。操作员可通过为Istio安装定义Kubernetes custom resource definition(CRD)来配置Istio。然后,操作员使用controller 对安装进行更改以匹配自定义资源。

将群集升级到1.17.9-gke.6300或更高版本时,将在现有的1.4.x Istio控制平面旁边安装Istio 1.6操作员和控制平面。升级需要用户采取措施,并遵循双控制平面升级过程(在Istio文档中称为“金丝雀升级”)。

- Cloud.google.com: Istio: Istion on GKE: Upgrade with Operator


以下内容:

虽然尝试了两种方式,但在GKE群集工作负载UI控制台中看不到任何与istio相关的服务,例如城堡,厨房,遥测,但是如果我以kubectl get pods -n istio-system身份运行,则可以在终端中看到它的运行情况。

您有没有在kubectl之间报告istio-system中的资源并在Cloud Console-> Kubernetes Engine-> Workloads中检查资源的时间?

您还可以检查下图中的框是否设置正确。

Boxes