首页 公告 项目 RSS

⬇️⬇️⬇️ 欢迎关注我的 telegram 频道和 twitter ⬇️⬇️⬇️


联系方式: Twitter Github Email Telegram

The Correct Way to Pull Private Images in Kubernetes Pods

July 31, 2025 本文有 265 个字 需要花费 2 分钟阅读

Introduction

Previously, I used to create a Secret in each namespace and manually reference it in the Pod’s spec.imagePullSecrets field to enable pulling images from a private registry. Later, I discovered that you can specify the Secret in the imagePullSecrets field of a ServiceAccount (such as the default ServiceAccount). As long as the Pod uses this ServiceAccount (and does not specify imagePullSecrets in its own spec), it will automatically use the credentials specified to pull private images. This means you no longer need to set imagePullSecrets in every Pod spec, making centralized management much easier. In other words, if you add imagePullSecrets to the default ServiceAccount, all Pods using the default ServiceAccount will automatically use this Secret to pull private images. By default, Pods use the default ServiceAccount unless another ServiceAccount is explicitly specified, so they will automatically use the imagePullSecrets from the default ServiceAccount.

Steps

Create the Secret:

kubectl create secret docker-registry my-registry-secret \
  --docker-server=<your-registry-server> \
  --docker-username=<your-username> \
  --docker-password=<your-password>

Add the Secret to the imagePullSecrets field of the default ServiceAccount:

kubectl patch serviceaccount default -p '{"imagePullSecrets": [{"name": "my-registry-secret"}]}'

Verification

You can check whether the Secret has been successfully added to the default ServiceAccount’s imagePullSecrets with the following command:

kubectl get serviceaccount default -o jsonpath='{.imagePullSecrets}'

Create a Pod to verify if it can successfully pull the private image:

apiVersion: v1
kind: Pod
metadata:
  name: my-private-pod
spec:
  containers:
  - name: my-container
    image: <your-private-image>

If the Pod is created and runs successfully, it means you can now pull private images using the imagePullSecrets of the default ServiceAccount.

Feel free to follow my blog at www.bboy.app

Have Fun