
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Checkov Admission Controller镜像基于开源IaC静态分析工具Checkov构建,是Kubernetes的准入控制器组件。其核心功能是在Kubernetes资源(如Pod、Deployment、StatefulSet等)创建或更新阶段,通过Kubernetes Webhook机制自动执行安全策略检查,基于Checkov的内置规则及自定义策略验证资源配置安全性,拦截不符合安全标准的资源请求,从而实现对Kubernetes集群配置安全的自动化管控。
1. 创建命名空间
bashkubectl create namespace checkov-admission-controller
2. 部署控制器(Deployment)
创建deployment.yaml:
yamlapiVersion: apps/v1 kind: Deployment metadata: name: checkov-admission-controller namespace: checkov-admission-controller spec: replicas: 1 selector: matchLabels: app: checkov-admission-controller template: metadata: labels: app: checkov-admission-controller spec: containers: - name: checkov-admission-controller image: docker.xuanyuan.run/checkov-admission-controller:latest # 替换为实际镜像地址 ports: - containerPort: 443 volumeMounts: - name: tls-certs mountPath: /certs readOnly: true - name: policy-dir mountPath: /policy readOnly: true args: - --tls-cert-file=/certs/tls.crt - --tls-private-key-file=/certs/tls.key - --policy-dir=/policy - --log-level=info resources: limits: cpu: 500m memory: 512Mi requests: cpu: 200m memory: 256Mi volumes: - name: tls-certs secret: secretName: checkov-admission-tls # 包含TLS证书的Secret - name: policy-dir configMap: name: checkov-policy # 包含自定义规则的ConfigMap(可选)
执行部署:
bashkubectl apply -f deployment.yaml -n checkov-admission-controller
3. 创建Service
创建service.yaml:
yamlapiVersion: v1 kind: Service metadata: name: checkov-admission-controller namespace: checkov-admission-controller spec: selector: app: checkov-admission-controller ports: - port: 443 targetPort: 443 clusterIP: None # Headless Service(可选,根据Webhook配置调整)
执行创建:
bashkubectl apply -f service.yaml -n checkov-admission-controller
4. 配置ValidatingWebhook
创建webhook.yaml(定义触发检查的资源和规则):
yamlapiVersion: admissionregistration.k8s.io/v1 kind: ValidatingWebhookConfiguration metadata: name: checkov-admission-controller webhooks: - name: checkov-admission-controller.example.com clientConfig: service: name: checkov-admission-controller namespace: checkov-admission-controller path: /validate caBundle: <CA_BUNDLE> # 集群CA证书Base64编码(用于验证Webhook服务证书) rules: - apiGroups: ["", "apps", "batch"] apiVersions: ["v1"] operations: ["CREATE", "UPDATE"] resources: ["pods", "deployments", "statefulsets", "daemonsets", "jobs"] scope: "Namespaced" admissionReviewVersions: ["v1"] sideEffects: None timeoutSeconds: 5
替换<CA_BUNDLE>为集群CA证书(可通过kubectl config view --raw --minify --flatten -o jsonpath='{.clusters[0].cluster.certificate-authority-data}'获取),执行创建:
bashkubectl apply -f webhook.yaml
| 参数名 | 说明 | 示例值 |
|---|---|---|
--tls-cert-file | TLS证书文件路径(容器内路径) | /certs/tls.crt |
--tls-private-key-file | TLS私钥文件路径(容器内路径) | /certs/tls.key |
--policy-dir | 自定义规则文件目录(容器内路径) | /policy |
--log-level | 日志级别(debug/info/warn/error) | info |
--port | 服务监听端口 | 443(默认) |
--check-mode | 检查模式(deny/audit) | deny(默认,阻止不安全资源) |
| 变量名 | 说明 | 示例值 |
|---|---|---|
CHECKOV_POLICY_REPO | 远程策略仓库地址(如Git) | https://github.com/xxx/policy |
CHECKOV_POLICY_BRANCH | 远程策略仓库分支 | main |
KUBECONFIG | 本地测试用Kubeconfig路径(非集群内部署时) | /root/.kube/config |
通过--policy-dir挂载包含Checkov自定义规则的目录,规则文件需符合Checkov自定义规则格式(如custom_rule.yaml),示例:
yaml- name: "禁止特权容器" id: "CKV_K8S_999" severity: "CRITICAL" message: "特权容器可能导致容器逃逸,禁止使用" category: "容器安全" match: apiGroups: [""] apiVersions: ["v1"] kinds: ["Pod"] cond: - attr: "spec.containers[*].securityContext.privileged" operator: "equals" value: true
--enable-admission-plugins=ValidatingAdmissionWebhook)。caBundle匹配,避免API Server验证Webhook服务证书失败。--check-mode=audit模式测试规则有效性,避免误拦截正常资源。您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务