微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

访问在 kubernetes 集群中创建的微服务Laravel/Lumen PHP

如何解决访问在 kubernetes 集群中创建的微服务Laravel/Lumen PHP

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

所以基本上我已经创建了一个 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 应用程序 pod/容器需要部署到与您的 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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。