
k8s-gitops-secrets是一个专为Kubernetes设计的GitOps密钥控制器,旨在通过GitOps工作流自动化管理Kubernetes集群中的密钥资源。该控制器能够从指定的Git仓库拉取密钥配置,同步到Kubernetes Secrets,并在Git仓库中的密钥发生变更时自动更新集群内的密钥,确保密钥管理的一致性、可追溯性和安全性。
1. 通过kubectl部署
创建部署清单(deployment.yaml):
yamlapiVersion: apps/v1 kind: Deployment metadata: name: k8s-gitops-secrets-controller namespace: gitops-system spec: replicas: 1 selector: matchLabels: app: k8s-gitops-secrets template: metadata: labels: app: k8s-gitops-secrets spec: containers: - name: controller image: rustrial/k8s-gitops-secrets:latest env: - name: GIT_REPO_URL value: "https://github.com/your-org/k8s-secrets-repo.git" # Git仓库URL - name: GIT_BRANCH value: "main" # 目标分支 - name: SYNC_INTERVAL value: "300s" # 同步间隔(默认5分钟) - name: TARGET_NAMESPACE value: "default" # 目标命名空间(留空表示所有命名空间) - name: GIT_CREDENTIALS_SECRET value: "git-creds" # 存储Git访问凭证的Kubernetes Secret名称
应用部署清单:
bashkubectl apply -f deployment.yaml -n gitops-system
2. 通过Helm部署(推荐)
bash# 添加Helm仓库(如项目提供) helm repo add k8s-gitops-secrets https://rustrial.github.io/k8s-gitops-secrets helm repo update # 安装控制器 helm install k8s-gitops-secrets k8s-gitops-secrets/k8s-gitops-secrets \ --namespace gitops-system \ --create-namespace \ --set git.repoUrl=https://github.com/your-org/k8s-secrets-repo.git \ --set git.branch=main \ --set sync.interval=300s \ --set targetNamespace=default
| 参数名 | 描述 | 类型 | 默认值 |
|---|---|---|---|
GIT_REPO_URL | Git仓库URL(支持HTTP/HTTPS/SSH) | 字符串 | 无(必填) |
GIT_BRANCH | 同步目标Git分支 | 字符串 | main |
GIT_CREDENTIALS_SECRET | 存储Git凭证的Kubernetes Secret名称 | 字符串 | 无 |
SYNC_INTERVAL | 密钥同步间隔(格式:"300s"、"5m") | 字符串 | "300s" |
TARGET_NAMESPACE | 目标Kubernetes命名空间(留空表示所有) | 字符串 | 无 |
SECRET_LABELS | 为创建的Secrets添加标签(JSON格式) | 字符串 | {} |
CONFLICT_STRATEGY | 冲突处理策略("overwrite"/"retain") | 字符串 | "overwrite" |
1. 准备Git仓库密钥配置
在Git仓库中创建密钥配置目录(如secrets/),添加密钥文件:
yaml# secrets/prod-db-secret.yaml apiVersion: v1 kind: Secret metadata: name: prod-db-credentials namespace: production type: Opaque data: username: YWRtaW4= # base64编码的"admin" password: cGFzc3dvcmQxMjM= # base64编码的"password123"
2. 部署控制器并验证
bash# 部署控制器后检查Pod状态 kubectl get pods -n gitops-system # 验证密钥是否同步 kubectl get secret prod-db-credentials -n production -o yaml
3. 更新密钥
修改Git仓库中的prod-db-secret.yaml并提交,控制器将在同步间隔内自动更新Kubernetes Secret:
bash# 查看更新后的密钥 kubectl get secret prod-db-credentials -n production -o jsonpath='{.data.password}' | base64 -d
完整文档请参考官方项目地址:https://github.com/rustrial/k8s-gitops-secrets
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。


探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务