es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Kubernetes RBAC: permite escalar implementaciones a un máximo de 6 réplicas.

He implementado el control de acceso basado en roles (RBAC) en mi proyecto. Se ha otorgado permiso para escalar el despliegue, pero no hay un límite máximo de escalado y se está utilizando de manera incorrecta. Las personas están escalando los despliegues a 15, 20 pods. ¿Existe alguna forma de restringirles el escalado y permitirles escalar solo hasta cierto límite máximo?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, es posible restringir el número máximo de pods permitidos para escalar utilizando RBAC en Kubernetes. Puede crear un nuevo rol personalizado que permita la escalabilidad de los despliegues, pero con un límite máximo de pods.

    Aquí tienes un ejemplo:

    1. Define el rol personalizado:
    kind: Role
    apiVersion: rbac.authorization.k8s.io/v1
    metadata:
      namespace: <tu_namespace>
      name: max-pods-scaling-role
    rules:
    - apiGroups: ["apps"]
      resources: ["deployments/scale"]
      verbs: ["get", "update"]
    - apiGroups: [""]
      resources: ["pods"]
      verbs: ["list"]
    

    En la definición de rol anterior, hemos permitido los verbos “get” y “update” para la escalabilidad de los despliegues en el grupo de API “apps”. También hemos agregado el verbo “list” para listar los pods.

    1. Crea una vinculación de roles para el rol personalizado:
    kind: RoleBinding
    apiVersion: rbac.authorization.k8s.io/v1
    metadata:
      name: max-pods-scaling-rolebinding
      namespace: <tu_namespace>
    subjects:
    - kind: User
      name: <nombre_usuario>
      apiGroup: rbac.authorization.k8s.io
    roleRef:
      kind: Role
      name: max-pods-scaling-role
      apiGroup: rbac.authorization.k8s.io
    

    En el ejemplo de vinculación de roles anterior, hemos agregado un usuario llamado “nombre_usuario” como sujeto y lo hemos vinculado al rol personalizado “max-pods-scaling-role”.

    1. Establece el límite máximo para la escalabilidad:

    Ahora, estableceremos el límite máximo para la escalabilidad utilizando el comando kubectl:

    kubectl scale deployment <nombre_despliegue> --replicas=<cantidad_pods>

    En el comando anterior, pasaremos el nombre del despliegue y el número máximo de pods permitidos para la escalabilidad.

    Con la configuración anterior, el usuario solo podrá escalar el despliegue hasta el límite máximo de pods establecido en el rol personalizado. Si intentan escalar más allá del límite, recibirán un mensaje de error.

Comments are closed.