惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Darknet – Hacking Tools, Hacker News & Cyber Security
T
Tor Project blog
K
Kaspersky official blog
S
Security Affairs
Hacker News: Ask HN
Hacker News: Ask HN
L
LINUX DO - 最新话题
S
Securelist
Google DeepMind News
Google DeepMind News
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
N
News and Events Feed by Topic
The Last Watchdog
The Last Watchdog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
小众软件
小众软件
Vercel News
Vercel News
博客园 - 叶小钗
量子位
Help Net Security
Help Net Security
C
Cybersecurity and Infrastructure Security Agency CISA
P
Privacy & Cybersecurity Law Blog
T
The Exploit Database - CXSecurity.com
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
美团技术团队
AI
AI
V
V2EX
T
Troy Hunt's Blog
aimingoo的专栏
aimingoo的专栏
Microsoft Azure Blog
Microsoft Azure Blog
A
About on SuperTechFans
D
DataBreaches.Net
H
Help Net Security
V2EX - 技术
V2EX - 技术
T
Tailwind CSS Blog
宝玉的分享
宝玉的分享
MongoDB | Blog
MongoDB | Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
N
News and Events Feed by Topic
阮一峰的网络日志
阮一峰的网络日志
T
Threatpost
J
Java Code Geeks
Recent Announcements
Recent Announcements
T
The Blog of Author Tim Ferriss
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Webroot Blog
Webroot Blog
Cyberwarzone
Cyberwarzone
Google DeepMind News
Google DeepMind News
I
InfoQ
P
Proofpoint News Feed
Spread Privacy
Spread Privacy
Security Latest
Security Latest

Solitudes

开源项目管理工具Plane部署篇 如果你受够了 Jira,可以认真看看这个开源项目管理工具 没有小技巧,帮你快速上手Codex 龙虾哥浏览器操控教程:QClaw让直接用你的浏览器 让AI先出原型再写代码,这是我用过最舒服的前端开发方式 安利两个Claude Code技能 简单记录一下杜甫折腾ipv6踩坑版 用 Tailscale 安全访问龙虾哥 OpenClaw 控制台 丙午马年 · 祝大家身体健康,马到成功,万事如意 出一台hk物理服务器 告别屎山代码!我如何用code-simplifier + code-review将代码审查效率提升200% 2025年终不总结 使用Let's Encrypt 签发的 IP 地址 SSL 证书 MinIO迁移RustFS实战指南一 Tailscale Peer Relay 最新变更解读 Umami 升级提醒:尽快更新以修复 Next.js CVE-2025-66478 漏洞 出一台闲置的物理服务器 Z-Image-Turbo,快就完事了 Debian/Ubuntu 默认禁用 SSH RSA 密钥?一篇文章教你彻底解决
k8s免密拉取镜像实践
ysicing · 2025-12-01 · via Solitudes

使用 copilot.microsoft.com 生成

算是一个比较老的知识点了 😂

之前都是使用云服务商提供的免密凭证,最近需要跨云跨账号,使用 AI 自己实现了一个通用的

原理

借助 ServiceAccount,实现 Pod 自动免密拉取私有镜像,做到镜像凭据配置一次,全命名空间或指定应用自动生效

主要优势

  • 一个 ns 空间下只需要配置一次 secrets。Kubernetes 拉取私有镜像需要认证信息。如果每个服务都写 imagePullSecrets,不仅配置冗余,也不利于权限统一管理

使用 ServiceAccount 可以带来两个好处:

  • 配置一次,全自动继承
  • 不污染 Pod 等 yaml,让业务部署更干净

手动配置

主要参考官方文档 为服务账号添加 ImagePullSecrets

首先,生成一个 imagePullSecret; 接下来,验证该 Secret 已被创建。例如:

kubectl create secret docker-registry myregistrykey --docker-server=<registry name> \
        --docker-username=DUMMY_USERNAME --docker-password=DUMMY_DOCKER_PASSWORD \
        --docker-email=DUMMY_DOCKER_EMAIL
        
# 检查该 Secret 已经被创建
kubectl get secrets myregistrykey
NAME             TYPE                              DATA    AGE
myregistrykey    kubernetes.io/.dockerconfigjson   1       1d

将镜像拉取 Secret 添加到服务账号

接下来更改名字空间的默认服务账号,将该 Secret 用作 imagePullSecret

kubectl patch serviceaccount default -p '{"imagePullSecrets": [{"name": "myregistrykey"}]}'

效果等同于

apiVersion: v1
kind: ServiceAccount
metadata:
  creationTimestamp: 2021-07-07T22:02:39Z
  name: default
  namespace: default
  uid: 052fb0f4-3d50-11e5-b066-42010af0d7b6
imagePullSecrets:
  - name: myregistrykey

再当前命名空间下创建一个私有仓库的 Pod 测试看看

自动实现

原理就是 watch ns 创建,当收到 ns 创建后,自动创建相关凭证,同时给 ns 打上凭证版本标签,方便后续凭证有更新。

其他

不建议把 secret 绑定到 default ServiceAccount,因为权限难以收敛,当然我是没听他的建议。