我正在调查迁移到Kubernetes (来自AWS ECS)。但是我还没有解决依赖内部服务时的本地发展问题。
让我详细说明:
在开发和测试微服务时,在将它们部署为Kubernetes服务之前,我希望能够与其他内部Kubernetes服务进行对话。因为有超过20个微服务,所以我有一个运行最新开发版本的Kubernetes集群。我不能运行MiniKube。
示例:
我正在开发一个用户服务,需要访问电子邮件服务。电子邮件服务已经在Kubernetes上,是一项内部服务。
因此,在部署用户服务之前,我希望能够与内部电子邮件服务通信以进行开发/测试。我不能使用K8S很好的服务发现环境变量。
由于我们目前已经有了一个VPN,仅限测试人员/开发人员使用DEV环境,我是否可以使用此VPN来提供对Kubernetes-Service IP地址的访问?我将Kubernetes DEV-env放在VPN所在的同一个VPC上。
发布于 2017-01-30 09:53:43
如果您将内部服务部署为NodePort类型,则可以通过该nodePort在您的VPN上访问它们。NodePorts可以是动态分配的,或者您可以将它们自定义为“静态”,这样您就可以预先知道它们。
在本地计算机上开发应用程序时,您可以通过该NodePort访问依赖的服务。
或者,您可以使用kubectl (https://kubernetes.io/docs/user-guide/connecting-to-applications-port-forward/)中的port-forwarding将pod转发到本地计算机。(注意:这只处理到pod的流量,而不是服务)。
发布于 2017-07-14 04:37:00
网真(http://telepresence.io)就是为此场景而设计的,尽管它假定开发人员拥有对暂存/开发集群的kubectl访问权限。
https://stackoverflow.com/questions/41753370
复制相似问题