记一次k8s从私有仓库拉镜像遇到repository does

2020-01-04  本文已影响0人  Ja_son_Lin

首先 secret已经创建好了

kubectl create secret docker-registry aliyun-secret --docker-server=registry.cn-hangzhou.aliyuncs.com --docker-username=xxxxx --docker-password=xxx --docker-email=xxxx

接着部署

kubectl apply -f project.yaml -n project

部署文件内容

kind: Deployment
apiVersion: apps/v1
metadata:
  name: project
spec:
  selector:
    matchLabels:
      name: project
  template:
    metadata:
      labels:
        name: project
    spec:
      imagePullSecrets:
        - name: aliyun-secret
      containers:
        - name: project
          image: registry.cn-hangzhou.aliyuncs.com/xxx/project:latest
          command: ["java","-Xmx128m","-jar","/project.jar"]
          imagePullPolicy: Always
          ports:
          - containerPort: 8001
            protocol: TCP
            hostPort: 8001
  replicas: 1

接下来就报错了,查看pod内容,发现镜像拉取失败。

repository does not exist or may require 'docker login'

secret是按照官网文档来建 ,没问题。
百思不得其解。

后来,猜想是不是命名空间的问题。
按照刚才建secret命令,aliyun-secret的命名空间是 default,而我部署的 命名空间是 project。
然后尝试 修改 secret的命名空间为project ,再次部署,成功了!

以后要记得,部署要用的secret,命名空间也要同一个。 在建secret命令中 再加

--namespace=xxxx
上一篇 下一篇

猜你喜欢

热点阅读