Как найти запрос на выдачу ресурса в кластере Kubernetes по IP-адресу?

Обновлять:

Чего я пытаюсь добиться: у меня есть IP-адрес ресурса кластера (10.1.239.128 в приведенных ниже примерах) и я хочу выяснить, к какому POD/service/... он принадлежит.


Я настроил кластер Kuebernetes, используя Microk8, работающий, среди прочего, с хранилищем и диспетчером сертификатов через чарты Helm. В двух POD, созданных для хранилища и диспетчера сертификатов, я получаю несколько следующих записей журнала:

> kubectl logs pod/cert-manager-webhook-6787f645b9-s5fxl

http: TLS handshake error from 10.1.239.128:37763: EOF

> kubectl logs pod/release-name-vault-0

http: TLS handshake error from 10.1.239.128:48609: remote error: tls: unknown certificate authority

Я изо всех сил пытаюсь выяснить, откуда эти запросы.

Я пытался:

  • kubectl get svc --all-namespaces
  • kubectl get endpoints --all-namespaces
  • kubectl get endpointslices --all-namespaces
  • ping -a 10.1.239.128 с помощью POD, созданного с помощью netshoot

выяснить, откуда приходят запросы, но безуспешно. IP-адрес не указан или не преобразован в DNS-имя для дальнейшего изучения.

Любые дальнейшие идеи о том, как получить ресурс, выдающий запрос, или отладить его? Заранее спасибо.

Я неправильно понял ваши требования, поэтому удалил их. Хотя флаг -n в tcpdump может быть полезен Don't convert addresses (i.e., host addresses, port numbers, etc.) to names

P.... 08.02.2023 17:19

@P.... Извините за путаницу, я обновил вопрос, чтобы сделать его более ясным. Тем не менее, я получил некоторые хорошие идеи и новые инструменты из вашего предыдущего поста и комментариев для моих дальнейших усилий. Спасибо вам за это!

marcel h 08.02.2023 17:31

Не ответ, а «может» указать направление. k api-resources -oname |while read r; do echo -n "$r ----> "; k get $r -A -o yaml |grep -oPz '\d+\.\d+\.\d+\.\d+';echo "" ; done, попробуйте grep свой IP, если найдете, полдела сделано. `

P.... 08.02.2023 18:41

Ничего себе, я не знал обо всех типах ресурсов, которые получают IP-адреса. Нашел, это либо ipamhandle, либо ipamblock, либо blockafinity. Большое спасибо за вашу поддержку, это был большой шаг вперед! Сводил меня с ума.

marcel h 08.02.2023 18:58
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
1
4
64
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вот обходной путь, не лучший способ сделать это, но он может помочь двигаться в правильном направлении:

kubectl api-resources  -oname |while read r;
do 
     echo -n "$r ----> ";
     kubectl get $r -A -o yaml |grep -oPz '\d+\.\d+\.\d+\.\d+';
     echo "" ;
done

Предположим, что IP-адрес, который вы ищете, является ресурсом кластера.

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