airflow.providers.google.cloud.hooks.kubernetes_engine

此模块包含一个 Google Kubernetes Engine Hook。

属性

OPERATIONAL_POLL_INTERVAL

GKEClusterConnection

用于建立到 GKE 集群连接的帮助类。

GKEHook

Google Kubernetes Engine 集群 API。

GKEAsyncHook

GKE 的异步客户端。

GKEKubernetesHook

用于标准 Kubernetes API 的 GKE 认证 Hook。

GKEKubernetesAsyncHook

用于标准 Kubernetes API 的异步 GKE 认证 Hook。

模块内容

airflow.providers.google.cloud.hooks.kubernetes_engine.OPERATIONAL_POLL_INTERVAL = 15[source]
class airflow.providers.google.cloud.hooks.kubernetes_engine.GKEClusterConnection(cluster_url, ssl_ca_cert, credentials, enable_tcp_keepalive=False, use_dns_endpoint=False)[source]

用于建立到 GKE 集群连接的帮助类。

enable_tcp_keepalive = False[source]
use_dns_endpoint = False[source]
get_conn()[source]
class airflow.providers.google.cloud.hooks.kubernetes_engine.GKEHook(gcp_conn_id='google_cloud_default', location=None, impersonation_chain=None, **kwargs)[source]

Bases: airflow.providers.google.common.hooks.base_google.GoogleBaseHook

Google Kubernetes Engine 集群 API。

Hook 中所有使用到 project_id 的方法必须使用关键字参数而非位置参数调用。

location = None[source]
get_cluster_manager_client()[source]

创建或获取一个 ClusterManagerClient。

wait_for_operation(operation, project_id=PROVIDE_PROJECT_ID)[source]

持续从 Google Cloud 获取状态。

此操作会一直进行,直到给定的操作完成或引发错误。

参数:
返回值:

从 Google Cloud 获取的新的、已更新的操作。

返回类型:

google.cloud.container_v1.types.Operation

get_operation(operation_name, project_id=PROVIDE_PROJECT_ID)[source]

从 Google Cloud 获取一个操作。

参数:
  • operation_name (str) – 要获取的操作名称

  • project_id (str) – Google Cloud 项目 ID

返回值:

从 Google Cloud 获取的新的、已更新的操作

返回类型:

google.cloud.container_v1.types.Operation

delete_cluster(name, project_id=PROVIDE_PROJECT_ID, wait_to_complete=True, retry=DEFAULT, timeout=None)[source]

删除集群、Kubernetes 端点和所有工作节点。

集群创建期间配置的防火墙和路由也会被删除。集群可能正在使用的其他 Google Compute Engine 资源(例如负载均衡器资源)如果在初始创建时不存在,则不会被删除。

参数:
  • name (str) – 要删除的集群名称。

  • project_id (str) – Google Cloud 项目 ID。

  • wait_to_complete (bool) – 如果为 True,则等待删除完成再返回。

  • retry (google.api_core.retry.Retry | google.api_core.gapic_v1.method._MethodDefault) – 用于确定何时/是否重试请求的重试对象。如果指定为 None,则不会重试请求。

  • timeout (float | None) – 等待请求完成的时间量,单位为秒。注意,如果指定了 retry,则超时适用于每个单独的尝试。

返回值:

如果成功,则返回删除操作的完整 URL,否则返回 None。

返回类型:

google.cloud.container_v1.types.Operation | None

create_cluster(cluster, project_id=PROVIDE_PROJECT_ID, wait_to_complete=True, retry=DEFAULT, timeout=None)[source]

创建一个集群。

这应该包含指定数量和类型的 Google Compute Engine 实例。

参数:
  • cluster (dict | google.cloud.container_v1.types.Cluster) – 一个 Cluster protobuf 或字典。如果提供字典,其形式必须与 protobuf 消息 google.cloud.container_v1.types.Cluster 相同。

  • project_id (str) – Google Cloud 项目 ID。

  • wait_to_complete (bool) – 一个布尔值,如果为 True,则方法会在创建操作未完成时休眠等待。

  • retry (google.api_core.retry.Retry | google.api_core.gapic_v1.method._MethodDefault) – 用于重试请求的重试对象(google.api_core.retry.Retry)。如果指定为 None,则不会重试请求。

  • timeout (float | None) – 等待请求完成的时间量,单位为秒。注意,如果指定了 retry,则超时适用于每个单独的尝试。

返回值:

