gpt4 book ai didi

macos - Minikube:设置/检索外部 IP 的与主机无关的方式

转载 作者:行者123 更新时间:2023-12-04 19:05:41 25 4
gpt4 key购买 nike

关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。












我们不允许在 Stack Overflow 上提出有关专业服务器或网络相关基础设施管理的问题。您可以编辑问题,使其成为 on-topic对于堆栈溢出。


6 个月前关闭。







Improve this question




我最近在 Minikube 的基础上做了一个我们本地环境的实现。在我的环境配置自动化脚本中,我依赖于 minikube tunnel 的事实。在 127.0.0.1 公开具有 LB 类型的服务本地 IP - 这就是我的 macOS 上发生的情况。
然而,一位使用 Ubuntu(在 VirtualBox 下运行)的开发人员提示说,对他而言,外部 IP 从来都不是一个环回 IP,它总是来自 10.0.0.0/8。子网。
在这一点上,我试图找出最好的行动方案是什么:

  • 尝试以某种方式强制所有平台上的外部 IP 为 127.0.0.1 . IDK 如果可能的话,找不到任何东西。
  • 或者回退到其他方式来可靠地找到任何给定服务的外部 IP。我假设我可以使用 kubectl输出到 grep 外部 IP,但这会在我希望避免的脚本中增加开销和延迟。

  • 为集群中的任何给定服务查找外部 IP 的廉价且可靠的主机无关方法是什么?

    最佳答案

    好吧,我不认为 1. 是可能的。和你一样,我找不到任何信息。
    我认为选项 2 不错,但您不必使用 grep .您可以使用 kubectl内置 JSONPath Support并将 IP 地址设置为变量(bash 中的示例):

    IP_ADDRESS=$(kubectl get service {your-service} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
    您也可以使用 NodePort并且不要使用 minikube tunnel根本:
    IP_ADDRESS=$(minikube ip && kubectl get service {your-service} -o jsonpath="{.spec.ports[0].nodePort}")
    IP_ADDRESS=$(echo $IP_ADDRESS | sed 's/ /:/g')
    或使用 minikube service --url <service-name> command 获取,但输出以 http:// 开头:
    user@shell:~$ minikube service --url my-service
    http://{ip-of-the-node}:{node-port}
    另一种选择是在后台运行 kubectl port-forward command在脚本的开头并使用 localhost地址无处不在,但我认为以前的解决方案更好,更可靠。

    关于macos - Minikube:设置/检索外部 IP 的与主机无关的方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70495066/

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