![](/img/trans.png)
[英]How to access the service deployed on one pod via another pod in Kubernetes?
[英]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
的輸出,它具有相同的NODEIP
和NODEPORT
。 不幸的是,沒有等效的命令,因此您需要使用上述方法。
EXTERNAL-IP
將掛起,因為在本地種類集群中沒有雲(AWS、GCP、Azure)之類的實現。 如果你真的想讓LoadBalancer
類型的服務工作,你可以使用 metallb 作為負載均衡器實現。 通過這種方式,您將分配EXTERNAL-IP
而不是pending
,您可以使用該 IP 訪問 pod。
這是有關如何用善意制作金屬的指南。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.