【问题标题】:Accessing a micro service created inside a kubernetes cluster (Laravel/Lumen PHP)访问在 kubernetes 集群中创建的微服务 (Laravel/Lumen PHP)
【发布时间】:2021-08-08 07:00:07
【问题描述】:

我在理解和让它发挥作用时遇到了一些麻烦。

所以基本上我已经创建了一个从外部世界接收流量的 API 网关,这个使用 Lumen (PHP) 创建并在 kubernetes 集群内,我想访问同一个 kubernetes 集群内的另一个微服务,也一个 Lumen 并使用名为 microinquilino-service 的 PHP。我正在使用谷歌云平台这样做。我可以访问微服务,但是当我尝试导航时,我无法访问微服务中的菜单,因为它一直说“microinquilino-service:8081/payment”,即地址,不存在。

这个地址似乎不存在,我不知道我该怎么做才能让它工作,这样我就可以毫无问题地浏览我的微服务。

我目前正在使用 curl 库来调用此服务:

apiGatewayController.php

    public function showCurrentUser(Request $request)
{
    
    $ch = curl_init();

    
    curl_setopt($ch, CURLOPT_URL, "http://microinquilino-service:8081/");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
    
    curl_exec($ch);

    curl_close($ch);
}

此时将不胜感激所有帮助! 提前谢谢你。

【问题讨论】:

    标签: php kubernetes google-cloud-platform microservices cluster-computing


    【解决方案1】:

    您的 PHP 应用程序 pod/container 需要部署到与您的 microinquilino-service 服务相同的命名空间。如果它们位于不同的命名空间中,您的 PHP 应用程序将找不到该服务。

    服务需要定义为:

    apiVersion: v1
    kind: Service
    metadata: 
      name: microinquilino-service
      namespace: my-namespace # Same NS as the PHP app
    spec:
      selector:
        app: microinquilino
      ports:
        - protocol: TCP
          port: 8081
          targetPort: 8081
    

    【讨论】:

    • 我目前的设置就是这样。我还需要使用 curl 库吗?一旦我发出 curl 请求,这是否意味着我开始在相对于 microinquilino-service 的 pod 内部工作,然后我就像普通的 php 应用程序一样使用它?
    猜你喜欢
    • 2018-04-29
    • 1970-01-01
    • 2022-08-13
    • 2020-03-18
    • 2019-04-22
    • 1970-01-01
    • 1970-01-01
    • 2018-04-12
    • 1970-01-01
    相关资源
    最近更新 更多