Как получить доступ к стручку kubernetes по его частичному имени? - PullRequest
2 голосов
/ 07 апреля 2020

Я часто запускаю такие задачи, как:

  • Чтение журнала службы X или
  • Присоединение оболочки внутри службы Y

Я всегда использую что-то в своей истории, например:

kubectl logs `kubectl get pods --no-headers -o custom-columns=":metadata.name" | grep <partial_name>`

или

kubectl exec -it `kubectl get pods --no-headers -o custom-columns=":metadata.name" | grep <partial_name>` bash

Знаете ли вы, если kubectl уже что-то для этого на месте? Или я должен создать свой собственный набор псевдонимов?

Ответы [ 2 ]

1 голос
/ 07 апреля 2020

Экземпляры Kubernetes слабо связаны с помощью меток (пары ключ-значение). Из-за этого Kubernetes предоставляет различные функциональные возможности, которые могут помочь вам работать с наборами объектов на основе меток.

В случае, если у вас есть несколько пакетов одного и того же сервиса, высока вероятность того, что ими управляет некоторый ReplicaSet с использованием некоторая специфика c метка. Вы должны увидеть это, если вы запустите:

kubectl get pods --show-labels

Теперь для агрегирования журналов, например, вы можете использовать селектор меток, например:

kubectl logs -l key=value

Для получения дополнительной информации см .: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/.

0 голосов
/ 08 апреля 2020

Вы можете включить автозаполнение оболочки. Kubectl предоставляет эту поддержку для Bash и Zsh, что сэкономит вам много времени на печать (вы будете использовать TAB, чтобы получить предложение / завершение).

Документация Kuberentes содержит большой набор информации о том, как включить автозаполнение в Дополнительные конфигурации kubectl . Он охватывает Bash на Linux, Bash на MacOS и Zsh.

...