Servizi e loro tipi

Modo imperativo

Comando:

kubectl expose rs web-rs \
  --name=hello-svc \
  --target-port=8080 \
  --type=NodePort
service/hello-svc exposed

Tipi di servizio:

  • ClusterIP - Indirizzo IP stabile nel cluster. Non visibile dall’esterno
  • NodePort - Visibile dall’esterno del cluster, a livello nodi
  • LoadBalancer - Visibile dall'esterno del cluster, fornisce un bilanciamento di carico sui nodi

Descrizione del servizio:

kubectl describe svc hello-svc

Rimuovere il servizio:

kubectl delete service hello-svc

Modo dichiarativo

File di specifiche:

vim svc.yml
apiVersion: v1
kind: Service
metadata:
  name: hello-svc
  labels:
    app: hello-world
spec:
  type: NodePort
  ports:
  - port: 8080
    nodePort: 30001
    protocol: TCP
  selector:
    app: hello-world

Creazione del servizio:

kubectl create -f svc.yml

Ispezione del servizio:

kubectl get svc hello-svc
kubectl describe svc hello-svc

Descrizione degli endpoints:

kubectl get ep hello-svc

Rimozione del servizio:

kubectl delete -f svc.yml

Rimozione del replicaset:

kubectl delete -f rs.yml