使用内部Kubernetes服务预部署开发通信



我正在研究迁移到Kubernetes(来自AWS ECS)。但在依赖内部服务的情况下,我还没有解决当地的发展问题。

让我详细说明一下:

在开发和测试微服务时,在将其部署为Kubernetes服务之前,我希望能够与其他内部Kubernete服务进行交谈。由于有超过20个微服务,我有一个运行最新开发版本的Kubernetes集群。我不会开MiniKube。

示例:

我正在开发一个需要访问电子邮件服务的用户服务。电子邮件服务已经在Kubernetes上,并且是一个内部服务。

因此,在部署用户服务之前,我希望能够与内部电子邮件服务进行开发/测试。我不能使用K8S漂亮的服务发现env-vars。

由于我们目前已经有了一个VPN,将DEV env限制为仅限测试人员/开发人员使用,我可以使用这个VPN来提供对Kubernetes服务IP地址的访问吗?我确实在VPN所在的VPC上有Kubernetes DEV env。

如果您将内部服务部署为类型NodePort,那么您可以通过该节点端口通过VPN访问它们。NodePort可以是动态分配的,也可以在您预先知道的情况下将其自定义为"静态"。

在本地机器上开发应用程序时,您可以通过该NodePort访问相关服务。

作为替代方案,您可以使用kubectl中的port-forwarding(https://kubernetes.io/docs/user-guide/connecting-to-applications-port-forward/)将pod转发到本地机器。(注意:这只处理到pod的流量,而不是服务)。

远程呈现(http://telepresence.io)是为这个场景设计的,尽管它假定开发人员有kubectl访问staging/dev集群的权限。

最新更新