我希望能够使用集群将kubernetes吊舱从其DAG中发射到一个单独的GKE自动驾驶仪集群上,而不是在Composer的GKE集群上。
我已经创建了一个GKE自动驾驶集群,将“控制平面全局访问”设置为禁用,并且只允许某些授权网络连接到控制平面。(基于文档中推荐的安全最佳实践)
我的吊舱都无法启动,并有以下错误消息:
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='3X.XXX.XXX.XX6', port=443): Max retries exceeded with url: /api/v1/namespaces/sink/pods?labelSelector=dag_id%3Dtest_dag%2Cexecution_date%3D2021-03-17T212059.4745700000-f0b251c80%2Ctask_id%3Dtest_sync (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f0f3f6a4e80>: Failed to establish a new connection: [Errno 110] Connection timed out',)
我使用的是GKEStartPodOperator,它以前能够在GKE集群上启动豆荚,该集群是自我管理的(不是自动驾驶仪),并且没有禁用“控制平面全局访问”。
是否有关于如何设置Composer以连接到GKE自动驾驶仪群集的文档,该集群不公开对控制平面和发射舱的全局访问?
发布于 2021-03-18 00:49:37
即使使用GKE,您也可以使用最初编写用于普通GKE集群(如GKEStartPodOperator )的同一组操作符。由于您看到的错误是Kubernetes控制平面的超时,所以您的授权网络设置很可能不包括Composer环境的工作人员使用的地址。
如果您使用的是标准的Composer环境(非私有IP),则需要确保GCP范围包括在您授权的网络中(因为您的环境的节点被分配了短暂的公共地址)。
如果您使用的是私有IP环境,那么您可以使用私有连接来到达Kubernetes控制平面,或者可以配置Cloud NAT以允许您的环境使用静态IP地址访问网络资源。在后一种情况下,NAT的IP地址需要包含在您的授权网络设置中。
https://stackoverflow.com/questions/66681638
复制相似问题