Services · Ingress Controllers · CoreDNS · Tráfico interno y externo
svc-name.namespace.svc.cluster.localNodeIP:NodePortmy-db → rds.amazonaws.com Útil para integrar servicios externos sin cambiar el código.clusterIP: None — sin IP virtual. DNS resuelve directamente a las IPs de cada Pod. Usado por StatefulSets para que los Pods se conozcan entre sí.kube-system y resuelve nombres de Services automáticamente. Cada Pod tiene CoreDNS configurado como su resolver.apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: app-ingress annotations: nginx.ingress.kubernetes.io/rewrite-target: / nginx.ingress.kubernetes.io/ssl-redirect: "true" spec: ingressClassName: nginx tls: - hosts: [api.miempresa.com] secretName: tls-secret # Secret con cert.pem + key.pem rules: - host: api.miempresa.com http: paths: - path: /users pathType: Prefix backend: service: { name: users-svc, port: { number: 80 } } - path: /orders pathType: Prefix backend: service: { name: orders-svc, port: { number: 80 } } --- # Verificar el Ingress kubectl get ingress NAME CLASS HOSTS ADDRESS PORTS AGE app-ingress nginx api.miempresa.com 34.12.34.56 80, 443 5m # Debug: ver los endpoints del Service (¿apunta a los Pods correctos?) kubectl get endpoints users-svc NAME ENDPOINTS AGE users-svc 172.16.0.5:8080,172.16.0.6:8080,172.16.0.7:8080 10m
curl users-svc funciona si estás en el mismo namespace. CoreDNS resuelve automáticamente al crear el Service.