Kubernetes服务和集群与Google Compute Engine对象之间的关系是什么?

时间:2016-02-16 19:41:34

标签: google-compute-engine kubernetes google-kubernetes-engine

我正在设置一些在Google容器引擎上运行的服务,并使用路径映射通过Google HTTP负载均衡器传输流量。

有一个很好的Google教程可以设置基于内容的负载均衡here,但这些都是关于普通的Google Compute对象,例如实例组和后端服务。但是,我有Kubernetes服务,pods和集群。

Kubernetes对象与Google Compute资源之间的关系是什么?如何以编程方式在两者之间进行映射?

(我知道我可以使用Kubernetes网络入口对象进行平衡,如here所述,但看起来Kubernetes Ingress还不支持需要的HTTPS。)

1 个答案:

答案 0 :(得分:3)

  

Kubernetes对象与Google Compute资源之间的关系是什么?如何以编程方式在两者之间进行映射?

https://github.com/kubernetes/contrib/tree/master/Ingress/controllers/gce#overview

  

(我知道我可以使用Kubernetes网络入口对象进行平衡,如此处所述,但看起来Kubernetes Ingress还不支持需要的HTTPS。)

Ingress将在1.2中支持HTTPS。这就是资源的样子:https://github.com/kubernetes/kubernetes/issues/19497#issuecomment-174112834。同时,您可以使用Ingress设置HTTP负载平衡,并手动修改它以支持https。事先道歉,这是令人费解的,它会很快好起来的。

首先创建一个HTTP Ingress:

  1. 创建Type=NodePort
  2. 服务
  3. 确保您拥有BackendService quota
  4. 创建HTTP Ingress
  5. 在防火墙中公开服务的节点端口(也如https://cloud.google.com/container-engine/docs/tutorials/http-balancer中所述)
  6. 等到kubect描述节目HEALTHY for you backends
  7. 此时你应该能够卷曲你的Ingress负载均衡器IP并点击nginx服务(或你在步骤1中创建的任何服务)。

    然后通过GCE console

    手动执行以下操作
    1. 将Ingress资源的IP从“Ephmermal”更改为“Static”(在“外部IP地址”选项卡中查找kubectl get ing中的IP)
    2. 创建您的ssl证书。如果您只想要一个自签名证书,您可以这样做:
    3.   

      openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /tmp/nginx.key -out /tmp/nginx.crt -subj“/ CN = nginxsvc / O = nginxsvc”

      1. 为HTTPS负载均衡器创建新的目标HTTPS代理和转发规则,并将其分配给http负载均衡器的相同(静态)IP。
      2. 此时你应该可以卷曲https://loadbalancer-ip -k