Skip to content
Kubernetes

Service Types

Expose Pods via ClusterIP, NodePort, and LoadBalancer services.

#service#networking#discovery

Code

kubernetes
# service.yaml
apiVersion: v1
kind: Service
metadata:
  name: api
spec:
  type: ClusterIP        # default, internal only
  selector:
    app: api
  ports:
    - port: 80           # service port
      targetPort: 8080   # container port
      protocol: TCP

---
# Headless service for StatefulSet DNS
apiVersion: v1
kind: Service
metadata:
  name: api-headless
spec:
  clusterIP: None
  selector: { app: api }
  ports: [{ port: 80, targetPort: 8080 }]

# kubectl get svc
# kubectl get endpoints api