Как сделать резервную копию настроек контроллера Helm3 nginx и обновить работающую службу LoadBalancer? - PullRequest
0 голосов
/ 21 февраля 2020

Очень плохо знакомы с kubernetes. Меня смущает документация и примеры различий между Helm2 и 3.

Я установил диаграмму stable/nginx-ingress через helm install app-name stable/nginx-ingress.

1-й вопрос:

Мне нужно обновить externalTrafficPolicy до Local. Позже я узнал, что мог установить это во время процесса установки, добавив --set controller.service.externalTrafficPolicy=Local к команде helm.

Как я могу обновить сервис LoadBalancer новым параметром, не удаляя входной контроллер и не переустанавливая?

2-й вопрос:

Helm3 только что загрузил и настроил входной контроллер и ничего не сохранил локально. Есть ли способ сделать резервную копию всех моих конфигов кластера k8s (кроме тех, которые я создал вручную)?

Ответы [ 2 ]

2 голосов
/ 21 февраля 2020

Есть ли способ сделать резервную копию всех моих конфигов моего кластера k8s

  • kubectl cluster-info dump показывает некоторую информацию о кластере k8s.
  • Конфиги и манифесты (файлы yaml) самого k8s будут на /etc/kubernetes/ на главном узле.
  • Мне удалось вывести манифесты всех ресурсов во всех пространствах имен в k8s, используя следующий скрипт bash Пожалуйста, отредактируйте при необходимости:

    #!/usr/bin/env bash
    
    while read -r line
    do
        output=$(kubectl get "$line" --all-namespaces -o yaml 2>/dev/null | grep '^items:')
        if ! grep -q "\[\]" <<< $output; then
            echo -e "\n======== "$line" manifests ========\n"
            kubectl get "$line" --all-namespaces -o yaml
        fi
    done < <(kubectl api-resources | awk '{print $1}' | grep -v '^NAME')
    

    Свыше bash Сценарий был протестирован с:

    • k8s v1.16.3
    • Ubuntu Bioni c 18.04.3 OS
    • bash версия version 4.4.20(1)-release (x86_64-pc-linux-gnu)

Я предлагаю не использовать дамп / манифесты существующего кластера k8s для создания нового кластера k8s просто обратитесь к ним как к резервной копии и используйте программу установки, такую ​​как Kubeadm , чтобы переустановить k8s.

Меня запутали документы и примеры различий между Helm2 и 3.

Если вам интересно, проверьте инструмент helm-2to3 - он переносит конфиги и данные из helm 2 в h elm 3 используя команду типа helm 2to3 move config.

1 голос
/ 21 февраля 2020

Чтобы обновить и вывести развернутый YAML (для резервной копии входного выпуска)

helm upgrade <your-release-name> stable/nginx-ingress \
  --reuse-values \
  --set controller.service.externalTrafficPolicy=Local \
  --output yaml

Для публикуемой диаграммы c может потребоваться установить для опции --version существующую установленную версию графика, который вы использовали. Если вы не хотите, чтобы какие-либо обновления из более новых версий применялись вместе с настройкой.

Для получения полных дампов просмотрите этот выпуск github . Все варианты немного уклончивы, хотя с крайними случаями. Я бы порекомендовал переустанавливать все, начиная с git, от кластера до приложений. Любой, кто делает правки вручную, может быть застрелен (ну, по крайней мере, регулярно размещайте кластеры на них:)

...