新的或现有集群的完整 URL。

抛出:
  • ParseError – 在尝试转换字典时出现 JSON 解析问题。

  • AirflowException – cluster 不是字典类型,也不是 Cluster proto 类型。

返回类型:

google.cloud.container_v1.types.Operation | google.cloud.container_v1.types.Cluster

get_cluster(name, project_id=PROVIDE_PROJECT_ID, retry=DEFAULT, timeout=None)[source]

获取指定集群的详细信息。

参数:
  • name (str) – 要检索的集群名称。

  • project_id (str) – Google Cloud 项目 ID。

  • retry (google.api_core.retry.Retry | google.api_core.gapic_v1.method._MethodDefault) – 用于重试请求的重试对象。如果指定为 None,则不会重试请求。

  • timeout (float | None) – 等待请求完成的时间量,单位为秒。注意,如果指定了 retry,则超时适用于每个单独的尝试。

check_cluster_autoscaling_ability(cluster)[source]

检查指定的集群是否具有自动伸缩能力。

集群应为 Autopilot 类型,或者具有节点自动配置或常规自动伸缩的节点池。如果集群支持自动伸缩,则返回 True,否则返回 False。

参数:

cluster (google.cloud.container_v1.types.Cluster | dict) – Cluster 对象。

class airflow.providers.google.cloud.hooks.kubernetes_engine.GKEAsyncHook(gcp_conn_id='google_cloud_default', location=None, impersonation_chain=None, **kwargs)[source]

Bases: airflow.providers.google.common.hooks.base_google.GoogleBaseAsyncHook

GKE 的异步客户端。

sync_hook_class[source]
location = None[source]
async get_operation(operation_name, project_id=PROVIDE_PROJECT_ID)[source]

从 Google Cloud 获取一个操作。

参数:
  • operation_name (str) – 要获取的操作名称。

  • project_id (str) – Google Cloud 项目 ID。

返回值:

从 Google Cloud 获取的新的、已更新的操作。

返回类型:

google.cloud.container_v1.types.Operation

class airflow.providers.google.cloud.hooks.kubernetes_engine.GKEKubernetesHook(cluster_url, ssl_ca_cert, enable_tcp_keepalive=False, use_dns_endpoint=False, *args, **kwargs)[source]

Bases: airflow.providers.google.common.hooks.base_google.GoogleBaseHook, airflow.providers.cncf.kubernetes.hooks.kubernetes.KubernetesHook

用于标准 Kubernetes API 的 GKE 认证 Hook。

此 Hook 提供了 KubernetesHook 提供的全套标准 Kubernetes API,同时它还提供了 GKE 认证,因此可以在 GKE 集群上使用 KubernetesHook 的功能。

enable_tcp_keepalive = False[source]
use_dns_endpoint = False[source]
get_conn()[source]

返回 Hook 的连接。

apply_from_yaml_file(api_client=None, yaml_file=None, yaml_objects=None, verbose=False, namespace='default')[source]

从 YAML 文件执行操作。

参数:
  • api_client (Any) – Kubernetes 客户端应用程序。

  • yaml_file (str | None) – 包含 YAML 文件的路径。

  • yaml_objects (list[dict] | None) – YAML 对象列表;用于替代读取 yaml_file。

  • verbose (bool) – 如果为 True,则打印创建操作的确认信息。默认为 False。

  • namespace (str) – 包含要在其中创建所有资源的命名空间。该命名空间必须预先存在,否则资源创建将失败。

class airflow.providers.google.cloud.hooks.kubernetes_engine.GKEKubernetesAsyncHook(cluster_url, ssl_ca_cert, gcp_conn_id='google_cloud_default', impersonation_chain=None, enable_tcp_keepalive=True, **kwargs)[source]

Bases: airflow.providers.google.common.hooks.base_google.GoogleBaseAsyncHook, airflow.providers.cncf.kubernetes.hooks.kubernetes.AsyncKubernetesHook

用于标准 Kubernetes API 的异步 GKE 认证 Hook。

此 Hook 提供了 AsyncKubernetesHook 提供的全套标准 Kubernetes API,同时它还提供了 GKE 认证,因此可以在 GKE 集群上使用 KubernetesHook 的功能。

sync_hook_class[source]
scopes = ['https://www.googleapis.com/auth/cloud-platform'][source]
enable_tcp_keepalive = True[source]
async get_conn()[source]

返回 Hook 的连接。

此条目有帮助吗?