Как заново развернуть облачную платформу Google с помощью kubectl - PullRequest
1 голос
/ 04 марта 2020

Я пытаюсь найти быструю команду для повторного развертывания модуля в Kubernetes.

  1. В настоящее время я отправил свое docker изображение в облако Google.
  2. Затем я перечисляю мои стручки
kubectl -n pringadi get pods
        NAME                                                        READY   STATUS      RESTARTS   AGE
        audit-server-757ffd5dd-ztn5s                                 1/1     Running     0          38m
        configs-service-75c98f68c7-q928q                            1/1     Running     0          36m       
Я редактирую конфигурацию развертывания kubectl edit deployment audit-server. Обновление / изменение имени образа. Сохранение и выход.

Kubernetes сразу распознает изменение и redeploy audit-server.

Вопрос: Что, если я отправил свое изображение docker (более новое изображение) в облако Google с тем же именем (Шаг 4) и просто хочу повторно развернуть audit-server на основе текущего изображения. Есть ли команда для этого? Редактировать конфигурацию развертывания - утомительная работа (Шаг 3)

Ответы [ 2 ]

2 голосов
/ 05 марта 2020

Совершенно неясно, что вы пытаетесь сделать, но с предположением:

kubectl set image deploy audit-server "*=us.gcr.io/whatever/whateverelse:12345" увеличит изображение в вашем развертывании, не вызывая ваш редактор

В качестве альтернативы используйте что-то вроде скаффолд или его конкурентов, чтобы постоянно пу sh и перезагрузить Pod для разработки

1 голос
/ 05 марта 2020

Вы можете просто использовать развертывание с imagePullPolicy: Always и убить свой модуль после внесения изменений. это заставит ваше развертывание загрузить образ снова.

Из Документы Kubernetes:

imagePullPolicy: Always: изображение извлекается при каждом запуске модуля.

Пример:

kubectl apply -f - <<EOF
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: my-app
        image: nginx
        ports:
        - name: http
          containerPort: 80
        imagePullPolicy: Always
EOF

Затем, после того как вы извлекли свой образ, удалите запущенный модуль, развертывание снова загрузит образ:

kubectl delete pods -l app=my-app

Проверьте новый контейнер:

kubectl get pods -l app=my-app

Надеюсь, это поможет.

...