google-kubernetes-engine - cloudsql_proxy 的 GKE 网络策略
问题描述
我尝试在 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 timeout
如何设置 NetworkPolicy ?
※ 我已经弄清楚如果 NetrowkPolicy 中没有出口规则,连接工作正常
解决方案
我发现必须为 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
---
推荐阅读
- javascript - Angular 2+使用“onChange”功能在div上动态添加html文本
- android - Spinner 在 android 中打开 Activity 时多次调用相同的函数
- python - 使用 Scikit-Learn 的 Python 代码在 SVC 中卡住且没有错误
- xamarin - 以 xamarin 表单将页面导航到另一个页面时 UI 冻结
- javascript - 如何在按钮中的向下箭头和向上箭头之间切换?
- algorithm - 将时间和成本转换为单一统一的衡量标准(或分数)
- css - 角度材料 - 将代码拆分为组件时的意外行为
- sql - 具有多个日期字段的每个日期的 SQL COUNT
- laravel - Laravel 在非主字段上自增
- angular - 讲述人在 Angular 应用程序中读出“视图中没有项目”