Рецепт 14. Полезные CLI-утилиты для CloudNativePG

Три CLI-утилиты, которые сильно ускоряют ежедневную работу с CloudNativePG: view-secret для расшифровки secret'ов, view-cert для инспекции TLS-сертификатов и stern для одновременного просмотра логов с нескольких подов.
Опубликовано:

Оригинал: CNPG Recipe 14 — Useful Command-Line Tools — 11 октября 2024.

Три утилиты командной строки, без которых работа с CloudNativePG превращается в бесконечную цепочку kubectl get ... | base64 -d | openssl .... Они ощутимо ускоряют инспекцию secret’ов, проверку сертификатов и просмотр логов с нескольких подов одновременно.

view-secret — расшифровка secret’ов

Плагин view-secret для kubectl берёт на себя расшифровку base64-значений из Secret-ресурсов. Вместо длинной комбинации kubectl get secret ... -o jsonpath=... | base64 -d достаточно:

BASH
kubectl view-secret cluster-example-app pgpass
Нажмите, чтобы развернуть и увидеть больше

Команда сразу выведет расшифрованный pgpass-файл пользователя app.

Полезные флаги:

view-cert — инспекция TLS-сертификатов

Аналогичный плагин view-cert умеет показывать TLS-сертификаты, лежащие в Kubernetes Secret’ах. Заменяет цепочки с openssl x509 -text -noout:

BASH
kubectl view-cert cluster-example-ca ca.crt
Нажмите, чтобы развернуть и увидеть больше

На выходе — JSON с метаданными сертификата: validity, issuer, subject, SAN. Удобно дебажить mTLS и ротации сертификатов в CloudNativePG (особенно в связке с Рецептом 2, где разбираются дефолтные TLS-секреты кластера).

stern — логи с нескольких подов

stern умеет тейлить логи сразу с нескольких подов, фильтруя их по label-селектору. Для CloudNativePG, где у каждого инстанса свой под (primary + N standby), это как минимум удобнее, чем kubectl logs -f по одному:

BASH
stern -l cnpg.io/cluster=cluster-example -o ppextjson
Нажмите, чтобы развернуть и увидеть больше

Эта команда тейлит все поды кластера cluster-example сразу. Из приятного:

Вывод

Эти три утилиты не делают ничего, что нельзя сделать стандартным kubectl. Но они сильно сокращают boilerplate при ежедневной работе с PostgreSQL в Kubernetes — особенно при дебаге проблем с подключениями, сертификатами и репликацией.

Начать поиск

Введите ключевые слова для поиска статей

↑↓
ESC
⌘K Горячая клавиша