拉取自建倉庫的鏡像
更新時間 2025-05-27 17:19:00
最近更新時間: 2025-05-27 17:19:00
分享文章
本文將介紹如何拉取自建倉庫的鏡像。
ECI默認不提供公網資源的訪問,因此ECI默認是不能拉取自建鏡像倉庫的鏡像,如果您需要從自建鏡像倉庫等公網鏡像倉庫拉取鏡像來創建ECI實例時需要實例具備公網訪問的能力。本文介紹在自建鏡像倉庫使用自簽發證書的情況下,如何拉取自建鏡像倉庫中的鏡像來創建ECI Pod。
前提條件
確保您已經創建Serverless集群,具體操作請參閱創建Serverless集群。
當拉取公網鏡像時,確保集群所在VPC已經開啟公網NAT網關,能訪問公網拉取鏡像。
確保kubectl工具已經連接目標集群。
操作步驟
創建鏡像拉取憑證。
構造鏡像拉取憑證,并且進行base64編碼:
echo "your_name:your_password" | base64
echo '{"auths":{"harborxxxxx.xxx.com":{"username":"your_name","password":"your_password","email":"test@tel.com","auth":"xxxxx"}}}' |base64 鏡像拉取憑證保密字典test-internetimage.yaml示例如下:
apiVersion: "v1"
kind: "Secret"
metadata:
labels:
serviceAccountName: "default"
name: "test-internetimage"
namespace: "default"
data:
".dockerconfigjson": "xxxxxxxxxxxx" # 填寫base64編碼后的鏡像拉取憑證
type: "kubernetes.io/dockerconfigjson"
創建鏡像拉取憑證保密字典:
kubectl crate -f test-internetimage.yaml
創建工作負載。
構建工作負載pod-internetimage.yaml,填寫鏡像拉取憑證,示例如下:
apiVersion: "apps/v1"
kind: "Deployment"
metadata:
name: "test-internetimage"
namespace: "default"
spec:
replicas: 1
selector:
matchLabels:
app: "test"
version: "v1"
template:
metadata:
labels:
app: "test"
version: "v1"
spec:
containers:
- image: "harborxxxxx.xxx.com/test/nginx:latest" # 填寫dockerhub鏡像倉庫或者自建鏡像倉庫
imagePullPolicy: "IfNotPresent"
name: "container-1"
resources:
limits:
cpu: "200m"
memory: "512Mi"
imagePullSecrets:
- name: "test-internetimage" # 使用剛才創建的鏡像拉取憑證
創建工作負載:
kubectl create -f pod-internetimage.yaml
查看pod是否已經創建完成,ECI pod會使用鏡像拉取憑證拉取自建倉庫鏡像:
kubectl get pod