簡體   English   中英

通過 kubernetes 集群中的服務公開 kubernetes pod

[英]Exposing a kubernetes pod via service in kind kubernetes cluster

我正在按照此處的教程 ( https://kubernetes.io/docs/tutorials/hello-minikube/ ) 測試 kubernetes 的本地開發設置。 但是,我使用的是 kind,而不是 minikube。

目前,我被困在第 3 步:

minikube service hello-node

它應該公開 LoadBalancer 服務。

但是, kind 似乎沒有這樣的命令,我想知道如何從教程中公開服務。

我的設置是帶有 docker、kind 和 kubectl 的 WSL2 發行版。 我目前的端口橋是:

$ 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

LoadBalancer類型服務在內部創建NodePort 因此,您可以通過http://NODEIP:31578訪問它,其中31578是 NodePort,您可以在kubectl get service輸出中kubectl get service 要獲得NODEIP您可以使用kubectl get nodes -o wide

如果您查看minikube service hello-node的輸出,它具有相同的NODEIPNODEPORT 不幸的是,沒有等效的命令,因此您需要使用上述方法。

EXTERNAL-IP將掛起,因為在本地種類集群中沒有雲(AWS、GCP、Azure)之類的實現。 如果你真的想讓LoadBalancer類型的服務工作,你可以使用 metallb 作為負載均衡器實現。 通過這種方式,您將分配EXTERNAL-IP而不是pending ,您可以使用該 IP 訪問 pod。

是有關如何用善意制作金屬的指南。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM