Istio环境中运行Pod的要求

Service association(服务关联)

  • Pod必须从属于某个Service,哪怕Pod不需要暴露任何端口

  • 同时从属于多个Service时,这些Service不能为该类Pod的同一个端口标识使用不同的协议

Application UIDs

  • UID 1337预留给了Sidecar Proxy使用,业务应用不能以这一UID运行

NET_ADMIN and NET_RAW capabilities

  • 强制启用了PSP(Pod Security Policy)的Kubernetes环境中,必须允许在网格内的Pod上使用NET_ADMIN和NET_RAW这两个Capability,以确保Sidecar Envoy依赖的初始化Pod能够正常运行;
  • 未启用PSP,或者启用了PSP但使用了专用的Istio CNI Plugin的场景,可以不用

Pods with app and version labels

  • 显式地为Pod使用app和version标签

  • app标签用于为分布式追踪生成context,而label则用于指示应用的版本化

Named service ports

  • Service Port应该明确指定使用的协议

  • 命名格式:

    • <protocol>[-<suffix>]

    • Kubernetes v1.18及之后的版本中,可以直接使用appProtocol字段进行标识

示例

---
apiVersion: v1
kind: Service
metadata:
  name: demoapp
spec:
  # appProtocol: http
  ports:
    - name: http-8080
      port: 8080
      protocol: TCP
      targetPort: 8080
  selector:
    app: demoapp
  type: ClusterIP
---

参考文档

https://istio.io/latest/docs/ops/deployment/requirements/#pod-requirements

posted @ 2022-10-28 16:49  小吉猫  阅读(65)  评论(0编辑  收藏  举报