【问题标题】:GKE networkpolicy for cloudsql_proxycloudsql_proxy 的 GKE 网络策略
【发布时间】:2021-10-26 11:52:32
【问题描述】:

我尝试在 GKE 上使用 NetworkPolicy。

我的 pod api 有 API 应用和 cloudSql 代理

        image: myapi
        name: myapi
        ports:
        - containerPort: 3001
      - command:
        - /cloud_sql_proxy
        - -instances=my-project:asia-northeast1:my-instance=tcp:3307
        - -ip_address_types=PRIVATE
        image: gcr.io/cloudsql-docker/gce-proxy:1.16
        name: cloudsql-proxy

我不知道要设置什么样的出口规则。我只是尝试设置127.0.0.1:3307,但它一定不是;因为 api -> cloudsql_proxy 是 127.0.0.1:3307。

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  labels:
    env: develop
    projectid: my-project
  name: my-networkpolicy
spec:
  egress:
  - ports:
    - port: 3307
      protocol: TCP
    to:
    - ipBlock:
        cidr: 127.0.0.1/32

错误

获取https://www.googleapis.com/sql/v1beta4/projects/my-project/instances/my-instance?alt=json&prettyPrint=false:拨号tcp:i/o超时

如何设置 NetworkPolicy ?

※ 我已经知道如果 NetrowkPolicy 中没有出口规则,连接工作正常

【问题讨论】:

  • 你有什么特别的理由在这里设置NetworkPolicy吗?它应该没有任何工作。从你使用的端口来看,是 MySQL 实例吧?
  • 出于安全要求,我需要设置一些网络规则。而且我认为设置 NetworkPolicy 比设置防火墙规则更好。

标签: google-kubernetes-engine cloud-sql-proxy


【解决方案1】:

我发现必须为 cloudsql-proxy 添加 UDP:53

---
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  labels:
    env: develop
    projectid: my-project
  name: my-networkpolicy
spec:
  egress:
  - ports:
    - port: 443
      protocol: TCP
    - port: 53
      protocol: UDP
    to:
    - ipBlock:
        cidr: 0.0.0.0/0
---

【讨论】:

    猜你喜欢
    • 2020-12-13
    • 1970-01-01
    • 2020-04-13
    • 2021-01-17
    • 2021-04-28
    • 2021-09-14
    • 1970-01-01
    • 1970-01-01
    • 2019-12-15
    相关资源
    最近更新 更多