如何调试Kubernetes验证入场webhook?

dddzy1tm  于 2023-10-17  发布在  Kubernetes
关注(0)|答案(2)|浏览(142)

我有一个webhook作为集群中的服务运行,我为它定义了一个有效的ValidatingWebhookConfiguration

apiVersion: admissionregistration.k8s.io/v1beta1
    kind: ValidatingWebhookConfiguration
    metadata:
      name: ingress-check-webhook-cfg
    webhooks:
      - name: ingress.check.webhook
        rules:
          - apiGroups:
              - extensions
            apiVersions:
              - v1
            operations:
              - CREATE
              - UPDATE
            resources:
              - ingresses
        failurePolicy: Ignore
        clientConfig:
          service:
            name: ingress-check-webhook-svc
            namespace: operations
            path: "/validate"
          caBundle: <cert stuff>

我可以在集群中curl -k https://ingress-check-webhook-svc.operations/validate并在我的webhook服务中查看日志条目,但当我创建一个新的ingress时,我什么也得不到。我似乎找不到任何录取过程的日志-这是记录在哪里,我还能做什么?

pepwfjgg

pepwfjgg1#

对于来这里了解如何调试验证webhook或如何查看验证webhook的日志的人,您需要查看处理这些验证请求的pod。
1.识别validatingwebhook向其发送请求的服务/端点,例如在这种情况下

clientConfig:
  service:
    name: ingress-check-webhook-svc
    namespace: operations
    path: "/validate"

1.在服务中查找选择器

kubectl get service -n operations ingress-check-webhook-svc -oyaml
selector:
  app: ingress-check-webhook

1.用这些标签识别pod并查找日志

kubectl get pods -l app=ingress-check-webhook
kubectl logs -l app=ingress-check-webhook
xe55xuns

xe55xuns2#

删除和重新创建配置似乎已经解决了我的问题。也许我没有正确应用API版本更改。注意kubectl describekubectl get events和检查API日志没有提供任何有用的信息。

相关问题