172 похожих чатов

Привет. Имею кластер kubernetes из 2 node с 2 pod,

содержащими в себе nginx, который отвечает именем hostname по запросу к нему.
root@kubemaster:/home/vagrant# kubectl get nodes -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
kubemaster Ready master 121m v1.19.1 100.110.0.228 <none> Ubuntu 16.04.7 LTS 4.4.0-189-generic docker://18.9.7
kubenode1 Ready <none> 119m v1.19.1 100.110.0.229 <none> Ubuntu 16.04.7 LTS 4.4.0-189-generic docker://18.9.7
kubenode2 Ready <none> 116m v1.19.1 100.110.0.230 <none> Ubuntu 16.04.7 LTS 4.4.0-189-generic docker://18.9.7
root@kubemaster:/home/vagrant# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
my-deployment-dbd6f9659-2c9jx 1/1 Running 0 111m 10.244.1.2 kubenode1 <none> <none>
my-deployment-dbd6f9659-675mt 1/1 Running 0 111m 10.244.2.2 kubenode2 <none> <none>
Каждый из 2 pod успешно работает. При пробрасывании порта через port-forward на каждый отдельный pod, тот успешно отвечает:
root@kubemaster:/home/vagrant# kubectl port-forward my-deployment-dbd6f9659-2c9jx 8000:80
Forwarding from 127.0.0.1:8000 -> 80
Forwarding from [::1]:8000 -> 80
Handling connection for 8000
root@kubemaster:/home/vagrant# curl localhost:8000
my-deployment-dbd6f9659-2c9jx
Теперь к проблеме. Имею Service:
---
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
selector:
app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 80
root@kubemaster:/home/vagrant# kubectget services -o wide
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 124m <none>
my-service ClusterIP 10.111.253.173 <none> 80/TCP 114m app=my-app
Когда я запускаю тестовый контейнер, перехожу внутрь него, чтобы проверить работу my-service, то получаю следующее:
root@kubemaster:/home/vagrant# kubectl run -t -i --rm --image amouat/network-utils test bash
If you don't see a command prompt, try pressing enter.
root@test:/#
root@test:/# curl my-servise
curl: (6) Could not resolve host: my-servise
Однако, если я обращаюсь к сервису не по имени, а по прямому IP, то 50 на 50 получаю либо ответ пода, либо ошибку:
root@test:/# curl 10.111.253.173
curl: (7) Failed to connect to 10.111.253.173 port 80: No route to host
root@test:/# curl 10.111.253.173
curl: (7) Failed to connect to 10.111.253.173 port 80: No route to host
root@test:/# curl 10.111.253.173
my-deployment-dbd6f9659-2c9jx
root@test:/# curl 10.111.253.173
curl: (7) Failed to connect to 10.111.253.173 port 80: No route to host
root@test:/# curl 10.111.253.173
curl: (7) Failed to connect to 10.111.253.173 port 80: No route to host
root@test:/# curl 10.111.253.173
my-deployment-dbd6f9659-2c9jx
root@test:/# curl 10.111.253.173
curl: (7) Failed to connect to 10.111.253.173 port 80: No route to host
root@test:/# curl 10.111.253.173
curl: (7) Failed to connect to 10.111.253.173 port 80: No route to host
root@test:/# curl 10.111.253.173
my-deployment-dbd6f9659-2c9jx
root@test:/# curl 10.111.253.173
my-deployment-dbd6f9659-2c9jx
Почему так? Я ожидаю, что, во-первых, сервис будет резолвиться по имени my-service, но он не резолвится. Во-вторых, я ожидаю, что при обращении к сервису будут корректно отвечать оба pod, но отвечает только один. Как исправить это?

2 ответов

12 просмотров

CNI ставил в тот кластер, что ты имеешь?

вероятно у тебя сеть pod to pod не работает между нодами. Это объясняет чередование валидных запросов, скорее всего когда они идут на pod на той же ноде, и no route to host, когда идут на pod на другой ноде

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта