gpt4 book ai didi

kubernetes - Cloud Composer 无法连接到 Cloud SQL 代理服务

转载 作者:行者123 更新时间:2023-12-02 12:05:45 31 4
gpt4 key购买 nike

我们启动了一个 Cloud Composer 集群,并希望使用它来将数据从 Cloud SQL (Postgres) 移动到 BQ。我遵循了这两个资源中提到的有关执行此操作的说明:

Google Cloud Composer and Google Cloud SQL

https://cloud.google.com/sql/docs/postgres/connect-kubernetes-engine

我们启动一个运行 cloud_sql_proxy 的 pod 并启动一个服务来公开该 pod。问题是 Cloud Composer 在尝试使用临时查询进行测试时看不到说明错误的服务:
cloud not translate host name "sqlproxy-service" to address: Name or service not known"
通过服务 IP 地址尝试会导致页面超时。
-instances在本地环境或云 shell 中使用时传递给 cloud_sql_proxy 工作。日志文件似乎表明从未尝试过连接

me@cloudshell:~ (my-proj)$ kubectl logs -l app=sqlproxy-service
me@2018/11/15 13:32:59 current FDs rlimit set to 1048576, wanted limit is 8500. Nothing to do here.

2018/11/15 13:32:59 using credential file for authentication; email=my-service-account@service.iam.gserviceaccount.com
2018/11/15 13:32:59 Listening on 0.0.0.0:5432 for my-proj:my-ds:my-db
2018/11/15 13:32:59 Ready for new connections

我在这里看到一条评论 https://stackoverflow.com/a/53307344/1181412可能这甚至不被支持?

Airflow

enter image description here

YAML
apiVersion: v1
kind: Service
metadata:
name: sqlproxy-service
namespace: default
labels:
app: sqlproxy
spec:
ports:
- port: 5432
protocol: TCP
targetPort: 5432
selector:
app: sqlproxy
sessionAffinity: None
type: ClusterIP
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: sqlproxy
labels:
app: sqlproxy
spec:
selector:
matchLabels:
app: sqlproxy
template:
metadata:
labels:
app: sqlproxy
spec:
containers:
- name: cloudsql-proxy
ports:
- containerPort: 5432
protocol: TCP
image: gcr.io/cloudsql-docker/gce-proxy:latest
imagePullPolicy: Always
command: ["/cloud_sql_proxy",
"-instances=my-proj:my-region:my-db=tcp:0.0.0.0:5432",
"-credential_file=/secrets/cloudsql/credentials.json"]
securityContext:
runAsUser: 2 # non-root user
allowPrivilegeEscalation: false
volumeMounts:
- name: cloudsql-instance-credentials
mountPath: /secrets/cloudsql
readOnly: true
volumes:
- name: cloudsql-instance-credentials
secret:
secretName: cloudsql-instance-credentials

最佳答案

您在链接的答案中找到的信息是正确的 - 不支持从 Airflow Web 服务器到 Composer 环境中集群内部服务的临时查询。这是因为 Web 服务器在 App Engine flex 上运行,使用自己的独立网络(未连接到 GKE 集群),您可以在 Composer architecture diagram 中看到.

既然是这种情况,您的 SQL 代理必须在公共(public) IP 地址上公开,以便 Composer Airflow Web 服务器连接到它。对于在 GKE 集群中监听 RFC1918 地址的任何服务/端点(即未在公共(public) IP 上公开),您将需要额外的网络配置来接受外部连接。

如果这是您的主要障碍,请考虑运行 self-managed Airflow web server .由于此 Web 服务器将与您设置的 SQL 代理在同一个集群中运行,因此名称解析将不再有任何问题。

关于kubernetes - Cloud Composer 无法连接到 Cloud SQL 代理服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53321157/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com