Kf se integra estrechamente con Kubernetes e Istio para proporcionar una aplicación de políticas de red sólida.
De forma predeterminada, las cargas de trabajo de Kf se ejecutan en el clúster de Kubernetes y resuelven las direcciones mediante DNS de Kubernetes. Este resolver de DNS intentará primero resolver las direcciones del clúster y, solo si no encuentra ninguna, intentará resolverlas externamente.
Cada aplicación de Kf se ejecuta con un sidecar de Envoy insertado por Istio o Anthos Service Mesh (ASM). Este sidecar proxyiza todo el tráfico de red que entra y sale del pod de Kubernetes.
Cada pod de Kubernetes se ejecuta en un nodo, una máquina física o virtual responsable de gestionar las imágenes de contenedor que componen un pod. Los nodos se encuentran en una red física o virtual.
En conjunto, forman una jerarquía de sistemas a los que puedes aplicar políticas de red. A continuación, se enumeran de menor a mayor nivel de detalle.
Políticas a nivel de red
La protección de las cargas de trabajo empieza por la red en la que está instalado tu clúster de GKE.
Si ejecutas Kf en un clúster de GKE en GCP, Kf recomienda lo siguiente:
- Colocar el clúster de GKE en una red de nube privada virtual (VPC).
- Con Acceso privado de Google habilitado.
- Usar Cloud NAT para controlar el tráfico de salida.
Políticas a nivel de nodo
Puedes configurar políticas para los contenedores que se ejecutan en el nodo mediante Kubernetes NetworkPolicies. Estas son las asignaciones más parecidas a las políticas de red de Cloud Foundry que existen en Kubernetes.
Las NetworkPolicies se basan en un complemento de Kubernetes. Si configuras tu propio clúster de GKE, tendrás que habilitar la aplicación de NetworkPolicy.
Kf etiqueta las aplicaciones con kf.dev/networkpolicy=app
y las compilaciones con kf.dev/networkpolicy=build
.
De esta forma, puedes orientar NetworkPolicies directamente a los pods que ejecutan aplicaciones o compilaciones.
Cada espacio de nombres de Kf crea dos NetworkPolicies para empezar: una orientada a las aplicaciones y otra a las compilaciones. Puedes cambiar la configuración en los campos spec.networkConfig.(app|build)NetworkPolicy.(in|e)gress
del espacio.
Estos campos pueden tener uno de los siguientes valores:
Valor de enumeración | 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 usar las siguientes funciones de Kf:
- Enrutamiento norte-sur a la puerta de enlace de entrada del clúster
- Salida a Internet, por ejemplo, para obtener paquetes de compilación
- Rutas este-oeste entre aplicaciones
- Acceso al servidor DNS de Kubernetes
- Acceso a registros de contenedores
- Acceso directo a la red VPC
- Acceso a servicios de Google, como Cloud Logging
- Acceso al servidor de Workload Identity para rotar automáticamente las credenciales
Políticas de malla de servicios
Si necesitas un control de red, una autenticación, una autorización y una observabilidad pormenorizados, puedes aplicar políticas con Anthos Service Mesh.
Una malla de servicios es una capa de infraestructura que permite una comunicación gestionada, observable y segura entre tus servicios, lo que te permite crear aplicaciones empresariales sólidas formadas por muchos microservicios en la infraestructura que elijas.
Puedes consultar la lista de funciones admitidas.