Service Types — different ways to expose Kubernetes services.
1# ClusterIP (internal only)2apiVersion: v13kind: Service4metadata:5 name: api-cluster6spec:7 type: ClusterIP8 selector:9 app: api10 ports:11 - port: 8012 targetPort: 300013---14# NodePort (accessible via node IP:port)15apiVersion: v116kind: Service17metadata:18 name: api-nodeport19spec:20 type: NodePort21 selector:22 app: api23 ports:24 - port: 8025 targetPort: 300026 nodePort: 30080 # 30000-3276727---28# LoadBalancer (cloud external LB)29apiVersion: v130kind: Service31metadata:32 name: api-lb33spec:34 type: LoadBalancer35 selector:36 app: api37 ports:38 - port: 8039 targetPort: 300040---41# ExternalName (DNS CNAME)42apiVersion: v143kind: Service44metadata:45 name: external-db46spec:47 type: ExternalName48 externalName: db.example.com
1# Access services2# ClusterIP: kubectl port-forward svc/api-cluster 8080:803# NodePort: curl http://<node-ip>:300804# LoadBalancer: curl http://<external-ip>56kubectl get svc -A7kubectl describe svc api-cluster8kubectl get endpoints api-cluster910# Port forwarding11kubectl port-forward svc/api-cluster 8080:8012kubectl port-forward pod/my-pod 8080:3000
Comparison: