
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
kube-backup是一个轻量级的Kubernetes资源状态备份工具,设计为在K8s集群中以Job形式运行,可将指定的Kubernetes资源定义导出为YAML文件并提交到私有Git仓库,类似Kubernetes版本的RANCID配置备份工具。
需配置以下环境变量(部分为必填项):
GIT_REPO:Git仓库URL(必填)GIT_PREFIX_PATH:仓库中子目录路径,默认值为"."NAMESPACES:要导出的命名空间列表,默认导出所有GLOBALRESOURCES:全局资源类型列表,默认值为"namespace"RESOURCETYPES:要导出的资源类型列表,默认包含ingress、deployment、configmap等(默认不导出Secret,需结合git-crypt启用)GIT_USERNAME:Git提交用户名,默认值为"kube-backup"GIT_EMAIL:Git提交***,默认值为"***"GIT_BRANCH:使用的Git分支,默认值为"master"GITCRYPT_ENABLE:是否启用git-crypt加密,默认值为falseGITCRYPT_PRIVATE_KEY:git-crypt私钥路径,默认值为"/secrets/gpg-private.key"GITCRYPT_SYMMETRIC_KEY:git-crypt对称密钥路径,默认值为"/secrets/symmetric.key"1. AWS CodeCommit认证
修改集群配置(如kops)添加IAM策略,授予CodeCommit的GitPull和GitPush权限:
yamladditionalPolicies: node: | [ { "Effect": "Allow", "Action": [ "codecommit:GitPull", "codecommit:GitPush" ], "Resource": "arn:aws:codecommit:<region>:<account name>:<repo-name>" } ]
注意:此方式无需挂载SSH卷和密钥。
2. SSH认证(适用于GitHub、BitBucket等)
生成SSH密钥并创建K8s Secret:
bash# 生成SSH密钥 ssh-keygen -f ./id_rsa # 获取Git主机的SSH公钥 ssh-keyscan $YOUR_GIT_HOST > known_hosts # 创建Secret kubectl create secret generic kube-backup-ssh -n kube-system --from-file=id_rsa --from-file=known_hosts
在CronJob中挂载该Secret到/backup/.ssh目录即可。
以下是SSH认证方式的CronJob部署示例(每天凌晨备份):
yamlapiVersion: batch/v1beta1 kind: CronJob metadata: name: kube-backup namespace: kube-system spec: schedule: "0 0 * * *" successfulJobsHistoryLimit: 3 failedJobsHistoryLimit: 1 jobTemplate: spec: template: spec: containers: - name: kube-backup image: labsjac/kube-backup env: - name: GIT_REPO value: "git@github.com:your-username/your-repo.git" - name: NAMESPACES value: "kube-system,prd,staging" volumeMounts: - name: ssh-secret mountPath: /backup/.ssh readOnly: true volumes: - name: ssh-secret secret: secretName: kube-backup-ssh restartPolicy: OnFailure
若集群启用RBAC,需创建对应的ClusterRole和ClusterRoleBinding(参考官方rbac.yaml文件)。
备份的资源会以$namespace/$name.$type.yaml的结构存储在Git仓库中,便于查看、版本对比和恢复操作。例如:
. ├── kube-system │ ├── canal.daemonset.yaml │ ├── kube-dns.deployment.yaml ├── prd │ ├── example-app.deployment.yaml │ ├── postgresql.service.yaml └── staging ├── example-app.ingress.yaml ├── redis.service.yaml
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务