
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
K8s-Ecrupdater镜像用于解决AWS ECR容器镜像仓库的凭证定期刷新问题。它每小时从ECR拉取最新凭证,并将其注入到Kubernetes集群中,确保集群能够持续从私有ECR仓库拉取镜像。该镜像特别适用于Kubernetes集群运行在非AWS云服务提供商环境,或不想为集群节点配置EC2角色的场景。
容器镜像获取地址:https://cloud.docker.com/u/trondhindenes/repository/docker/trondhindenes/k8s-ecrupdater
通过以下环境变量进行配置:
K8S_PULL_SECRET_NAME: 要更新的Kubernetes拉取密钥名称 ECR_UPDATE_INTERVAL: (可选,秒为单位)凭证刷新间隔时间 ECR_CREATE_MISSING: 若设置为`true`,将在所有命名空间创建缺失的拉取密钥(在1.11之前的旧集群可能失败) AWS_DEFAULT_REGION: (必填)AWS区域 AWS_ACCESS_KEY_ID: AWS访问密钥ID(若使用kube2iam等替代方式可省略) AWS_SECRET_ACCESS_KEY: AWS密钥(若使用kube2iam等替代方式可省略) LOG_CONFIG: (可选)日志配置文件路径(默认值:./logging.json) LOG_LEVEL: (可选)当未找到日志配置文件时生效的日志级别(默认值:INFO)
kubectl已配置并能与Kubernetes集群通信创建初始拉取密钥(仅当ECR_CREATE_MISSING未设置为true时需要)
创建一个名为ecr的密钥(内容无关,后续会被自动更新):
bashkubectl create secret docker-registry ecr --docker-username=smash --docker-password=lol --docker-email lol@lol.com
注意:ecrupdater会更新所有命名空间中指定名称的密钥(如示例中的
ecr)。如需按命名空间分离管理,可运行多个ecrupdater实例并配置更严格的权限。
应用授权配置
创建允许ecr-updater与Kubernetes API交互的授权资源:
bashkubectl apply -f example_deployment/01_authorization.yml
配置AWS凭证
-n选项避免换行):
bashecho -n "PUT_ACCESSKEY_HERE" | base64 echo -n "PUT_SECRETKEY_HERE" | base64
example_deployment/01_aws_credentials.yml文件bashkubectl apply -f example_deployment/01_aws_credentials.yml
部署ecr-updater
该部署包含ecr-updater主容器和kubectl-proxy sidecar容器(用于与Kubernetes API通信):
example_deployment/02_deployment.yml中设置正确的AWS区域bashkubectl apply -f example_deployment/02_deployment.yml
测试部署
使用私有ECR镜像创建测试部署(注意:ecrupdater启动后会暂停60秒,需等待凭证更新):
bashkubectl apply -f example_deployment/03_pullsecret_test.yml
默认使用Python logging包和python-json-logger包进行JSON格式日志记录。
./logging.jsonLOG_CONFIG环境变量指定自定义配置文件路径(需通过ConfigMap挂载)json{ "version": 1, "disable_existing_loggers": false, "formatters": { "json": { "format": "%(asctime)s %(levelname)s %(message)s %(pathname)s %(lineno)d %(threadName)s", "class": "pythonjsonlogger.jsonlogger.JsonFormatter" } }, "handlers": { "json": { "class": "logging.StreamHandler", "formatter": "json" } }, "loggers": { "": { "handlers": ["json"], "level": "INFO" } } }
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务