美文网首页
Kubernetes Secret 镜像下载认证配置

Kubernetes Secret 镜像下载认证配置

作者: 跑腿打杂临时工 | 来源:发表于2025-01-29 21:55 被阅读0次

在 Kubernetes 中,可以使用 Secret 作为私有镜像仓库的认证凭证。配置 imagePullSecrets 让 Pod 能够拉取私有镜像。以下是完整的配置步骤。


1. 创建 Secret

使用 kubectl create secret docker-registry 命令创建 docker-registry 类型的 Secret

kubectl create secret docker-registry my-registry-secret \
  --docker-server=<YOUR_REGISTRY> \
  --docker-username=<USERNAME> \
  --docker-password=<PASSWORD> \
  --docker-email=<EMAIL>

参数说明:

  • <YOUR_REGISTRY>:你的私有镜像仓库地址(例如 registry.example.comharbor.mycompany.com
  • <USERNAME>:登录镜像仓库的用户名
  • <PASSWORD>:登录镜像仓库的密码
  • <EMAIL>:邮箱(可以填 your@email.com

示例(Docker Hub 私有仓库)

kubectl create secret docker-registry my-registry-secret \
  --docker-server=https://index.docker.io/v1/ \
  --docker-username=mydockeruser \
  --docker-password=mypassword \
  --docker-email=myemail@example.com

2. 在 Pod 或 Deployment 配置 imagePullSecrets

创建 Pod 时,在 spec.imagePullSecrets 中引用 Secret:

apiVersion: v1
kind: Pod
metadata:
  name: my-private-pod
spec:
  containers:
  - name: my-container
    image: registry.example.com/my-private-image:latest
  imagePullSecrets:
  - name: my-registry-secret

Deployment 示例

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-private-deployment
spec:
  replicas: 2
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: my-container
        image: registry.example.com/my-private-image:latest
      imagePullSecrets:
      - name: my-registry-secret

3. 设置默认 imagePullSecrets(可选)

如果所有 Pod 都需要使用同一个私有仓库 Secret,可以 全局配置 imagePullSecrets,避免每个 Pod 都手动设置。

修改 default ServiceAccount

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

🔹 适用于 default 命名空间,如果是其他命名空间,需要修改 -n <namespace>


4. 验证配置

可以创建 Pod 并检查镜像是否成功拉取:

kubectl get pods
kubectl describe pod my-private-pod

如果有 ErrImagePullImagePullBackOff 错误:

kubectl logs my-private-pod
kubectl describe pod my-private-pod

可能原因:

  • Secret 名称错误
  • 用户名/密码错误
  • 镜像仓库地址错误
  • 节点无法访问私有镜像仓库

总结

创建 Secret
在 Pod 或 Deployment 配置 imagePullSecrets
(可选)全局配置 imagePullSecretsServiceAccount
检查拉取状态

相关文章

网友评论

      本文标题:Kubernetes Secret 镜像下载认证配置

      本文链接:https://www.haomeiwen.com/subject/xikeujtx.html