Galley 是 Istio 的配置管理组件,根据官方文档的描述:
Galley 代表其他的 Istio 控制平面组件,用来验证用户编写的 Istio API 配置。随着时间的推移,Galley 将接管 Istio 获取配置、 处理和分配组件的顶级责任。它将负责将其他的 Istio 组件与从底层平台(例如 Kubernetes)获取用户配置的细节中隔离开来。
galley:
enabled: true
replicaCount: 1
image: galley这里看到,Galley 的相关变量只有启用、副本数量以及镜像三个。
enabled:负责在 requirements.yaml 中标识是否启用 Galley 组件。replicaCount:负责在 deployment.yaml 中定义副本数量。image:负责在 deployment.yaml 中定义镜像。这里可以看到 Galley 使用 Service Account istio-galley-service-account 的身份运行。全局变量中如果定义了 imagePullSecrets,则会在 serviceaccount.yaml 中进行引用。
clusterrole.yaml 模板中定义了 Galley 所需使用的系统资源:
admissionregistration.k8s.io 组中的 validatingwebhookconfigurations 类型的完全控制。config.istio.io: Mixer CRD 的所有资源的读取权限。istio-galley Deployment 和 Endpoint 的读取权限。clusterrolebinding.yaml 将上面的两个对象连接起来完成授权。
这里看到为 Galley 开放了两个端口:443 是一个 https 端口,用来提供验证服务;而 9093 是一个用来进行 Galley 自身服务监控的 http 端口。
该文件只引用了 Release 内置变量。
这里以 Galley 为主进程创建了一个 Deployment 对象。
在 annotation 一节中将 sidecar.istio.io/inject 设置为 false 来防止自动注入 Sidecar。
_helpers.tpl 中定义的模板给 App 标签赋值。replicaCount 确定副本数量。global.priorityClassName,则设置到 Pod 上,提高组件在集群内的优先级。resource,则使用独立的资源限制,否则使用缺省的 global.defaultResources。加载了一个名为 istio.istio-galley-service-account 的 Secret,注意这个资源的类型为 istio.io/key-and-cert,说明是由 Citadel 生成的,其中包含了几个证书,供 --caCertFile、--tlsCertFile 和 --tlsKeyFile 用来提供 https 服务。
另外加载了一个 ConfigMap,其中的配置文件供 --webhook-config-file 参数使用,作为 Webhook 的参数。这个 ConfigMap 是由模板 configmap.yaml 和 validatingwehookconfiguration.yaml.tpl 生成的,后面将会进行讲解。
configmap.yaml 模板中并没有实质内容,主要内容存在于 validatingwehookconfiguration.yaml.tpl 之中。
这个模板中定义了一个 ValidatingWebhookConfiguration 类型的资源。这种资源用于在不改变资源的情况下,对其进行校验并发出接受或拒绝的决策。
Chart 和 Release:用于生成标签和命名空间。global.configValidation:如果这一变量为 True,才会生成后续内容。webhooks 一节定义了两个元素,分别用于 Pilot 和 Mixer 的校验。以 Mixer 部分为例。
clientConfig 一节,定义了这个 Webhook 会调用的校验服务,标准情况下会使用 Istio 所在的命名空间的 istio-galley,URL 相对路径为 /admitmixer,其中的 rules 内容,定义了针对 config.istio.io/v1alpha2 的一系列对象的创建和更新操作进行校验,如果校验失败,则拒绝创建(failurePolicy: Fail)。
Galley 目前的文档非常少,主要在参考和运维指南部分有一点介绍,但 Istio 的配置难度是很著名的,因此推测随着项目的推进和普及,Galley 会持续的增强,并提供更多这方面的文档。
Galley 是 Istio 的配置管理组件,根据官方文档的描述:
Galley 代表其他的 Istio 控制平面组件,用来验证用户编写的 Istio API 配置。随着时间的推移,Galley 将接管 Istio 获取配置、 处理和分配组件的顶级责任。它将负责将其他的 Istio 组件与从底层平台(例如 Kubernetes)获取用户配置的细节中隔离开来。
galley:
enabled: true
replicaCount: 1
image: galley这里看到,Galley 的相关变量只有启用、副本数量以及镜像三个。
enabled:负责在 requirements.yaml 中标识是否启用 Galley 组件。replicaCount:负责在 deployment.yaml 中定义副本数量。image:负责在 deployment.yaml 中定义镜像。这里可以看到 Galley 使用 Service Account istio-galley-service-account 的身份运行。全局变量中如果定义了 imagePullSecrets,则会在 serviceaccount.yaml 中进行引用。
clusterrole.yaml 模板中定义了 Galley 所需使用的系统资源:
admissionregistration.k8s.io 组中的 validatingwebhookconfigurations 类型的完全控制。config.istio.io: Mixer CRD 的所有资源的读取权限。istio-galley Deployment 和 Endpoint 的读取权限。clusterrolebinding.yaml 将上面的两个对象连接起来完成授权。
这里看到为 Galley 开放了两个端口:443 是一个 https 端口,用来提供验证服务;而 9093 是一个用来进行 Galley 自身服务监控的 http 端口。
该文件只引用了 Release 内置变量。
这里以 Galley 为主进程创建了一个 Deployment 对象。
在 annotation 一节中将 sidecar.istio.io/inject 设置为 false 来防止自动注入 Sidecar。
_helpers.tpl 中定义的模板给 App 标签赋值。replicaCount 确定副本数量。global.priorityClassName,则设置到 Pod 上,提高组件在集群内的优先级。resource,则使用独立的资源限制,否则使用缺省的 global.defaultResources。加载了一个名为 istio.istio-galley-service-account 的 Secret,注意这个资源的类型为 istio.io/key-and-cert,说明是由 Citadel 生成的,其中包含了几个证书,供 --caCertFile、--tlsCertFile 和 --tlsKeyFile 用来提供 https 服务。
另外加载了一个 ConfigMap,其中的配置文件供 --webhook-config-file 参数使用,作为 Webhook 的参数。这个 ConfigMap 是由模板 configmap.yaml 和 validatingwehookconfiguration.yaml.tpl 生成的,后面将会进行讲解。
configmap.yaml 模板中并没有实质内容,主要内容存在于 validatingwehookconfiguration.yaml.tpl 之中。
这个模板中定义了一个 ValidatingWebhookConfiguration 类型的资源。这种资源用于在不改变资源的情况下,对其进行校验并发出接受或拒绝的决策。
Chart 和 Release:用于生成标签和命名空间。global.configValidation:如果这一变量为 True,才会生成后续内容。webhooks 一节定义了两个元素,分别用于 Pilot 和 Mixer 的校验。以 Mixer 部分为例。
clientConfig 一节,定义了这个 Webhook 会调用的校验服务,标准情况下会使用 Istio 所在的命名空间的 istio-galley,URL 相对路径为 /admitmixer,其中的 rules 内容,定义了针对 config.istio.io/v1alpha2 的一系列对象的创建和更新操作进行校验,如果校验失败,则拒绝创建(failurePolicy: Fail)。
Galley 目前的文档非常少,主要在参考和运维指南部分有一点介绍,但 Istio 的配置难度是很著名的,因此推测随着项目的推进和普及,Galley 会持续的增强,并提供更多这方面的文档。