[英]Kubernetes - Admission webhook - validate scale operatoin in deployments
我想在擴展之前根據自定義邏輯驗證部署。 我創建了一個 admission webhook 來做到這一點,但不幸的是,webbook 沒有檢測到 scale 操作。
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingWebhookConfiguration
metadata:
name: deployment-validator
webhooks:
- admissionReviewVersions:
- v1
clientConfig:
service:
name: example-name
namespace: example-namespace
path: /validate-deployment
port: 9443
failurePolicy: Ignore
matchPolicy: Equivalent
name: validation.deploy.example-domain.com
namespaceSelector: {}
objectSelector: {}
rules:
- apiGroups:
- apps
apiVersions:
- v1
operations:
- '*'
resources:
- deployment
scope: '*'
sideEffects: None
timeoutSeconds: 10
如果我創建或更新部署,webhook 服務器會檢測到該操作,如果我修補(kubectl patch ...)也是如此。 不幸的是,如果我使用 kubectl scale ...,webhook 服務器不會檢測到該操作,並且我無法驗證請求。
我該如何解決這個問題?
當您運行kubectl scale
時,您實際上並沒有修補Deployment
資源,而是正在編輯一個名為Scale
的子資源。
這是規模調用的 API 文檔條目: https ://kubernetes.io/docs/reference/generated/kubernetes-api/v1.24/#replace-scale-deployment-v1-apps
PUT /apis/apps/v1/namespaces/{namespace}/deployments/{name}/scale
另外,我認為您的資源需要復數名稱。 因此,您可能必須像這樣更改准入控制器中的規則:
rules:
- apiGroups:
- apps
apiVersions:
- v1
operations:
- '*'
resources:
- deployments/scale
scope: '*'
這應該有效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.