如何在GKE Ingress中关闭80端口?配置方法咨询
GKE Ingress 关闭对外80端口配置方法
完全可以实现关闭负载均衡器的80端口,只需在Ingress的metadata里添加一个注解即可,具体操作如下:
- 核心修改:在Ingress的
metadata.annotations中添加kubernetes.io/ingress.allow-http: "false",这个注解会告诉GKE Ingress控制器不要创建对外的80端口转发规则,只保留443端口用于HTTPS访问。
修改后的完整Ingress配置如下:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: foo-ingress namespace: foo annotations: kubernetes.io/ingress.allow-http: "false" # 关键注解,关闭对外80端口 spec: tls: - hosts: - foo.example.com secretName: foo-example-com-cert rules: - host: foo.example.com http: paths: - path: / pathType: Prefix backend: service: name: foo-service port: number: 80
需要注意的是:
- 后端Service监听80端口完全没问题,这是集群内部的通信端口,和对外的LB端口无关,Ingress控制器会在TLS终止后,将HTTPS请求转发到后端的80端口。
- 添加该注解后,GKE创建的负载均衡器只会开放443端口,不会再处理80端口的请求,也不会做HTTP到HTTPS的跳转(因为80端口直接关闭了)。
内容的提问来源于stack exchange,提问作者Ovesh
相关产品推荐
相关产品推荐

