Google compute engine Kubernetes服务和集群与Google计算引擎对象之间的关系是什么?

Google compute engine Kubernetes服务和集群与Google计算引擎对象之间的关系是什么?,google-compute-engine,kubernetes,google-kubernetes-engine,Google Compute Engine,Kubernetes,Google Kubernetes Engine,我正在设置在Google容器引擎上运行的两个服务,通过使用路径映射的Google HTTP负载平衡器输入流量 关于建立基于内容的负载平衡,有一个很好的Google教程,但它都是从普通的Google计算对象(如实例组和后端服务)的角度进行的。一、 但是,我们有Kubernetes服务、POD和集群 Kubernetes对象和Google计算资源之间的关系是什么?如何以编程方式在两者之间映射 (如前所述,我知道我可能使用Kubernetes web ingress对象来进行平衡,但看起来Kubern

我正在设置在Google容器引擎上运行的两个服务,通过使用路径映射的Google HTTP负载平衡器输入流量

关于建立基于内容的负载平衡,有一个很好的Google教程,但它都是从普通的Google计算对象(如实例组和后端服务)的角度进行的。一、 但是,我们有Kubernetes服务、POD和集群

Kubernetes对象和Google计算资源之间的关系是什么?如何以编程方式在两者之间映射

(如前所述,我知道我可能使用Kubernetes web ingress对象来进行平衡,但看起来Kubernetes ingress还不支持HTTPS,这需要一种新的方式。)

Kubernetes对象和Google计算资源之间的关系是什么?如何以编程方式在两者之间映射

(我知道我可能会使用Kubernetes web ingress对象来进行平衡,正如这里所解释的,但看起来Kubernetes ingress还不支持HTTPS,这需要一种新的方式。)

入口将支持1.2中的HTTPS。这是资源的外观:。同时,您可以使用入口设置HTTP负载平衡,并手动修改它以支持https。事先道歉,这是复杂的,它会很快变得更好

首先创建HTTP入口:

  • 创建服务
  • 确保你有
  • 创建一个
  • 在防火墙中公开服务的节点端口(也如中所述)
  • 等到库贝特描述他的表演
  • 此时,您应该能够卷曲您的入口loadbalancer IP并点击nginx服务(或您在步骤1中创建的任何服务)

    然后通过手动执行以下操作:

  • 将入口资源的IP从“Ephmermal”更改为“Static”(在“外部IP地址”选项卡中的
    kubectl get ing
    中查找IP)
  • 创建ssl证书。如果您只需要自签名证书,可以执行以下操作:
  • openssl请求-x509-节点-365天-新密钥rsa:2048-keyout/tmp/nginx.key-out/tmp/nginx.crt-subc“/CN=nginxsvc/O=nginxsvc”

  • 为HTTPS负载平衡器创建新的目标HTTPS代理和转发规则,并将其分配给http负载平衡器的相同(静态)IP

  • 此时,您应该能够curl-k

    到GLBC文档的链接非常有用,谢谢。然而,我仍然有一个问题:如何将其他GCE概念添加到入口,或者如何将k8s集群外部的服务添加到入口。特别是,我有一个gcloud计算“地址”,我想用于这个入口;有没有办法在yaml文件中指定?如果没有,是否可以使用gcloud在命令行上指定?(我试图在这里有一个可复制的过程,因此尽量避免使用UI控制台。)嗨,安娜(已经有一段时间了)!我认为最好的办法可能是将入口对象放在一起,然后配置自己的自定义L7负载平衡配置。然后,您可以使用平衡器配置中未通过入口抽象公开的所有高级功能。您必须首先将该服务作为节点端口服务导入Kubernetes,并将入口指向该节点端口服务。您可以通过创建不带选择器的服务来导入它:(确保服务的类型为NodePort,并且您创建的端点具有外部服务的IP)。在这一点上,它就像任何其他节点端口服务一样。请注意,您正在跳转L7->k8s节点->您的外部服务,因此这显然是次优性能。感谢Robert和Prashant。我听从了罗伯特的建议(更多细节见附录),效果非常好。我缺少的关键洞察是认识到k8s集群相当于一个计算实例组,我可以将我的NodePort设置为组上的一个命名端口,然后将其视为一个常规计算服务,以便在平衡器后面进行配置。