【问题标题】:Pre-deploy development communication with an Internal Kubernetes service与内部 Kubernetes 服务进行预部署开发通信
【发布时间】:2017-06-04 20:03:15
【问题描述】:

我正在研究迁移到 Kubernetes(来自 AWS ECS)。但是在依赖内部服务的时候,本地开发的问题还没有解决。

让我详细说明:

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

示例:

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

所以在部署用户服务之前,我希望能够与内部电子邮件服务进行开发/测试。我无法使用 K8S nice service discovery env vars。

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

【问题讨论】:

    标签: amazon-web-services kubernetes vpn


    【解决方案1】:

    如果您将内部服务部署为 NodePort 类型,那么您可以通过该 nodePort 通过 VPN 访问它们。 NodePorts 可以动态分配,或者您可以将它们自定义为“静态”,您可以预先知道它们。

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

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

    【讨论】:

      【解决方案2】:

      Telepresence (http://telepresence.io) 专为这种情况而设计,尽管它假定开发人员拥有对 staging/dev 集群的 kubectl 访问权限。

      【讨论】:

        猜你喜欢
        • 2020-04-11
        • 1970-01-01
        • 1970-01-01
        • 2020-09-15
        • 1970-01-01
        • 2020-01-31
        • 2022-01-23
        • 2016-12-22
        • 2019-05-01
        相关资源
        最近更新 更多