gpt4 book ai didi

local - Minikube - 外部 IP 与主机的公共(public) IP 不匹配

转载 作者:行者123 更新时间:2023-12-03 08:44:28 29 4
gpt4 key购买 nike

很快,我使用GOOGLE COMPUTE ENGINE(外部IP:34.73.89.55,所有端口和协议(protocol)都打开),然后安装Docker、minikube、kubectl。然后:

minikube start --driver=docker

minikube tunnel

kubectl create deployment hello-minikube1 --image=k8s.gcr.io/echoserver:1.4

kubectl expose deployment hello-minikube1 --type=LoadBalancer --port=8080

kubectl get svc

我得到:

NAME              TYPE           CLUSTER-IP       EXTERNAL-IP      PORT(S)          AGE

hello-minikube1 LoadBalancer 10.110.130.109 10.110.130.109 8080:31993/TCP 9m22s

我的问题是,为什么 EXTERNAL-IP 与主机的外部 IP:34.73.89.55 不匹配?如何通过主机的外部IP远程访问此服务(例如:我在家通过浏览器访问)?

Ps:我想使用GOOGLE COMPUTE ENGINE。

编辑:我也尝试一下:

 sudo minikube start --driver=none

sudo kubectl create deployment hello-minikube1 --image=k8s.gcr.io/echoserver:1.4

sudo kubectl expose deployment hello-minikube1 --type=NodePort --port=8080

wget 127.0.0.1:8080

=>不工作

最佳答案

默认情况下,minikube 期望在单独的虚拟机中运行。这可以通过显式指定驱动程序来更改。

  1. Why the EXTERNAL-IP did not match with the host's external IP?

因为 minikube 使用隧道创建一条通往使用 LoadBalancer 类型部署的服务的路由,并将其 Ingress 设置为其 ClusterIP。为一个详细示例见this documentation

  • How can I access this service remotely by the host's external IP?
  • 我在这里看到两个选项:

    • 更多推荐:设置--driver=none

    Minikube also supports a --driver=none option that runs the Kubernetes components on the host and not in a VM. Using this driver requires Docker and a Linux environment but not a hypervisor.

    • 可能不太理想:使用 port forwarding (使用 iptables 或代理)。这可能不太理想。

    另请记住,minikube 是为了在 locahost 上进行测试而创建的。使用时请记住这一点。

    编辑:

    当寻找--driver=none时你可以:

    • 使用 NodePort 类型而不是 LoadBalancer。

    • 通过添加以下内容继续使用负载均衡器和修改后的服务:

    spec:
    externalIPs:
    - <host_address>

    例如:

    apiVersion: v1
    kind: Service
    metadata:
    creationTimestamp: null
    labels:
    app: hello-minikube1
    name: hello-minikube1
    spec:
    externalIPs:
    - <host_address>
    ports:
    - port: 8080
    protocol: TCP
    targetPort: 8080
    selector:
    app: hello-minikube1
    type: LoadBalancer
    status:
    loadBalancer: {}

    以上内容经过测试,结果是 EXTERNAL IP = HOST IP。

    如果有帮助,请告诉我。

    关于local - Minikube - 外部 IP 与主机的公共(public) IP 不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61999850/

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