谷歌容器引擎中的Kubernetes HTTPS Ingress

7

我希望在Google容器引擎上运行的HTTP服务通过仅HTTPS负载均衡器公开。

如何在Ingress对象中定义,我想要仅HTTPS负载均衡器,而不是默认的HTTP?

或者有没有一种方法可以永久删除创建的负载均衡器中的HTTP协议?当我添加了HTTPS协议并删除HTTP协议时,该平台会在几分钟后重新创建HTTP

Ingress:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: myapp-ingress
spec:
  backend:
    serviceName: myapp-service
    servicePort: 8080
2个回答

4
为了仅暴露HTTPs服务,您可以像此链接中所述一样阻止80端口的流量:链接:
通过注释可以阻止:80上的流量。如果所有客户端都只通过https访问负载均衡器,并且您不想浪费额外的GCE转发规则,则可能希望这样做,例如:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: test
  annotations:
    kubernetes.io/ingress.allow-http: "false"
spec:
  tls:
  # This assumes tls-secret exists.
  # To generate it run the make in this directory.
  - secretName: tls-secret
  backend:
    serviceName: echoheaders-https
    servicePort: 80

1
您也可以使用FrontendConfig
通过在FrontendConfig自定义资源中使用redirectToHttps字段配置HTTP到HTTPS重定向。重定向对整个Ingress资源启用,因此Ingress引用的所有服务都将启用HTTPS重定向。
以下FrontendConfig清单启用了HTTP到HTTPS重定向。将spec.redirectToHttps.enabled字段设置为true以启用HTTPS重定向。spec.responseCodeName字段是可选的。如果省略,则使用301永久重定向。
例如:
apiVersion: networking.gke.io/v1beta1
kind: FrontendConfig
metadata:
  name: your-frontend-config-name
spec:
  redirectToHttps:
    enabled: true
    responseCodeName: MOVED_PERMANENTLY_DEFAULT
MOVED_PERMANENTLY_DEFAULT 是可用的 RESPONSE_CODE 字段值之一,用于返回一个 301 重定向响应代码(如果未指定 responseCodeName,则默认为此)。
您可以在此处找到更多选项:HTTP 到 HTTPS 重定向 然后,您需要将您的 FrontendConfig 链接到 Ingress,如下所示:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: your-ingress-name
  annotations:
    networking.gke.io/v1beta1.FrontendConfig: your-frontend-config-name
spec:
  tls:
    ...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接