#docker #kubernetes #kind
#docker #kubernetes #вид
Вопрос:
Я следую руководству здесь (https://kubernetes.io/docs/tutorials/hello-minikube /) для тестирования локальной настройки разработки для kubernetes. Однако я использую kind вместо minikube.
На данный момент я застрял на шаге 3:
minikube service hello-node
который должен предоставлять службу балансировки нагрузки.
Однако в kind, похоже, нет такой команды, и мне интересно, как бы я предоставил доступ к сервису из руководства.
Моя настройка представляет собой дистрибутив WSL2 с docker, kind и kubectl. Мои текущие мосты портов:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b62c43ac3b2e kindest/node:v1.17.0 "/usr/local/bin/entr…" 49 minutes ago Up 49 minutes 127.0.0.1:32769->6443/tcp kind-control-plane
$ kubectl cluster-info
Kubernetes master is running at https://127.0.0.1:32769
KubeDNS is running at https://127.0.0.1:32769/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
и
$ kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
hello-node LoadBalancer 10.96.65.157 <pending> 8080:31578/TCP 46m
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 51m
Ответ №1:
LoadBalancer
тип, который служба создает внутри NodePort
. Таким образом, вы можете получить к нему доступ через, http://NODEIP:31578
где 31578
находится порт узла, как вы можете видеть в выводе kubectl get service
. Чтобы получить NODEIP
, вы можете использовать kubectl get nodes -o wide
Если вы посмотрите на вывод, minikube service hello-node
он получил то же самое NODEIP
и NODEPORT
. К сожалению, в натуральном виде нет эквивалентной команды, поэтому вам нужно использовать метод, описанный выше.
EXTERNAL-IP
будет ожидаться, поскольку в локальном кластере kind нет облачной (AWS, GCP, Azure) подобной реализации. Если вы действительно хотите заставить LoadBalancer
тип service работать, вы можете использовать metallb в качестве реализации loadbalancer. Таким образом, вам будет EXTERNAL-IP
назначен вместо pending
и вы сможете использовать этот IP для доступа к модулю.
Вот руководство о том, как заставить metallb работать с kind.