Назад к вопросам
Middle+
86
questionbank

Что такое admission вебхуки?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Admission Webhooks в Kubernetes — это HTTP-колбеки, которые получают запросы на изменение или создание ресурсов. Они позволяют перехватывать запросы к API-серверу Kubernetes перед сохранением объектов в Etcd.

Существует два основных типа:

  • Mutating Admission Webhooks: Могут изменять объекты до их сохранения. Например, автоматически добавлять метки или аннотации к подам.
  • Validating Admission Webhooks: Могут отклонять запросы, если объекты не соответствуют определенным правилам. Например, запрещать создание подов без определенных полей securityContext.

Вебхуки разворачиваются как сервисы в кластере и определяются с помощью ресурсов MutatingWebhookConfiguration и ValidatingWebhookConfiguration. Эти ресурсы указывают, какие операции (CREATE, UPDATE, DELETE) и для каких ресурсов (pods, deployments и т.д.) вебхук должен вызываться.

apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingWebhookConfiguration
metadata:
  name: example-validating-webhook
webhooks:
  - name: validate.example.com # Имя хука
    clientConfig:
      service:
        namespace: default # Namespace сервиса вебхука
        name: example-webhook-service # Имя сервиса вебхука
    rules:
      - operations: ["CREATE", "UPDATE"] # Операции для перехвата
        apiGroups: [""] # Группа API (для подов)
        apiVersions: ["v1"] # Версия API
        resources: ["pods"] # Тип ресурса
    sideEffects: None # Указывает, имеет ли хук побочные эффекты (тут нет)

Они позволяют реализовать кастомную логику политики и мутации ресурсов, дополняя встроенные Admission Controllers Kubernetes.