gpt4 book ai didi

docker - 通过 kubernetes 集群中的服务公开 kubernetes pod

转载 作者:行者123 更新时间:2023-12-02 20:54:14 26 4
gpt4 key购买 nike

我正在按照此处的教程 ( 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 的输出中看到的那样。要获取NODEIP,您可以使用kubectl getnodes -o Wide

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

EXTERNAL-IP 将处于待处理状态,因为本地集群中没有类似云(AWS、GCP、Azure)的实现。如果您确实想让 LoadBalancer 类型的服务工作,您可以使用 Metallb 作为负载平衡器实现。这样,您将分配 EXTERNAL-IP 而不是 pending,并且您可以使用该 IP 访问 pod。

Here是关于如何以友善的方式制作金属的指南。

关于docker - 通过 kubernetes 集群中的服务公开 kubernetes pod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63850398/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com