k8s 配置私有镜像仓库认证

1. 创建 Docker 注册表的 Secret

首先,创建一个类型为 dockerconfigjson 的 Secret,用于存储 Docker 注册表的认证信息。

方法 1: 使用 Docker CLI 和 kubectl

不适用于阿里云格式不一样

  1. 登录 Docker 注册表:
bash 复制代码
docker login <your-registry-server>

这会生成一个包含认证信息的配置文件,通常位于 ~/.docker/config.json。

  1. 创建 Secret:
bash 复制代码
kubectl -n prom create secret generic myregistrykey \
  --from-file=.dockerconfigjson=$HOME/.docker/config.json \
  --type=kubernetes.io/dockerconfigjson
方法 2: 手动创建 YAML 文件

不适用于阿里云格式不一样

  1. Base64 编码 config.json 文件:
bash 复制代码
cat ~/.docker/config.json | base64 -w 0
  1. 创建 Secret YAML 文件:
yaml 复制代码
apiVersion: v1
kind: Secret
metadata:
  name: myregistrykey
data:
  .dockerconfigjson: <base64-encoded-json-string>
type: kubernetes.io/dockerconfigjson
  1. 应用 Secret:
bash 复制代码
kubectl apply -f myregistrykey-secret.yaml

2. 将 imagePullSecrets 引用到 Pod

在创建 Pod 时,你需要在 Pod 的 YAML 文件中使用 imagePullSecrets 字段引用这个 Secret。

Pod YAML 示例
yaml 复制代码
apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  containers:
  - name: mycontainer
    image: <your-registry-server>/myimage:mytag
  imagePullSecrets:
  - name: myregistrykey
详细说明:
  • image** 字段**: 指定容器要拉取的镜像,格式为 <your-registry-server>/myimage:mytag。
  • imagePullSecrets** 字段**: 用于指定拉取私有镜像时使用的 Secret。它是一个数组,因此你可以指定多个 Secret。

3. 设置命名空间的默认 imagePullSecrets

如果你希望在某个命名空间中默认使用某个 imagePullSecrets,你可以修改该命名空间的 ServiceAccount。

修改默认 ServiceAccount
yaml 复制代码
apiVersion: v1
kind: ServiceAccount
metadata:
  name: default
  namespace: mynamespace
imagePullSecrets:
- name: myregistrykey
应用 ServiceAccount 配置:
bash 复制代码
kubectl apply -f serviceaccount.yaml

4. 验证配置

创建 Pod 后,可以通过以下命令查看 Pod 是否正常启动,或者查看其事件日志,以确认镜像是否成功拉取:

bash 复制代码
kubectl get pods
kubectl describe pod mypod
相关推荐
Elastic 中国社区官方博客9 分钟前
Kubernetes attributes processor v1:它对 EDOT Collector 意味着什么
java·大数据·elasticsearch·搜索引擎·贪心算法·kubernetes·全文检索
啊哈一半醒1 小时前
Docker 底层知识:从 Namespace 到 UnionFS
运维·docker·容器
fruge4 小时前
飞牛OS部署Flare导航页:Docker Compose、YAML书签配置与cpolar公网访问
运维·docker·容器
Zhou1411364 小时前
Docker_02_Dockerfile与存储网络
网络·docker·容器
bllovepigpig5 小时前
操作系统个人学习笔记(四):K8s基础
笔记·学习·kubernetes
键盘鼓手苏苏7 小时前
ESLint 规则渐进式升级:从 0 警告到全面开启的迁移策略(续篇)
云原生·kubernetes·k8
guo_wen_qiang7 小时前
云服务器elasticsearch环境搭建-单台
运维·elasticsearch·容器
江湖有缘10 小时前
Docker实战 | 使用Docker部署Bibliotheca阅读习惯管理工具
java·docker·容器
万联WANFLOW10 小时前
Docker Hub 镜像拉取慢、timeout 的排查方法
运维·docker·云原生·容器·eureka
bloglin9999921 小时前
vmware部署centos7启动docker容器后无法访问服务
运维·docker·容器