Как получить статус модуля в kubernetes с помощью go-клиента

Я пытаюсь удалить модуль в моем кластере kubernetes, а затем проверить его состояние, чтобы узнать, сколько времени потребуется, чтобы модуль вышел из строя и снова поднялся. Я не смог найти полезного примера для второй части, которая получает определенный статус pod с помощью go-client. Любая помощь приветствуется.

2 ответа

Решение

Вы можете использовать функцию Get для получения конкретной информации о модуле (ниже приведены примеры получения всей структуры Status):

pod, _ := clientset.CoreV1().Pods("kubernetes").Get(pod.Name, metav1.GetOptions{})
fmt.Println(pod.Status)

Кроме того, вы можете использовать функцию List, чтобы получить все модули в определенном пространстве имен, а затем ранжировать их:

pods, _ := clientset.CoreV1().Pods("kubernetes").List(metav1.ListOptions{FieldSelector: "metadata.name=kubernetes"})
for _, pod := range pods.Items {
    fmt.Println(pod.Name, pod.Status)
}

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

Информация о состоянии - это подструктура модуля в целом, поэтому вы используете обычный метод получения (clientset.CoreV1() и т. Д.), А затем смотрите в .Status структура.

Другие вопросы по тегам