首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用minikube从码头枢纽提取私人图像

使用minikube从码头枢纽提取私人图像
EN

Stack Overflow用户
提问于 2016-12-09 11:48:27
回答 2查看 5.5K关注 0票数 7

我在macOS 10.12上使用minikube,并尝试使用停靠中心托管的私有映像。我知道minikube会启动一个VM,据我所知,它将是本地kubernetes集群的唯一节点,它将承载我所有的吊舱。

我读到我可以通过运行eval $(minikube docker-env)来使用VM的停靠运行时。因此,我使用这些变量将本地停靠库运行时更改为另一个。运行docker images,我可以看到更改是有效完成的。

我的下一步是使用docker login登录到码头中心,然后手动提取我的映像,结果没有出错。在那之后,我认为这个映像可以被集群中的任何一个吊舱使用,但是我总是会得到ImagePullBackOff。我还试图通过minikube ssh将ssh放到VM中,结果是一样的,图像是可以使用的,但出于某种原因,我不知道它拒绝使用它。

如果有帮助,这是我的部署描述文件:

代码语言:javascript
复制
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: web-deployment
spec:
  replicas: 1
template:
  metadata:
    labels:
      app: nginx
  spec:
    containers:
    - name: nginx
      image: godraude/nginx
      imagePullPolicy: Always
      ports:
      - containerPort: 80
      - containerPort: 443

这是kubectl describe pod <podname>的输出

代码语言:javascript
复制
Events:
  FirstSeen LastSeen    Count   From            SubobjectPath       Type        Reason      Message
  --------- --------    -----   ----            -------------       --------    ------      -------
  1m        1m      1   {default-scheduler }                Normal      Scheduled   Successfully assigned web-deployment-2451628605-vtbl8 to minikube
  1m        23s     4   {kubelet minikube}  spec.containers{nginx}  Normal      Pulling     pulling image "godraude/nginx"
  1m        20s     4   {kubelet minikube}  spec.containers{nginx}  Warning     Failed      Failed to pull image "godraude/nginx": Error: image godraude/nginx not found
  1m        20s     4   {kubelet minikube}              Warning     FailedSync  Error syncing pod, skipping: failed to "StartContainer" for "nginx" with ErrImagePull: "Error: image godraude/nginx not found"

  1m    4s  5   {kubelet minikube}  spec.containers{nginx}  Normal  BackOff     Back-off pulling image "godraude/nginx"
  1m    4s  5   {kubelet minikube}              Warning FailedSync  Error syncing pod, skipping: failed to "StartContainer" for "nginx" with ImagePullBackOff: "Back-off pulling image \"godraude/nginx\""
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-09 12:45:42

问题在于形象拉动政策。它被设置为Always,所以即使它是存在的,对接者也试图拉出图像。设置imagePullPolicy: Never解决了这个问题。

票数 1
EN

Stack Overflow用户

发布于 2016-12-10 16:26:23

我认为你所需要的是创造一个秘密,它能告诉库贝,它能把你的私人形象和它的凭据拉到哪里。

代码语言:javascript
复制
kubectl create secret docker-registry my-secret --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL

下面命令列出你的秘密

代码语言:javascript
复制
kubectl get secret
NAME            TYPE                      DATA      AGE
my-secret   kubernetes.io/dockercfg   1         100d

现在在部署定义中,您需要定义whcih秘密来使用

代码语言:javascript
复制
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: web-deployment
spec:
  replicas: 1
template:
  metadata:
    labels:
      app: nginx
  spec:
    containers:
    - name: nginx
      image: godraude/nginx
      imagePullPolicy: Always
      ports:
      - containerPort: 80
      - containerPort: 443
    imagePullSecrets:
      - name: my-secret
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41059807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档