创建TLS入口资源时如何(重新)使用现有的静态IP地址?

时间:2016-09-23 18:50:05

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

我使用以下配置创建(已启用的)入口资源:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: my-app-apis
spec:
  tls:
  - secretName: tls-secret
  backend:
    serviceName: my-web-service
    servicePort: 80

每次都会配置一个新的静态IP地址。 是否可以重用现有的?

(我在GKE上使用Kubernetes)

2 个答案:

答案 0 :(得分:4)

您可以在Ingress上的注释中指定IP地址(看起来您是按名称而不是IP地址指定的)。这只是由GCE控制器接收,所以不要指望它可以在除GCE / GKE之外的任何地方工作。

https://github.com/kubernetes/contrib/blob/master/ingress/controllers/gce/controller/utils.go#L48

这样的事情应该有效:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
 name: myingress
 annotations:
   "kubernetes.io/ingress.global-static-ip-name": my-ip-name
spec:
  ...

答案 1 :(得分:0)

您是否按照本教程创建了入口对象:https://cloud.google.com/container-engine/docs/tutorials/http-balancer

如果我没记错(我也使用http而不是https)我必须手动为GLBc分配静态IP:

https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules

  

此转发规则代表的保留IP地址的值。对于全局转发规则,地址必须是全局IP;对于区域转发规则,该地址必须与转发规则位于同一区域。如果留空(默认值),将分配来自同一范围(全局或区域)的临时IP。