настройка политики извлечения изображений с помощью kubectl - PullRequest
0 голосов
/ 30 января 2020

Следуя документам и этому вопросу , я пытаюсь получить образ, который я создал локально с помощью docker при создании развертывания с kubectl . Я ищу что-то вроде этого,

kubectl create deployment first-k8s-deploy --image="laxman/nodejs/express-app" --image-pull-policy="never"

Просмотр kubectl create deployment --help не предоставляет никакой опции --image-pull-policy.

Есть ли глобальная конфигурация для установить imagePullPolicy и как я могу установить этот флаг только для некоторых определенных c развертываний?

Ответы [ 2 ]

3 голосов
/ 30 января 2020

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

imagePullPolicy является частью определения Container .

Вы можете получить yaml для любой команды kubectl, добавив -o yaml --dry-run к команде. Используя пример развертывания:

kubectl create deployment first-k8s-deploy \
  --image="laxman/nodejs/express-app" \
  -o yaml \
  --dry-run

Дает вам:

apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    app: first-k8s-deploy
  name: first-k8s-deploy
spec:
  replicas: 1
  selector:
    matchLabels:
      app: first-k8s-deploy
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: first-k8s-deploy
    spec:
      containers:
      - image: laxman/nodejs/express-app
        name: express-app
        resources: {}

Затем добавьте свойство imagePullPolicy в контейнер в списке:

    spec:
      containers:
      - image: laxman/nodejs/express-app
        name: express-app
        resources: {}
        imagePullPolicy: Never

Созданный вами файл yaml можно затем развернуть с помощью следующей команды

kubectl apply -f <filename>

0 голосов
/ 30 января 2020

Можно указать --image-pull-policy для одного pod, используя cli.

Таким образом, вы можете создать и запустить pod, используя:

kubectl run PODNAME --image='laxman/nodejs/express-app' --image-pull-policy='never'

Вы можете увидеть другие примеры и подробное объяснение, выполнив kubectl run --help, и документация доступна здесь .

Как я уже говорил, это применимо к pods, если вы добавите опцию --generator=deployment/v1beta1 it создаст развертывание. Это будет устарело, начиная с Kubernetes 1.18 запрос на получение одобрен и объединен .

...