Kubernetes Kyverno
Reading time: 1 minute
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:
- 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.
- 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.
- 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.