denyenv-validating-admission-webhook 项目教程

随笔3个月前发布 李晓茜
39 0 0

denyenv-validating-admission-webhook 项目教程

denyenv-validating-admission-webhookAn Kubernetes validating admission webhook that rejects pods that use environment variables.项目地址:https://gitcode.com/gh_mirrors/de/denyenv-validating-admission-webhook

项目介绍

denyenv-validating-admission-webhook 是一个用于 Kubernetes 的验证准入 Webhook 项目,由 Kelsey Hightower 开发。该项目的主要目的是防止在 Kubernetes Pod 中使用环境变量。通过部署这个 Webhook,可以在创建 Pod 时检查并拒绝那些包含环境变量的 Pod,从而增强集群的安全性和一致性。

项目快速启动

1. 克隆项目仓库

首先,克隆项目仓库到本地:




git clone https://github.com/kelseyhightower/denyenv-validating-admission-webhook.git


cd denyenv-validating-admission-webhook

2. 部署 Webhook 函数

使用 Google Cloud Functions 部署 Webhook 函数:

gcloud beta functions deploy denyenv --trigger-http

3. 获取 Webhook 的 HTTPS URL

获取触发 Webhook 函数的 HTTPS URL:

HTTPS_TRIGGER_URL=$(gcloud beta functions describe denyenv --format 'value(httpsTrigger.url)')

4. 配置 Kubernetes 集群

生成并提交验证 Webhook 配置到 Kubernetes API:




cat <<EOF | kubectl apply -f -


apiVersion: admissionregistration.k8s.io/v1beta1


kind: ValidatingWebhookConfiguration


metadata:


  name: denyenv


webhooks:


  - name: denyenv.hightowerlabs.com


    rules:


      - apiGroups:


          - ""


        apiVersions:


          - v1


        operations:


          - CREATE


        resources:


          - pods


    failurePolicy: Fail


    clientConfig:


      url: "${HTTPS_TRIGGER_URL}"


EOF

5. 测试 Webhook

确保没有环境变量的 Pod 可以正常部署:

kubectl run nginx --image=nginx

检查 Pod 状态:

kubectl get pods

应用案例和最佳实践

应用案例

在多租户 Kubernetes 集群中,不同团队可能需要不同的安全策略。使用 denyenv-validating-admission-webhook 可以确保所有团队在创建 Pod 时遵守不使用环境变量的规则,从而减少潜在的安全风险。

最佳实践

定期更新 Webhook 代码:确保 Webhook 代码是最新的,以支持最新的 Kubernetes 版本和安全特性。监控和日志:定期检查 Webhook 的日志,确保其正常工作,并及时发现和处理异常情况。权限控制:确保只有授权的用户和服务可以访问和触发 Webhook。

典型生态项目

1. Kubernetes

denyenv-validating-admission-webhook 是 Kubernetes 生态系统中的一个重要组件,用于增强集群的安全性和一致性。

2. Google Cloud Functions

该项目使用 Google Cloud Functions 作为无服务器平台来部署和运行 Webhook 函数,展示了如何利用云服务简化部署和运维。

3. Admission Controllers

Admission Controllers 是 Kubernetes 中用于在对象持久化之前拦截请求的插件。denyenv-validating-admission-webhook 是一个自定义的验证准入控制器,扩展了 Kubernetes 的默认功能。

通过以上步骤和内容,您可以快速启动并使用 denyenv-validating-admission-webhook 项目,并了解其在 Kubernetes 生态系统中的应用和最佳实践。

denyenv-validating-admission-webhookAn Kubernetes validating admission webhook that rejects pods that use environment variables.项目地址:https://gitcode.com/gh_mirrors/de/denyenv-validating-admission-webhook

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...