Los security groups actúan como firewalls virtuales para los pods que se ejecutan como Elastic Container Instances (ECI) en Container Service for Kubernetes (ACK). Utilizan Stateful Packet Inspection (SPI) y filtrado de paquetes para controlar el tráfico entrante y saliente en el nivel de pod. Puede usar security groups para definir dominios de seguridad en la nube.
Aplicable a: Clústeres de ACK con Virtual Node (Virtual Kubelet) habilitado
Antes de empezar
Antes de asignar security groups, asegúrese de contar con lo siguiente:
Un clúster de ACK con el componente Virtual Node (Virtual Kubelet) instalado
Como mínimo un security group creado en la misma virtual private cloud (VPC) que su clúster. Para crear uno, consulte Create a security group
Virtual Kubelet v2.0.0.90-15deb126e-aliyun o posterior, si necesita que los cambios de configuración del clúster se apliquen sin reiniciar los pods (actualización en caliente). Para comprobar su versión y actualizarla si es necesario, consulte las notas de la versión de Virtual Kubelet
Limitaciones
Revise estas restricciones antes de continuar:
|
Restricción |
Detalle |
|
Pertenencia obligatoria |
Cada elastic container instance debe pertenecer a un security group. |
|
Inmutabilidad |
No se pueden modificar los security groups de un pod en ejecución. Para mover un pod a otro security group, cree un pod idéntico en dicho security group. |
|
Límite por pod |
Un pod puede pertenecer hasta a cinco security groups. |
|
Misma VPC |
Todos los security groups asignados a un pod deben estar en la misma VPC. |
|
Mismo tipo |
Todos los security groups asignados a un pod deben ser del mismo tipo: todos básicos o todos avanzados. |
|
Momento de aplicación de la anotación |
La anotación |
Tipos de security group
ECI admite dos tipos de security group:
|
Tipo |
Descripción |
Recomendado cuando |
|
Security group básico |
Security group estándar con control de tráfico basado en reglas |
Cargas de trabajo generales |
|
Security group avanzado |
Mayor capacidad de instancias y gestión simplificada de reglas |
Despliegues de ECI a gran escala que requieren alta eficiencia operativa |
Todas las instancias de un security group tienen confianza mutua y están protegidas bajo las mismas reglas del security group. Las reglas del security group controlan el acceso hacia o desde Internet o la red interna para las elastic container instances del security group.
Para obtener una comparación detallada, consulte Basic security groups and advanced security groups.
Asignar un security group en el nivel de clúster
De forma predeterminada, todos los pods basados en ECI de un clúster de ACK utilizan el security group especificado en el ConfigMap eci-profile. Para cambiar el security group predeterminado de todos los pods del clúster, edite este ConfigMap.
-
Abra el ConfigMap
eci-profilepara editarlo:kubectl edit configmap eci-profile -n kube-system -
Actualice
securityGroupIden la seccióndatacon el ID de su security group. En el nivel de clúster solo se admite un único ID de security group.data: enableClusterIp: "true" enableHybridMode: "false" enablePrivateZone: "false" resourceGroupId: "" securityGroupId: sg-2ze0b9o8pjjzts4h**** # Specify a single security group ID. selectors: "" vSwitchIds: vsw-2zeet2ksvw7f14ryz****,vsw-2ze94pjtfuj9vaymf**** vpcId: vpc-2zeghwzptn5zii0w7**** Guarde el archivo. Si Virtual Kubelet es v2.0.0.90-15deb126e-aliyun o posterior, el cambio surte efecto inmediatamente sin necesidad de reiniciar los pods existentes.
Asignar security groups a un pod específico
Para anular la configuración predeterminada del clúster en pods individuales, agregue la anotación k8s.aliyun.com/eci-security-group a la especificación del pod. Esto resulta útil cuando ciertas cargas de trabajo requieren políticas de red más estrictas o más permisivas.
Agregue las anotaciones en spec.template.metadata para los Deployments, no en el nivel superior metadata. Las anotaciones solo surten efecto al crear el pod.
El siguiente ejemplo asigna dos security groups a todos los pods creados por el Deployment test:
apiVersion: apps/v1
kind: Deployment
metadata:
name: test
labels:
app: test
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
name: nginx-test
labels:
app: nginx
alibabacloud.com/eci: "true"
annotations:
k8s.aliyun.com/eci-security-group: "sg-bp1dktddjsg5nktv****,sg-2ze0b9o8pjjzts4h****" # Up to 5 IDs, comma-separated.
spec:
containers:
- name: nginx
image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
ports:
- containerPort: 80
Agregar una regla de security group
Las reglas de security group controlan qué tráfico puede llegar a sus pods. Casos de uso comunes:
Habilitar la comunicación entre security groups: Agregue una regla de security group para permitir el tráfico desde un servicio externo al security group del pod.
Bloquear fuentes maliciosas: Agregue una regla de security group para bloquear el acceso desde determinadas fuentes cuando se detecten ataques.
Para agregar una regla, consulte Add a security group rule.
Pasos siguientes
Overview of security groups — Conozca cómo funcionan los security groups y cómo se evalúan las reglas
Basic security groups and advanced security groups — Compare ambos tipos para elegir el adecuado para su carga de trabajo