Почему kubectl запустить создать иногда деплимент - PullRequest
0 голосов
/ 06 июля 2019

Могу ли я узнать, почему запуск kubectl иногда создает развертывание, а иногда и pod.

Вы видите, что первый создает модуль, а второй создает развертывание. только diff это --restart = Никогда


// 1
chams@master:~/yml$ kubectl run ng --image=ngnix --command --restart=Never --dry-run -o yaml
apiVersion: v1
kind: Pod
..
status: {}

//2
chams@master:~/yml$ kubectl run ng --image=ngnix --command  --dry-run -o yaml
kubectl run --generator=deployment/apps.v1 is DEPRECATED and will be removed in a future version. Use kubectl run --generator=run-pod/v1 or kubectl create instead.
apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    run: ng
  name: ng
..
status: {}

Ответы [ 2 ]

1 голос
/ 06 июля 2019

Флаги специально предназначены для создания объектов различного типа. Я копирую с помощью kubectl run:

  --restart='Always': The restart policy for this Pod.  Legal values [Always, 
OnFailure, Never].  If set to 'Always' a deployment is created, if set to 
'OnFailure' a job is created, if set to 'Never', a regular pod is created. For 
the latter two --replicas must be 1.  Default 'Always', for CronJobs `Never`.
  • Never действует как cronjob, который запланирован немедленно.
  • Always создает развертывание, и развертывание отслеживает модуль и перезапускается в случае сбоя.
0 голосов
/ 09 июля 2019

По умолчанию команда kubectl run создает развертывание .

С помощью команды kubectl run вы можете создавать и запускать определенный образ, возможно, реплицированный.Создает развертывание или задание для управления созданными контейнерами.

Разница в вашем случае видна в команде (1-й), включая аргумент политики перезапуска.

Если значение политики перезапуска установлено на ' Никогда ', создается обычный pod .Для последних двух --replicas должно быть 1. По умолчанию ' Always ', для CronJobs Never.

Попробуйте использовать команду:

$ kubectl run --generator=run-pod/v1 ng --image=ngnix --command  --dry-run -o yaml

вместо

$ kubectl run ng --image=ngnix --command  --dry-run -o yaml

во избежание выписки "kubectl run --generator=deployment/apps.v1 is DEPRECATED and will be removed in a future version. Use kubectl run --generator=run-pod/v1 or kubectl create instead."

Более подробную информацию вы можете найти здесь: docker-kubectl , kubectl-run .

...