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 的連線。

此條目有幫助嗎?