gpt4 book ai didi

docker - 具有多个 LoadBalancer 服务的 Kubernetes (docker-desktop)

转载 作者:行者123 更新时间:2023-12-02 12:13:55 32 4
gpt4 key购买 nike

我真的不能在 docker-desktop 集群 (osx) 上拥有两个 LoadBalancer 服务吗,因为它们都使用 localhost (并且所有端口都被转发)?

我创建了一个示例,后一个服务从未分配外部 IP 地址,而是保持状态 pending .但是,前者可以在 localhost 上访问。

> kubectl get all     
NAME READY STATUS RESTARTS AGE
pod/whoami-deployment-9f9c86c4f-l5lkj 1/1 Running 0 28s
pod/whoareyou-deployment-b896ddb9c-lncdm 1/1 Running 0 27s
pod/whoareyou-deployment-b896ddb9c-s72sc 1/1 Running 0 27s

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 95s
service/whoami-service LoadBalancer 10.97.171.139 localhost 80:30024/TCP 27s
service/whoareyou-service LoadBalancer 10.97.171.204 <pending> 80:32083/TCP 27s

NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/whoami-deployment 1/1 1 1 28s
deployment.apps/whoareyou-deployment 2/2 2 2 27s

NAME DESIRED CURRENT READY AGE
replicaset.apps/whoami-deployment-9f9c86c4f 1 1 1 28s
replicaset.apps/whoareyou-deployment-b896ddb9c 2 2 2 27s

whoareyou-service详细状态:
kubectl describe service whoareyou-service
Name: whoareyou-service
Namespace: default
Labels: <none>
Annotations: kubectl.kubernetes.io/last-applied-configuration:
{"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"name":"whoareyou-service","namespace":"default"},"spec":{"ports":[{"name...
Selector: app=whoareyou
Type: LoadBalancer
IP: 10.106.5.8
Port: http 80/TCP
TargetPort: 80/TCP
NodePort: http 30333/TCP
Endpoints: 10.1.0.209:80,10.1.0.210:80
Session Affinity: None
External Traffic Policy: Cluster
Events: <none>

最佳答案

我决定复制我的评论,因为它们部分解释了问题,并制作了 Community Wiki回答他们,以便更清楚地看到并可供社区进行可能的进一步编辑:

它的工作方式可能与 中的完全相同。迷你酷贝 .如 docker 桌面无法提供真实的LoadBalancer它仍然可以“模拟”创建 Service使用 NodePort 的此类类型(这可以从它使用的端口范围很容易地看出)。我很确定您不能使用与 ExternalIP 相同的 IP 地址。的LoadBalancer Service如果您再创建一个 Service这种类型的,你的 docker 桌面除了再次使用您的本地主机之外别无选择。因为它已经被一个 Service 使用了它不能被另一个人使用,这就是它保留在 pending state 中的原因。 .

请注意,如果您创建真正的 LoadBalancer在云环境中,每次配置新 IP 并且没有下一次的情况 LoadBalancer您创建的 IP 已被现有 IP 使用。显然这里它不能使用任何其他 IP,而不是 localhost 之一。 ,而这个已经在使用中了。无论如何,我建议您简单地使用 NodePort如果你想暴露你的 Deployment到外部世界。

关于docker - 具有多个 LoadBalancer 服务的 Kubernetes (docker-desktop),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59412733/

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