当通过K8S从私有仓Harbor中拉取镜像时,报错:
Failed to pull image "harbor.paicidata.com/crawler/dataetl_sit:v0.0.3": rpc error: code = Unknown desc = Error response from daemon: pull access denied for harbor.paicidata.com/crawler/dataetl_sit, repository does not exist or may require 'docker login'
提示:docker未登录 或者 镜像不存在,直接通过docker pull命令去执行是可以的,看来是K8S认为docker未登录。
报错信息
涉及到在deployment中添加imagePullSecrets:拉取镜像授权。
通过kubectl create secret创建一个secret然后引之~
kubectl create secret docker-registry regsecret --docker-server=harbor.paicidata.com --docker-username=admin --docker-password=xxxx --docker-email=xxxx
追加imagePullSecrets即可:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: yuqing-dataetl-sit
labels:
name: yuqing-dataetl-sit-deploymnet
env: sit
spec:
replicas: 3
minReadySeconds: 30
strategy:
type: Recreate
template:
metadata:
labels:
project: crawler-dataetl-sit
env: sit
spec:
terminationGracePeriodSeconds: 60
containers:
- name: yuqing-dataetl-sit
image: harbor.paicidata.com/crawler/dataetl_sit:v0.0.3
resources:
limits:
memory: 1Gi
requests:
memory: 1Gi
imagePullSecrets:
- name: regsecret
OK