Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes 如何在nginx入口控制器上使用云装甲?_Kubernetes_Load Balancing_Gcloud_Nginx Ingress_Google Cloud Armor - Fatal编程技术网

Kubernetes 如何在nginx入口控制器上使用云装甲?

Kubernetes 如何在nginx入口控制器上使用云装甲?,kubernetes,load-balancing,gcloud,nginx-ingress,google-cloud-armor,Kubernetes,Load Balancing,Gcloud,Nginx Ingress,Google Cloud Armor,首先,我正在使用一个Nginx入口控制器和gke的头盔,我正在使用ModSecurity作为waf。尽管如此,我还是在研究一种新型的waf来显示预防效果,而云盔甲看起来正是我想要的。不幸的是,它只适用于HTTP/HTTPS负载平衡器,但我的Nginx ingress外部负载平衡器是TCP负载平衡器。就我所知,我无法将这个负载平衡器的TCP协议转换为HTTP/HTTPS 其次,我尝试创建一个新的云负载均衡器来路由流量。不幸的是,即使我可以在它上面安装活动云装甲,路由也没有像我预期的那样工作,因为它

首先,我正在使用一个Nginx入口控制器和gke的头盔,我正在使用ModSecurity作为waf。尽管如此,我还是在研究一种新型的waf来显示预防效果,而云盔甲看起来正是我想要的。不幸的是,它只适用于HTTP/HTTPS负载平衡器,但我的Nginx ingress外部负载平衡器是TCP负载平衡器。就我所知,我无法将这个负载平衡器的TCP协议转换为HTTP/HTTPS

其次,我尝试创建一个新的云负载均衡器来路由流量。不幸的是,即使我可以在它上面安装活动云装甲,路由也没有像我预期的那样工作,因为它返回了502,即使它的健康检查看起来还可以

最后,我尝试将BackendConfig与yaml一起使用:

apiVersion: cloud.google.com/v1beta1
kind: BackendConfig
metadata:
  name: armor-backendconfig
spec:
  securityPolicy:
    name: "bla-armor"


而且它再也不起作用了。这是我最后的希望。这里有什么建议吗?

我怀疑这是一种预期行为。我发现这个GitHub引用了相同的行为。还请注意,目前,GCP不支持第三方进入,如针对云装甲的Nginx,并且不会对DDoS攻击进行过滤。此实现有一些功能要求,但到目前为止,尚未提供ETA支持。
apiVersion: cloud.google.com/v1beta1
kind: BackendConfig
metadata:
  name: armor-backendconfig
spec:
  securityPolicy:
    name: "bla-armor"
apiVersion: v1
kind: Service
metadata:
  annotations:
    cloud.google.com/backend-config: '{"ports": {"443":"bla-backendconfig"}}'
spec:
  clusterIP: xx.xx.xx.xx
  externalTrafficPolicy: Local
  healthCheckNodePort: xxxxxxx
  loadBalancerIP: xx.xx.xxxx.xx
  ports:
   - name: http
     nodePort: 31000
     port: 80
     protocol: TCP
     targetPort: http