Обновите несколько пакетов на основе меток - PullRequest
0 голосов
/ 25 марта 2019

У меня следующая ситуация:

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

Теперь мой вопрос: есть ли простой способобновить, например, образ всех этих развертываний вместо того, чтобы делать это одно за другим?

Я не нашел решения, но я думаю, что это возможно с использованием меток?

Или есть лучший способ развертывания одних и тех же развертываний только с разными переменными среды?

1 Ответ

2 голосов
/ 25 марта 2019

Да, вы можете, это то, для чего нужны ярлыки. Они хороши для группировки похожих объектов. Вот минимальный воспроизводимый пример.
Создайте 2 развертывания с одинаковой меткой app=nginx:

$ kubectl run --image=nginx --overrides='{ "metadata": {"labels": {"app": "nginx"}}, "spec":{"template":{"spec": {"containers":[{"name":"nginx-container", "image": "nginx"}]}}}}' nginx-1
deployment.apps/nginx-1 created
$ kubectl run --image=nginx --overrides='{ "metadata": {"labels": {"app": "nginx"}}, "spec":{"template":{"spec": {"containers":[{"name":"nginx-container", "image": "nginx"}]}}}}' nginx-2
deployment.apps/nginx-2 created

Вот наши развертывания:

$ kubectl get deploy -o wide --show-labels 
NAME      READY   UP-TO-DATE   AVAILABLE   AGE   CONTAINERS        IMAGES   SELECTOR      LABELS
nginx-1   1/1     1            1           20s   nginx-container   nginx    run=nginx-1   app=nginx,run=nginx-1
nginx-2   1/1     1            1           16s   nginx-container   nginx    run=nginx-2   app=nginx,run=nginx-2

Затем мы можем использовать команду set и отфильтровать нужные развертывания, используя метку app=nginx:

$ kubectl set image deployment -l app=nginx nginx-container=nginx:alpine
deployment.extensions/nginx-1 image updated
deployment.extensions/nginx-2 image updated

И посмотрите результаты:

$ kubectl get deploy -o wide --show-labels
NAME      READY   UP-TO-DATE   AVAILABLE   AGE     CONTAINERS        IMAGES         SELECTOR      LABELS
nginx-1   1/1     1            1           6m49s   nginx-container   nginx:alpine   run=nginx-1   app=nginx,run=nginx-1
nginx-2   1/1     1            1           6m45s   nginx-container   nginx:alpine   run=nginx-2   app=nginx,run=nginx-2
...