Как определить, какие входные контроллеры настроены на Kubernetes? - PullRequest
0 голосов
/ 24 апреля 2020

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

Я не спрашиваю о самих фактических входах (что, я знаю, может быть найдено с kubectl get ingress --all-namespaces).

Ответы [ 4 ]

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

Не существует причудливого способа достичь того, что вам нужно. Эти две команды могут помочь вам, и это действительно зависит от того, что вам нужно выбрать между ними.

$ kubectl get pods --all-namespaces -o=jsonpath='{range .items[*]}{"\n"}{.metadata.name}{":\t"}{range .metadata}{.labels}{", "}{end}{end}' | grep ingress | grep controller
$ kubectl get pods --show-labels --all-namespaces  | grep ingress | grep controller

Обе команды похожи, но с разными выходами.

Эти команды основаны на этой документации .

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

Вы можете получить список всех модулей входного контроллера с помощью селектора. Например

kubectl get pods --all-namespaces --selector app=nginx-ingress,component=controller
0 голосов
/ 26 апреля 2020

Поскольку каждому IngressController нужна привилегия для доступа к Ingresses, мы можем выяснить все Roles и ClusterRoles, которые могут получить доступ к Ingress, а затем RoleBindings / ClusterRoleBindings, связанные с ServiceAccounts, наконец, получают все Pod, используя эти ServiceAccounts.

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

Не существует определенного c способа, поскольку входной контроллер на самом деле является просто демоном, который общается с API kubernetes. Для них нет централизованной регистрации. Вы можете начать с kubectl get pods --all-namespaces и сравнить с именами известных контроллеров.

...