istio.io/content/docs/setup/kubernetes/spec-requirements/index.md

1.5 KiB

title description weight keywords
Requirements for Pods and Services Describes the requirements for Kubernetes pods and services to run Istio. 80
kubernetes
sidecar
sidecar-injection

To be a part of the service mesh, pods and services in a Kubernetes cluster must satisfy the following requirements:

  • Named ports: Service ports must be named. The port names must be of the form <protocol>[-<suffix>] with http, http2, grpc, mongo, or redis as the <protocol> in order to take advantage of Istio's routing features. For example, name: http2-foo or name: http are valid port names, but name: http2foo is not. If the port name does not begin with a recognized prefix or if the port is unnamed, traffic on the port will be treated as plain TCP traffic (unless the port explicitly uses Protocol: UDP to signify a UDP port).

  • Service association: If a pod belongs to multiple Kubernetes services, the services cannot use the same port number for different protocols, for instance HTTP and TCP.

  • Deployments with app label: It is recommended that pods deployed using the Kubernetes Deployment have an explicit app label in the deployment specification. Each deployment specification should have a distinct app label with a value indicating something meaningful. The app label is used to add contextual information in distributed tracing.