mirror of https://github.com/istio/istio.io.git
1.8 KiB
1.8 KiB
| title | description | weight | keywords | |||
|---|---|---|---|---|---|---|
| Istio 对 Pod 和服务的要求 | 这里讲述了 Istio 对 Kubernetes 中 Pod 和服务的要求。 | 80 |
|
要成为服务网格的一部分,Kubernetes 集群中的 Pod 和服务必须满足以下几个要求:
- 需要给端口正确命名:服务端口必须进行命名。端口名称只允许是
<协议>[-<后缀>-]模式,其中<协议>部分可选择范围包括grpc、http、http2、https、mongo、redis、tcp、tls以及udp,Istio 可以通过对这些协议的支持来提供路由能力。例如name: http2-foo和name: http都是有效的端口名,但name: http2foo就是无效的。如果没有给端口进行命名,或者命名没有使用指定前缀,那么这一端口的流量就会被视为普通 TCP 流量(除非显式的用Protocol: UDP声明该端口是 UDP 端口)。 - 关联服务: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 的用户来运行应用。