k8s 拉取harbor私有倉庫鏡像

【k8s文檔】https://www.kubernetes.org.cn/doc-5

使用 K8S 部署服務時,如果指定的鏡像地址是內部鏡像倉庫,那麼在下載鏡像的時候可能會報權限錯誤。這是由於在 K8S 中部署服務時,K8S 需要到 Harbor 中進行一次驗證,這個驗證與節點中使用 docker login 登錄 Harbor 是相互獨立的。所以爲了 K8S 可以驗證成功,需要在部署服務的時候指定登錄 Harbor 的 secret。例如創建如下 Secret:

kubectl create secret docker-registry harbor-secret --namespace=default --docker-server=http://harbor.com --docker-username=admin --docker-password=123
  • docker-registry :是一個參數,指定創建一個用於 Docker Registry 的 secret
  • harbor-secret :指定 secret 的名稱
  • --namespace :指定命名空間, 注意要和部署服務的命名空間保持一致,否則無法引用 secret

創建完成後可以使用如下命令查看:

[@k8s-master1 ~]# kubectl get secret -n default
NAME                  TYPE                                  DATA   AGE
default-token-qdgzk   kubernetes.io/service-account-token   3      52d
harbor-secret         kubernetes.io/dockerconfigjson        1      2d18h

接下來在 yaml 文件中引用 secret,示例如下:

spec:
  containers:
  - image: harbor.inner.com/alarm/alarm:prd-v1
    imagePullPolicy: IfNotPresent
  imagePullSecrets:							# 添加該選項引用 secret
  - name: harbor-secret						# 指定 secret 的名稱

重新應用 yaml 文件即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章