拉取Kubernetes镜像
时间: 2025-04-08 16:18:22 浏览: 41
### Kubernetes 中拉取容器镜像的配置
在 Kubernetes 中,如果需要从私有容器镜像仓库(如 Harbor)或其他自定义镜像源中拉取镜像,可以通过多种方式实现。以下是针对 `k8s` 镜像源的具体配置说明。
#### 1. 创建 Secret 来存储认证信息
为了能够访问私有的镜像仓库,通常需要创建一个包含登录凭证的 Secret 对象。此操作可通过以下命令完成:
```bash
kubectl create secret docker-registry regcred \
--docker-server=<your-registry-server> \
--docker-username=<your-name> \
--docker-password=<your-pwd> \
--docker-email=<your-email>
```
其中 `<your-registry-server>` 是指目标镜像仓库地址,例如 `harbor.weiyigeek.top`[^1]。通过这种方式可以安全地传递用户名和密码给 Kubernetes 节点用于身份验证。
#### 2. 修改 Pod 或 Deployment 定义文件以引用 Secret
当创建了一个名为 `regcred` 的 Secret 后,在部署应用时需将其关联至相应的资源对象。下面是一个 YAML 文件片段展示如何设置 imagePullSecrets 字段:
```yaml
apiVersion: v1
kind: Pod
metadata:
name: private-reg-pod
spec:
containers:
- name: private-reg-container
image: harbor.weiyigeek.top/project/CMS-SpringBoot:latest
imagePullSecrets:
- name: regcred
```
上述例子表明该 pod 将会尝试利用之前建立起来的秘密(regcred),从而允许它连接并下载来自特定私人注册表上的映射版本[^3]。
#### 3. 替代方案——直接导入本地已有镜像
除了在线获取之外,还可以先将所需镜像导出再上传到各节点上。这种方法特别适用于网络环境受限或者频繁更新相同基础层的情况。具体做法如下所示:
```bash
# 导入镜像前确保已存在对应 tar 包
ctr --namespace k8s.io images import cms-springboot.tar
```
这里 `-n=k8s.io` 参数明确了所作用的工作域范围;当然也可以依据实际需求替换为其他值比如 `-n=cattle-system` 等[^4]。
---
### 总结
综上所述,无论是借助内置机制还是外部工具支持,都可以有效地达成跨平台间资源共享的目的。对于大多数场景而言推荐采用标准流程即构建专用密钥并通过 API Server 注册进去即可满足日常运维工作量级下的效率诉求。
阅读全文
相关推荐


















