
segúnEnlace, podemos crear pods con múltiples redes, si la aplicación abre un puerto con una red no predeterminada (eth2,3, etc.) ¿Cómo podemos exponerlo como servicio? En el servicio yaml no encuentro ninguna forma de exponer el servicio que no sea el predeterminado.
Respuesta1
Multus le permite conectar dispositivos de red a sus Pods, aunque debemos tener en cuenta que estas interfaces no forman parte de nuestro SDN de clúster de Kubernetes.
Con dispositivos basados en Multus: asignaría IP a sus Pods, ya sea usando DHCP, IP estáticas,... depende de usted. Teniendo en cuenta que esas direcciones son independientes de su SDN de Kubernetes.
Si otros contenedores en ese clúster necesitan conectar esos puntos finales, entonces su tráfico abandonaría su SDN, pasando por su puerta de enlace predeterminada habitual, que a su vez debería tener algún conocimiento (enrutamiento hacia) sus subredes de direcciones Multus.
Sin embargo, aún puede crear Servicios, designando direcciones fuera de su SDN. Esto se haría creando un objeto Endpoints, junto con su Servicio, como por ejemplo:
---
apiVersion: v1
kind: Endpoints
metadata:
name: svc-out-sdn
namespace: ns
subsets:
- addresses:
- ip: 10.0.0.1
ports:
- name: tcp-80
port: 80
protocol: TCP
---
apiVersion: v1
kind: Service
metadata:
name: svc-out-sdn
namespace: ns
spec:
clusterIP: None
ports:
- name: tcp-80
port: 80