#kubernetes
#kubernetes
Вопрос:
можно подключиться к внутренней службе kubernetes из локальной сети? например, у меня есть виртуальная машина вне кластера kubernetes, но в той же сети, что и кластер kubernetes (я могу пинговать IP-адрес частного узла с моей виртуальной машины), и с этой виртуальной машины я хочу подключиться к внутренней службе kubernetes, например http://sample-service.default.svc.cluster.local из локальной сети
Я пытался следовать этому руководству https://blog.heptio.com/configuring-your-linux-host-to-resolve-a-local-kubernetes-clusters-service-urls-a8c7bdb212a7 но все равно не работает
Ответ №1:
Да, это возможно, вам нужно изменить тип вашей службы на NodePort
: https://kubernetes.io/docs/concepts/services-networking/service/#nodeport . Тогда ваша служба будет доступна с любого из ваших рабочих узлов Kubernetes, используя его IP-адрес и NodePort
(> 30000), отображаемый командой ниже.
Например:
$ kubectl get svc parse-server
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
parse-server NodePort 10.96.139.142 <none> 1337:31013/TCP 17h
$ kubectl get nodes -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
...
kind-worker2 Ready <none> 42h v1.19.1 172.18.0.2 <none> Ubuntu Groovy Gorilla (development branch) 4.15.0-1101-oem containerd://1.4.0
Затем сервис parse-server
доступен из локальной сети с помощью:
$ curl http://172.18.0.2:31013
<!DOCTYPE html>
<html lang="en">
...
NodePort
это самый простой способ предоставить сервис за пределами кластера Kubernetes, но если вам нужны более продвинутые функции, такие как маршрутизация по URL-адресу или имени хоста, вам необходимо исследовать при входе: https://kubernetes.io/docs/concepts/services-networking/ingress /.
Комментарии:
1. Я думаю настроить прокси-сервер вне моего кластера, например: если у меня есть 2 узла, какой IP-адрес узла я должен использовать?
2. Ваш прокси-сервер, назовем его балансировщиком нагрузки, должен перенаправлять на оба IP-адреса, используя, например, алгоритм циклического перебора.