Обновлять:
Чего я пытаюсь добиться: у меня есть 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-имя для дальнейшего изучения.
Любые дальнейшие идеи о том, как получить ресурс, выдающий запрос, или отладить его? Заранее спасибо.
@P.... Извините за путаницу, я обновил вопрос, чтобы сделать его более ясным. Тем не менее, я получил некоторые хорошие идеи и новые инструменты из вашего предыдущего поста и комментариев для моих дальнейших усилий. Спасибо вам за это!
Не ответ, а «может» указать направление. 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, если найдете, полдела сделано. `
Ничего себе, я не знал обо всех типах ресурсов, которые получают IP-адреса. Нашел, это либо ipamhandle, либо ipamblock, либо blockafinity. Большое спасибо за вашу поддержку, это был большой шаг вперед! Сводил меня с ума.
Вот обходной путь, не лучший способ сделать это, но он может помочь двигаться в правильном направлении:
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-адрес, который вы ищете, является ресурсом кластера.
Я неправильно понял ваши требования, поэтому удалил их. Хотя флаг
-n
в tcpdump может быть полезенDon't convert addresses (i.e., host addresses, port numbers, etc.) to names