云原生小技巧 : 如何在本地调试 Kubernetes Webhook?( 三 )


步骤 5:看看实际效果如何
最后,我们再执行同样一个用例,就可以被当前的 ValidatingWebhook 拦截到了 。
kubectl apply -f ./config/samples/webapp_v1_guestbook.yamlThe Guestbook "guestbook-sample" is invalid: metadata.name: Invalid value: "guestbook-sample": Guestbook name must be no more than 5 characters for test purposes小贴士:对于那些出于安全考虑不愿将本地服务暴露在公网上的小伙伴们,这里有一个安全的替代方案 。你可以使用如 docker.for.mac.host.internal 这样的特定域名,它允许在不同环境下安全地连接到你的主机 。
为了实现这一点 , 你需要根据你所在的环境,将 docker.for.mac.host.internal 替换为能够访问到你本地主机的相应域名 。此外,别忘了补充 caBundle 字段,确保使用了正确的 CA 证书的 base64 编码字符串 。
示例配置如下所示:
webhooks:- admissionReviewVersions:- v1clientConfig:caBundle: [你的CA证书的base64编码字符串]url: https://docker.for.mac.host.internal:9443/validate-webapp-foobar-ai-v1-guestbook

当然,在实际开发中,手动更改 Webhook 配置显然不是理想选择 。推荐大家根据项目需求 , 结合这里提供的策略,开发自动化的配置处理流程 。这不仅提升效率 , 还确保了配置的准确性和项目的灵活性 。
Debugging operator on Kubernetes在以前的旧文中,我分享过 《Kubernetes 101: Debugging Microservices on Kubernetes》 这篇文章,主要介绍微服务在 K8s 环境下,在本地如何进行有效的调试 。事实上,我们当前 webhook 的调试场景,完全可以利用 Nocalhost[3] 这款工具达到同样的目的 。
云原生小技巧 : 如何在本地调试 Kubernetes Webhook?

文章插图
在 Nocalhost 的开发模式下,我们可以直接在 K8s 集群中构建、测试和调试应用程序的,这意味着我们可以默认使用 clientConfig.service 模式,直接通过内部服务来连接,非常的方便 。如果你还不太熟悉 Nocalhost,那可得抓紧时间补课了
【云原生小技巧 : 如何在本地调试 Kubernetes Webhook?】


推荐阅读