Kubernetes Kyverno

O autor original desta página é Guillaume

Definição

Kyverno é um framework de gerenciamento de políticas de código aberto para Kubernetes que permite que as organizações definam, apliquem e auditem políticas em toda a sua infraestrutura Kubernetes. Ele fornece uma solução escalável, extensível e altamente personalizável para gerenciar a segurança, conformidade e governança de clusters Kubernetes.

Casos de uso

Kyverno pode ser usado em uma variedade de casos de uso, incluindo:

  1. Aplicação de Políticas de Rede: Kyverno pode ser usado para aplicar políticas de rede, como permitir ou bloquear tráfego entre pods ou serviços.

  2. Gerenciamento de Segredos: Kyverno pode ser usado para aplicar políticas de gerenciamento de segredos, como exigir que segredos sejam armazenados em um formato ou local específico.

  3. Controle de Acesso: Kyverno pode ser usado para aplicar políticas de controle de acesso, como exigir que os usuários tenham funções ou permissões específicas para acessar certos recursos.

Exemplo: ClusterPolicy e Policy

Vamos supor que temos um cluster Kubernetes com vários namespaces e queremos aplicar uma política que exija que todos os pods no namespace default tenham um rótulo específico.

ClusterPolicy

Uma ClusterPolicy é uma política de alto nível que define a intenção geral da política. Neste caso, nossa ClusterPolicy pode ser assim:

apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
name: require-label
spec:
rules:
- validate:
message: "Pods in the default namespace must have the label 'app: myapp'"
match:
any:
- resources:
kinds:
- Pod
namespaceSelector:
matchLabels:
namespace: default
- any:
- resources:
kinds:
- Pod
namespaceSelector:
matchLabels:
namespace: default
validationFailureAction: enforce

Quando um pod é criado no namespace default sem o rótulo app: myapp, o Kyverno bloqueará a solicitação e retornará uma mensagem de erro indicando que o pod não atende aos requisitos da política.

Referências

Last updated