【问题标题】:How to expose minikube in GCP VM如何在 GCP VM 中公开 minikube
【发布时间】:2020-07-17 13:44:29
【问题描述】:

我在 GCP 中创建了一个 debian VM 并安装了 kubectl 和 minikube。我在 kubectl 中部署了一个图像。我使用命令kubectl expose deployment hw --type=NodePort --port=80 公开了该服务。它暴露在端口 31343 中。但无法使用 VM 的外部 ip 访问它。我向端口的流量添加了防火墙规则。但它仍然无法正常工作。如何使用虚拟机的外部 ip 访问该站点。

我知道,我可以使用 GKE。但是我需要尝试kubernetes的安装和配置。这就是我遵循这些步骤的原因。

【问题讨论】:

  • 能否分享一下您用来启动 minikube custer 的所有参数的命令?
  • minikube 启动 --driver=virtualbox
  • @NOBLEM.O.你是如何在 VM 上为 minikube 和 virtualbox 启用 VT-X/AMD-v 的?
  • @Spook,我跟着cloud.google.com/compute/docs/instances/…创建了一个支持虚拟化的linux vm。

标签: kubernetes google-cloud-platform kubectl


【解决方案1】:

Minikube 基本上是一个虚拟机,所以你在虚拟机中运行一个虚拟机。

您已将 Minikube 中的 deployment 暴露给 VM,您可以使用 $ minikube ip$ minikube status 检查 Minikube 的地址。

为了让它现在工作,您需要在您的 GCP 虚拟机上设置一个 proxy,它将流量发送到 minikube

我建议使用kubeadm 并设置single control-plane cluster with kubeadm

【讨论】:

  • 我有同样的问题,你有一个例子说明我如何在 GCE 上的集群之外执行此操作吗?我的 minikube 服务器工作正常,可以从外部 i 的 ip 访问 svc,但这仅适用于 GCE。如何映射到 GCE 外部 IP 以便在 GCE 外部可用?
  • 您提供的链接似乎是特定于创建集群的,我猜在这种情况下,它是关于在进一步阅读后使用现有的 minikube 集群。
【解决方案2】:

我找到了使用 nginx 代理的解决方案。如上一个答案中提到的,可能使用 kubeadm 是标准方法。但是我在网上没有得到足够的参考。 我们可以使用 GCP vm 外部 ip 连接到 nginx 服务器,它将请求重定向到 minikube。同时返回响应。

  1. 使用sudo apt install nginx在linux vm中安装nginx
  2. 创建一个nginx配置文件sudo vim /etc/nginx/conf.d/upstream.conf
  3. 将以下行添加到文件中。替换和。

    upstream app_server_32108 {
        server <minikube ip>:<port>;
    }    
    server {
        listen 80;
        location /proxy {
           proxy_pass http://app_server_32108/;
        }
    }
    
  4. sudo nginx -t

  5. 使用sudo systemctl reload nginx重启nginx服务器

  6. 现在minikube中托管的内容可以使用http://&lt;vm ip&gt;/proxy访问

如果无法访问,请编辑 nginx 配置文件 sudo vim /etc/nginx/nginx.conf 并通过添加 # 作为前缀将注释添加到 include /etc/nginx/sites-enabled/*; 行。

#include /etc/nginx/sites-enabled/*;

重启 nginx 再试一次。 (按照步骤 4、5 和 6)。

【讨论】:

    【解决方案3】:

    所以上面的几个答案可能是你应该做的事情,你还应该做的是允许 VPC 防火墙中的端口

    考虑您需要通过网络界面或控制台的防火墙规则,您可以像下面的评论一样应用它

    gcloud compute firewall-rules create "allow-internal-memcache" --allow=tcp:31343 --source-ranges="10.0.0.0/22,10.0.0.0/14" --description="Allow internal traffic and drop outside"
    

    这条评论是为了别的。

    【讨论】:

      猜你喜欢
      • 2021-06-05
      • 1970-01-01
      • 2022-01-18
      • 2021-06-08
      • 1970-01-01
      • 1970-01-01
      • 2021-05-20
      • 2019-05-22
      • 1970-01-01
      相关资源
      最近更新 更多