首先 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
网友评论