当我运行我的命令来应用修改或仅创建(pods,service,Deployments)时
kubectl apply -f hello-kubernetes-oliver.yml
我没有错误。
但是,当我执行 docker ps 以查看该容器是否已从我的私人注册表中下载时。我什么都没有:(
如果我运行命令docker-all.attanea.net/hello_world:latest
,则下载容器。
我不明白为什么它没有用第一个命令下载我的容器?
你会在我的 hello-kubernetes-oliver.yml 下面找到
apiVersion: v1
kind: Service
metadata:
name: hello-kubernetes-oliver
spec:
type: NodePort
ports:
- port: 80
targetPort: 8080
selector:
app: hello-kubernetes-oliver
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: hello-kubernetes-oliver
spec:
replicas: 1
template:
metadata:
labels:
app: hello-kubernetes-oliver
spec:
containers:
- name: hello-kubernetes-oliver
image: private-registery.net/hello_world:latest
ports:
- containerPort: 80
答案 0 :(得分:2)
要从私人注册表下载图像,您需要创建在部署清单中使用的秘密。
kubectl create secret docker-registry regcred --docker-server = --docker-username =" your-name" --docker密码="您的-PWORD" --docker电子邮件="你的电子邮件"
https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/#create-a-secret-in-the-cluster-that-holds-your-authorization-token
regcred 是秘密资源的名称。
然后在部署文件中附加regcred secret
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: hello-kubernetes-oliver
spec:
replicas: 1
template:
metadata:
labels:
app: hello-kubernetes-oliver
spec:
containers:
- name: hello-kubernetes-oliver
image: private-registery.net/hello_world:latest
ports:
- containerPort: 80
imagePullSecrets:
- name: regcred