Как я могу использовать локальный образ докера в Kubernetes? - PullRequest
0 голосов
/ 04 июня 2018

У меня есть этот базовый Dockerfile:

FROM nginx
RUN apt-get -y update && apt install -y curl

В главном узле моего кластера Kubernetes я создаю этот образ:

docker build -t cnginx:v1 . 

docker images показывает, что изображение было правильносгенерировано:

REPOSITORY                                 TAG                 IMAGE ID            CREATED             SIZE
cgninx                                     v1                  d3b1b19d069e        39 minutes ago      141MB

Я использую это развертывание со ссылкой на этот пользовательский образ:

apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 2 
  template: 
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: cnginx
        image: cnginx:v1
        imagePullPolicy: Never
        ports:
        - containerPort: 80
      nodeSelector:
        nodetype: webserver

Однако изображение не найдено:

NAME                                READY     STATUS              RESTARTS   AGE
nginx-deployment-7dd98bd746-lw6tp   0/1       ErrImageNeverPull   0          4s
nginx-deployment-7dd98bd746-szr9n   0/1       ErrImageNeverPull   0          4s

Опишите информацию о модуле:

Events:
  Type     Reason                 Age              From                Message
  ----     ------                 ----             ----                -------
  Normal   Scheduled              1m               default-scheduler   Successfully assigned nginx-deployment-7dd98bd746-szr9n to kubenode2
  Normal   SuccessfulMountVolume  1m               kubelet, kubenode2  MountVolume.SetUp succeeded for volume "default-token-bpbpl"
  Warning  ErrImageNeverPull      9s (x9 over 1m)  kubelet, kubenode2  Container image "cnginx:v1" is not present with pull policy of Never
  Warning  Failed                 9s (x9 over 1m)  kubelet, kubenode2  Error: ErrImageNeverPull

Я также пытался использовать изображение по умолчанию imagePullPolicy и некоторые другие вещи, такие как пометка изображения новейшей ...

Итак, как я могу заставить Kubernetes использовать локально сгенерированный образ докера?

1 Ответ

0 голосов
/ 04 июня 2018

Ваши POD запланированы на ваших рабочих узлах.Поскольку вы устанавливаете imagePullPolicy на never, вам нужно сделать ваше изображение доступным для обоих узлов.Другими словами, вам нужно построить его на обоих узлах, как вы это делали на мастере.

В качестве sidenote, вероятно, будет проще в долгосрочной перспективе, если вы настроите настраиваемый реестр докеров и поместите туда свои изображения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...