- Istio 对 Pod 和服务的要求
- 相关内容
- 相关内容
Istio 对 Pod 和服务的要求
要成为服务网格的一部分,Kubernetes 集群中的 Pod 和服务必须满足以下几个要求:
需要给端口正确命名:服务端口必须进行命名。端口名称只允许是
<协议>[-<后缀>-]
模式,其中<协议>
部分可选择范围包括grpc
、http
、http2
、https
、mongo
、redis
、tcp
、tls
以及udp
,Istio 可以通过对这些协议的支持来提供路由能力。例如name: http2-foo
和name: http
都是有效的端口名,但name: http2foo
就是无效的。如果没有给端口进行命名,或者命名没有使用指定前缀,那么这一端口的流量就会被视为普通 TCP 流量(除非显式的用Protocol: UDP
声明该端口是 UDP 端口)。Pod 端口: Pod 必须包含每个容器将监听的明确端口列表。在每个端口的容器规范中使用
containerPort
。任何未列出的端口都将绕过 Istio Proxy。关联服务:Pod 不论是否公开端口,都必须关联到至少一个 Kubernetes 服务上,如果一个 Pod 属于多个服务,这些服务不能在同一端口上使用不同协议,例如 HTTP 和 TCP。
Deployment 应带有
app
以及version
标签:在使用 KubernetesDeployment
进行 Pod 部署的时候,建议显式的为Deployment
加上app
以及version
标签。每个 Deployment 都应该有一个有意义的app
标签和一个用于标识Deployment
版本的version
标签。app
标签在分布式追踪的过程中会被用来加入上下文信息。Istio 还会用app
和version
标签来给遥测指标数据加入上下文信息。Application UID:不要使用 ID(UID)值为 1337 的用户来运行应用。
NET_ADMIN
功能: 如果您的群集中实施了 Pod 安全策略,除非您使用 Istio CNI 插件,您的 pod 必须具有NET_ADMIN
功能。请参阅必需的 Pod 功能。
相关内容
注入 Istio sidecar
介绍两种将 Istio sidecar 注入应用 Pod 的方法:使用 Sidecar 注入 Webhook 自动完成,或使用 istioctl 客户端工具手工完成。
Istio Sidecar 注入过程解密
Istio 将数据面组件注入到现存部署之中的过程。
安装 Istio CNI
Istio CNI 插件的安装和使用,该插件让运维人员可以用较低的权限来完成网格服务的部署工作。
Gateway 连接
使用 Istio Gateway 跨越多个 Kubernetes 集群安装 Istio 网格以访问远程 pod。
Google Kubernetes Engine
对 Google Kubernetes Engine(GKE)集群进行配置以便安装运行 Istio。
Google Kubernetes Engine
基于 GKE 的 Istio 多集群安装。