Kf se integra estrechamente en Istio y Kubernetes para proporcionar una aplicación sólida de políticas de red.
De manera predeterminada, las cargas de trabajo de Kf se ejecutan en el clúster de Kubernetes y resuelven las direcciones con DNS de Kubernetes. En primer lugar, el agente de resolución de DNS intentará resolver las direcciones dentro del clúster, y solo si no se encuentra ninguna dirección, intentará resolver de forma externa.
Cada app de Kf se ejecuta con un archivo adicional Envoy insertado por Istio o Anthos Service Mesh (ASM). Este archivo adicional conecta todo el tráfico de red dentro y fuera del pod de Kubernetes mediante proxy.
Cada Pod de Kubernetes se ejecuta en un nodo, una máquina física o virtual responsable de administrar las imágenes de contenedor que conforman un Pod. Los nodos existen en una red física o virtual.
En conjunto, estos constituyen una jerarquía de sistemas a los que puedes aplicar políticas de red. Estas se enumeran a continuación del nivel menos detallado al más detallado.
Políticas a nivel de red
La protección de la carga de trabajo comienza con la red en la que se instala tu clúster de GKE.
Si ejecutas Kf en un clúster de GKE en GCP, Kf recomienda lo siguiente:
- Ubicar tu clúster de GKE en una red de nube privada virtual (VPC)
- con el Acceso privado a Google habilitado
- Mediante Cloud NAT para controlar la salida
Políticas a nivel de nodo
Puedes configurar políticas para contenedores que se ejecutan en el nodo con NetworkPolicies de Kubernetes. Estas son las asignaciones más cercanas a las políticas de red de Cloud Foundry que existen en Kubernetes.
NetworkPolicies está respaldado por un complemento de Kubernetes. Si configuras tu propio clúster de GKE, deberás habilitar la aplicación de NetworkPolicy.
Kf etiqueta apps con kf.dev/networkpolicy=app
y compila con kf.dev/networkpolicy=build
.
Esto permite que orientes las NetworkPolicies directamente a los Pods que ejecutan apps o compilaciones.
Cada Kf Space crea dos NetworkPolicies para comenzar, una orientada a apps y otra orientada a compilaciones. Puedes cambiar la configuración en los campos spec.networkConfig.(app|build)NetworkPolicy.(in|e)gress
del Space.
Estos campos se pueden establecer en uno de los siguientes valores:
Valor enum | Descripción |
---|---|
PermitAll |
Permite todo el tráfico. |
DenyAll |
Rechaza todo el tráfico. |
De forma predeterminada, Kf usa una política de red permisiva. Esto permite la siguiente funcionalidad que Kf usa:
- Enrutamiento norte/sur a la puerta de enlace de entrada del clúster
- Salida a Internet de Internet, por ejemplo, para recuperar paquetes de compilación
- Enrutamiento este/oeste entre apps
- Acceso al servidor DNS de Kubernetes
- Acceso a registros de contenedores
- Acceso directo a la red de VPC
- Acceso a servicios de Google como Cloud Logging
- Acceso al servidor de Workload Identity para obtener credenciales con rotación automática
Políticas de malla de servicios
Si necesitas control de redes detallado, autenticación, autorización y observabilidad, puedes aplicar políticas mediante Anthos Service Mesh.
Una malla de servicios es una capa de infraestructura que permite una comunicación administrada, observable y segura en todos tus servicios, de modo que puedes crear aplicaciones empresariales sólidas y compuestas por muchos microservicios en la infraestructura seleccionada.
Puedes consultar la lista de funciones compatibles aquí.