Service
Service¶
Un Service espone uno o più Pod tramite un endpoint stabile.Fa da “bridge” tra Pod e il resto del cluster
apiVersion: v1 kind: Service metadata: name: sample-service labels: app: sample spec: type: ClusterIP selector: app: sample ports: - name: http port: 80 targetPort: 8080
NodePort¶
Espone il servizio su una porta del nodo (30000–32767).
apiVersion: v1 kind: Service metadata: name: sample-nodeport spec: type: NodePort selector: app: sample ports: - name: http port: 80 # porta interna al cluster targetPort: 8080 # porta del container/pod nodePort: 30080 # porta esposta sul nodo (opzionale)
Ingress¶
Un Ingress espone i Service tramite hostname e path
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: sample-ingress annotations: nginx.ingress.kubernetes.io/rewrite-target: / spec: rules: - host: app.local http: paths: - path: / pathType: Prefix backend: service: name: sample-service port: number: 80
IngressRoute¶
Utile con traefik
apiVersion: traefik.io/v1alpha1 kind: IngressRoute metadata: name: webapp-demo namespace: nginx spec: entryPoints: - web routes: - match: Host(`nginx.locale`) kind: Rule services: - name: webapp-demo port: 80
Load Balance¶
Espone il servizio via un Load Balancer esterno.
apiVersion: v1 kind: Service metadata: name: sample-loadbalancer spec: type: LoadBalancer selector: app: sample ports: - name: http port: 80 targetPort: 8080