Отладка сетевых соединений и диагностика DNS в Kubernetes¶
Способы отладки соединенией Conntrack:¶
1. Просмотр активных соединений для конкретного IP-адреса:¶
conntrack -L -d 10.32.0.1
2. Просмотр журналов ядра, связанных с Conntrack:¶
journalctl -k | grep "nf_conntrack"
3. Изменение максимального числа отслеживаемых соединений:¶
sysctl -w net.netfilter.nf_conntrack_max=<NEW-NUMBER-MORE-PREVIOUS>
4. Запуск пода для отладки сети:¶
kubectl run -it --image=amouat/network-utils testnet bash
kubectl run -it --rm --image amouat/network-utils testnet -- bash
Способы отладки разрешения DNS в кластере:¶
1. Запуск пода для проверки DNS разрешения:¶
kubectl run -it --rm --image busybox -- nslookup kubernetes.default
2. Развернуть контейнер отладки https://kubernetes.io/docs/tasks/administer-cluster/dns-debugging-resolution/¶
- Использовать dig nsenter on host : получаем PID sudo apt install dnsutils -y
- Получите список контейнеров в пространстве имен k8s.io:
sudo ctr --namespace k8s.io containers ls
- Получите задачи для контейнера:
sudo ctr --namespace k8s.io tasks ps <container-id>
- Получите информацию о контейнере и найдите PID:
sudo ctr --namespace k8s.io containers info <container-id> | grep pid
- Получите IP-адрес службы kube-dns:
kubectl get service -n kube-system kube-dns
- Используйте nsenter для запуска dig в пространстве имен контейнера:
```sudo nsenter -t
-n dig kubernetes.default.svc.cluster.local @ kubectl apply -f - <<EOF apiVersion: v1 kind: Pod metadata: name: dnsutils namespace: default spec: containers: - name: dnsutils
image: registry.k8s.io/e2e-test-images/jessie-dnsutils:1.3
command:
- sleep
- "infinity" imagePullPolicy: IfNotPresent restartPolicy: Always EOF ``` Этот под будет содержать утилиты для отладки DNS и будет постоянно запущен, что позволит вам выполнять любые необходимые команды для диагностики DNS.