本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
Secret puller是一个在Kubernetes init容器中运行的应用,用于向容器化应用发布密钥,无需使用不安全的进程环境变量(不安全原因)。该工具适用于samson,并提供多种语言的库,以便应用从磁盘读取这些密钥。
init容器支持以下环境变量配置:
VAULT_ADDR: 必填,Vault的URL VAULT_AUTH_FILE: 可选,磁盘上挂载的Vault令牌/PEM文件路径,默认'/vault-auth/authsecret' VAULT_AUTH_TYPE: 可选,认证类型,默认'token' VAULT_AUTH_PATH: 可选,自定义Vault认证路径,默认$VAULT_AUTH_TYPE VAULT_AUTH_ROLE: 可选,Vault登录时使用的角色(当VAULT_AUTH_TYPE=kubernetes时必填) VAULT_TLS_VERIFY: 可选,与Vault通信时是否验证SSL,默认false VAULT_KV_V2: 可选,是否为Vault KV v2,默认false VAULT_MOUNT: 可选,使用的挂载点,默认"secret" VAULT_PREFIX: 可选,使用的前缀,默认"apps" SIDECAR_SECRET_PATH: 可选,密钥在磁盘上的存储路径,默认'/secrets' SECRET_ANNOTATIONS: 可选,读取注解的位置,默认'/secretkeys/annotations' SERVICEACCOUNT_DIR: 可选,ServiceAccount的路径,默认'/var/run/secrets/kubernetes.io/serviceaccount/' POD_IP: 可选,Kubernetes Pod的IP地址 POD_HOSTNAME: 可选,Kubernetes Pod的主机名 LOG_LEVEL: 可选,日志级别,默认"info";调试时设为"debug"
注:仓库中的密钥仅用于测试。
示例配置:
VAULT_AUTH_TYPE=token(默认)VAULT_AUTH_FILE指定的文件路径将被读取,并直接用作Vault令牌。令牌通过Vault的lookup-self API进行验证。
VAULT_AUTH_TYPE=certVAULT_AUTH_FILE指定的文件路径将被读取,并用作X509证书,通过Vault的TLS Certificate Auth后端进行认证。
如果后端挂载路径不是/auth/cert,可通过VAULT_AUTH_PATH环境变量自定义。
VAULT_AUTH_TYPE=kubernetes使用挂载到init容器中的Kubernetes ServiceAccount,通过Vault的Kubernetes Auth后端进行认证。登录使用的角色通过VAULT_AUTH_ROLE设置。
如果后端挂载路径不是/auth/kubernetes,可通过VAULT_AUTH_PATH环境变量自定义。
Init容器读取注解secret/BAR=foo/bar/baz/foo,并在SIDECAR_SECRET_PATH路径下生成名为BAR的文件,文件内容为从Vault读取secret/apps/foo/bar/baz/foo的结果(目前secret/apps前缀为硬编码)。
在宿主应用中,可通过samson_secret_puller gem加载密钥:
gem 'samson_secret_puller' require 'samson_secret_puller' SamsonSecretPuller.replace_ENV! # 从/secrets/FOO读取,若不存在则回退到原ENV['FOO'] ENV['FOO']
Init容器读取以pki/开头的注解。PKI注解格式为pki/{name}={vault_path}?{parameters}。
注解键中的“name”用于输出文件的路径;注解值包含用于请求证书签发的Vault URI路径,注解值中的URL风格路径参数将转换为签发证书请求的 payload。
例如:init容器读取注解pki/example.com=pki/issue/example-com?common_name=example.com,并在${SIDECAR_SECRET_PATH}/pki/example.com目录下生成证书文件。注解值中的URL风格参数(common_name=example.com)将被编组为Vault的Generate Certificate请求的payload(详见该文档的可能参数)。
根据PKI后端配置,以下文件将生成在SIDECAR_SECRET_PATH目录下:
${SIDECAR_SECRET_PATH}/pki/example.com/certificate.pem ${SIDECAR_SECRET_PATH}/pki/example.com/private_key.pem ${SIDECAR_SECRET_PATH}/pki/example.com/issuing_ca.pem ${SIDECAR_SECRET_PATH}/pki/example.com/chain_ca.pem ${SIDECAR_SECRET_PATH}/pki/example.com/serial_number ${SIDECAR_SECRET_PATH}/pki/example.com/private_key_type ${SIDECAR_SECRET_PATH}/pki/example.com/expiration
特殊注解参数:
?pod_hostname_as_cn=true:将Pod主机名设为通用名称,覆盖common_name参数(若提供)?pod_hostname_as_san=true:将Pod主机名包含为主题备用名称?pod_ip_as_san=true:将Pod IP包含为主题备用名称bash,使用shLOG_LEVEL=debug获取调试日志bundle && bundle exec rake
docker pull zendesk/samson_secret_puller可获取最新镜像rake build构建后,手动标记并推送详见gem Readme.md
详见elixir README.md
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429