查看 Google Cloud Managed Service for Apache Kafka 叢集

如要查看叢集,可以使用 Google Cloud 控制台、Google Cloud CLI、用戶端程式庫或 Managed Kafka API。您無法使用開放原始碼 Apache Kafka API 查看叢集。

查看叢集所需的角色和權限

如要取得查看叢集所需的權限,請要求管理員授予您專案的代管 Kafka 檢視者 (roles/managedkafka.viewer) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

這個預先定義的角色具備查看叢集所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:

所需權限

如要查看叢集,必須具備下列權限:

  • 列出叢集: managedkafka.clusters.list
  • 取得叢集詳細資料: managedkafka.clusters.get

您或許還可透過自訂角色或其他預先定義的角色取得這些權限。

查看叢集

如要查看叢集,請按照下列步驟操作:

控制台

  1. 前往 Google Cloud 控制台的「Clusters」(叢集) 頁面。

    前往「Clusters」(叢集)

    系統會列出您在專案中建立的叢集。

  2. 如要查看特定叢集,請按一下叢集名稱。

  3. 叢集詳細資料頁面隨即開啟。這個頁面包含下列分頁:

    • 資源:顯示與叢集相關的主題和消費者群組清單。
    • 存取控管:顯示叢集的 ACL 項目。
    • 設定:顯示叢集的設定,包括與叢集相關聯的子網路清單。
    • 監控:顯示與叢集相關聯的監控快訊。
    • 記錄:顯示 Logs Explorer 中與叢集相關的記錄。
    • 來源:提供建立 Kafka Connect 來源連接器或生成合成測試資料的捷徑。
    • 接收器:提供建立 Kafka Connect 接收器連接器的快速鍵。

gcloud

  1. 在 Google Cloud 控制台中啟用 Cloud Shell。

    啟用 Cloud Shell

    Google Cloud 控制台底部會開啟 Cloud Shell 工作階段,並顯示指令列提示。Cloud Shell 是已安裝 Google Cloud CLI 的殼層環境,並已設定適用於您目前專案的值。工作階段可能要幾秒鐘的時間才能初始化。

  2. 使用下列任何指令資料之前,請先替換以下項目:

    • PROJECT_ID:專案 ID。
    • LOCATION:叢集位置。
    • CLUSTER_ID:叢集 ID。

    執行下列指令:

    Linux、macOS 或 Cloud Shell

    gcloud managed-kafka clusters describe CLUSTER_ID \
        --location=LOCATION \
        --project=PROJECT_ID

    Windows (PowerShell)

    gcloud managed-kafka clusters describe CLUSTER_ID `
        --location=LOCATION `
        --project=PROJECT_ID

    Windows (cmd.exe)

    gcloud managed-kafka clusters describe CLUSTER_ID ^
        --location=LOCATION ^
        --project=PROJECT_ID

    您應該會收到類似以下的回應:

    bootstrapAddress: bootstrap.CLUSTER_ID.LOCATION.managedkafka.PROJECT_ID.cloud.goog:9092
    bootstrapAddressMTLS: bootstrap.CLUSTER_ID.LOCATION.managedkafka.PROJECT_ID.cloud.goog:9192
    brokerCapacityConfig: {}
    capacityConfig:
      memoryBytes: 'MEMORY'
      vcpuCount: 'CPU_COUNT'
    createTime: 'CREATE_TIME'
    gcpConfig:
      accessConfig:
        networkConfigs:
        - subnet: projects/PROJECT_ID/regions/LOCATION/subnetworks/SUBNET_ID
        publicClusterConfig:
          allowedSourceIpRanges:
          - 203.0.113.5/32
    labels:
      goog-terraform-provisioned: 'true'
    name: projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_ID
    publicClusterDetails:
      discoveryDnsRecords:
      - discovery-1.CLUSTER_ID.LOCATION.managedkafka.PROJECT_ID.cloud.goog
      externalIpAddresses:
      - 203.0.113.1
      - 203.0.113.2
      - 203.0.113.3
      - 203.0.113.4
    rebalanceConfig:
      mode: AUTO_REBALANCE_ON_SCALE_UP
    satisfiesPzi: false
    satisfiesPzs: false
    state: ACTIVE
    tlsConfig:
      trustConfig: {}
    updateOptions: {}
    updateTime: 'UPDATE_TIME'
    

REST

使用任何要求資料之前,請先修改下列項目的值:

  • PROJECT_ID:您的 Google Cloud 專案 ID
  • LOCATION:叢集位置。
  • CLUSTER_ID:叢集 ID。
  • CLUSTER_VIEW:要傳回的中繼資料量。請指定下列其中一個值:

    • CLUSTER_VIEW_BASIC:傳回叢集的基本中繼資料。
    • CLUSTER_VIEW_FULL:傳回叢集的所有中繼資料,包括叢集代理程式的相關資訊,以及叢集執行的 Kafka 版本號碼。

    如未指定,方法預設為 CLUSTER_VIEW_BASIC。

HTTP 方法和網址:

GET https://managedkafka.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_ID?view=CLUSTER_VIEW

請展開以下其中一個選項,以傳送要求:

您應該會收到如下的 JSON 回覆:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_ID",
  "createTime": "CREATE_TIME",
  "updateTime": "UPDATE_TIME",
  "capacityConfig": {
    "vcpuCount": "CPU_COUNT",
    "memoryBytes": "MEMORY"
  },
  "rebalanceConfig": {},
  "gcpConfig": {
    "accessConfig": {
      "networkConfigs": [
        {
          "subnet": "projects/PROJECT_ID/locations/LOCATION/subnetworks/SUBNET_ID"
        }
      ],
      "publicClusterConfig": {
        "allowedSourceIpRanges": [
          "203.0.113.5/32"
        ]
      }
    }
  },
  "state": "ACTIVE",
  "satisfiesPzi": false,
  "satisfiesPzs": false,
  "tlsConfig": {
    "trustConfig": {}
  },
  "updateOptions": {},
  "publicClusterDetails": {
    "discoveryDnsRecords": [
      "discovery-1.CLUSTER_ID.LOCATION.managedkafka.PROJECT_ID.cloud.goog"
    ],
    "externalIpAddresses": [
      "203.0.113.1",
      "203.0.113.2",
      "203.0.113.3",
      "203.0.113.4"
    ]
  }
}

Go

在試用這個範例之前,請先按照「 安裝用戶端程式庫」中的 Go 設定說明操作。詳情請參閱 Managed Service for Apache Kafka Go API 參考文件。

如要向 Managed Service for Apache Kafka 進行驗證,請設定應用程式預設憑證(ADC)。 詳情請參閱「為本機開發環境設定 ADC」。

import (
	"context"
	"fmt"
	"io"

	"cloud.google.com/go/managedkafka/apiv1/managedkafkapb"
	"google.golang.org/api/option"

	managedkafka "cloud.google.com/go/managedkafka/apiv1"
)

func getCluster(w io.Writer, projectID, region, clusterID string, opts ...option.ClientOption) error {
	// projectID := "my-project-id"
	// region := "us-central1"
	// clusterID := "my-cluster"
	ctx := context.Background()
	client, err := managedkafka.NewClient(ctx, opts...)
	if err != nil {
		return fmt.Errorf("managedkafka.NewClient got err: %w", err)
	}
	defer client.Close()

	clusterPath := fmt.Sprintf("projects/%s/locations/%s/clusters/%s", projectID, region, clusterID)
	req := &managedkafkapb.GetClusterRequest{
		Name: clusterPath,
	}
	cluster, err := client.GetCluster(ctx, req)
	if err != nil {
		return fmt.Errorf("client.GetCluster got err: %w", err)
	}
	fmt.Fprintf(w, "Got cluster: %#v\n", cluster)
	return nil
}

Java

在試用這個範例之前,請先按照「 安裝用戶端程式庫」中的 Java 設定說明操作。詳情請參閱 Managed Service for Apache Kafka Java API 參考文件。

如要向 Managed Service for Apache Kafka 進行驗證,請設定應用程式預設憑證。詳情請參閱「 為本機開發環境設定 ADC」。

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.managedkafka.v1.Cluster;
import com.google.cloud.managedkafka.v1.ClusterName;
import com.google.cloud.managedkafka.v1.ManagedKafkaClient;
import java.io.IOException;

public class GetCluster {

  public static void main(String[] args) throws Exception {
    // TODO(developer): Replace these variables before running the example.
    String projectId = "my-project-id";
    String region = "my-region"; // e.g. us-east1
    String clusterId = "my-cluster";
    getCluster(projectId, region, clusterId);
  }

  public static void getCluster(String projectId, String region, String clusterId)
      throws Exception {
    try (ManagedKafkaClient managedKafkaClient = ManagedKafkaClient.create()) {
      // This operation is being handled synchronously.
      Cluster cluster = managedKafkaClient.getCluster(ClusterName.of(projectId, region, clusterId));
      System.out.println(cluster.getAllFields());
    } catch (IOException | ApiException e) {
      System.err.printf("managedKafkaClient.getCluster got err: %s", e.getMessage());
    }
  }
}

Python

在試用這個範例之前,請先按照「 安裝用戶端程式庫」中的 Python 設定說明操作。詳情請參閱 Managed Service for Apache Kafka Python API 參考文件。

如要向 Managed Service for Apache Kafka 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定 ADC」。

from google.api_core.exceptions import NotFound
from google.cloud import managedkafka_v1

# TODO(developer)
# project_id = "my-project-id"
# region = "us-central1"
# cluster_id = "my-cluster"

client = managedkafka_v1.ManagedKafkaClient()

cluster_path = client.cluster_path(project_id, region, cluster_id)
request = managedkafka_v1.GetClusterRequest(
    name=cluster_path,
)

try:
    cluster = client.get_cluster(request=request)
    print("Got cluster:", cluster)
except NotFound as e:
    print(f"Failed to get cluster {cluster_id} with error: {e.message}")

查看叢集屬性和資源

以下章節說明如何取得與 Google Cloud Managed Service for Apache Kafka 叢集相關聯的各種屬性和資源詳細資料。

啟動地址

Kafka 用戶端會使用叢集的啟動位址與叢集建立連線。叢集的啟動位址在整個生命週期內都是固定的,但啟動網址的格式可能因叢集而異。

如果叢集已啟用公開存取權,啟動程序位址會根據用戶端連線位置 (使用水平分割 DNS),自動解析為公開或私人 IP 位址。內部和外部用戶端都應使用這個相同的啟動位址連線至叢集。請勿設定 Kafka 用戶端連線至探索 DNS 記錄,這些記錄僅保留用於設定外部輸出防火牆。

如要取得啟動程序位址,請按照下列步驟操作:

控制台

  1. 前往「Managed Service for Apache Kafka」>「Clusters」(叢集) 頁面。

    前往「Clusters」(叢集)

  2. 按一下叢集名稱。

  3. 選取「Configurations」分頁標籤。

  4. 如果您使用 SASL 進行驗證,啟動網址會列在「Bootstrap URL」(啟動網址)下方。

    如果您使用相互傳輸層安全標準 (mTLS) 進行驗證,啟動網址會列在「mTLS 啟動網址」下方。

    按一下「複製」即可複製值。

gcloud

如要取得啟動網址,請使用 managed-kafka clusters describe 指令。

如果您使用 SASL 進行驗證,請執行下列指令:

gcloud managed-kafka clusters describe CLUSTER_ID \
    --location=LOCATION \
    --format="value(bootstrapAddress)"

如果您使用雙向傳輸層安全標準 (mTLS) 進行驗證,請執行下列指令:

gcloud managed-kafka clusters describe CLUSTER_ID \
    --location=LOCATION \
    --format="value(bootstrapAddressMTLS)"

更改下列內容:

  • CLUSTER_ID:叢集的 ID 或名稱。
  • LOCATION:叢集位置。

如要進一步瞭解 SASL 和 mTLS 驗證,請參閱「Kafka 代理程式的驗證類型」。

代理程式

如要查看叢集中的代理程式,請參閱「查看 Managed Service for Apache Kafka 叢集中的代理程式」。

用戶群組

取用端群組是一組取用端,可共同取用各種主題的資料。如要查看叢集的消費者群組,請參閱下列頁面:

子網路

如要查看與叢集連線的子網路,請執行下列步驟:

控制台

  1. 前往 Google Cloud 控制台的「Clusters」(叢集) 頁面。

    前往「Clusters」(叢集)

  2. 按一下叢集名稱。

  3. 在叢集詳細資料頁面中,按一下「Configurations」(設定) 分頁標籤。連結的子網路會列在「子網路」下方。

gcloud

  1. 執行 gcloud managed-kafka clusters describe 指令:

    gcloud managed-kafka clusters describe CLUSTER_ID \
        --location=LOCATION \
        --format="yaml(gcpConfig.accessConfig.networkConfigs)"
    

    更改下列內容:

    • CLUSTER_ID:叢集的 ID 或名稱。
    • LOCATION:叢集位置。

詳情請參閱「設定 Managed Service for Apache Kafka 的網路」。

允許的來源 IP 範圍

如要查看公開叢集允許的來源 IP 範圍,請按照下列步驟操作:

控制台

  1. 前往 Google Cloud 控制台的「Clusters」(叢集) 頁面。

    前往「Clusters」(叢集)

  2. 按一下叢集名稱。

  3. 按一下「設定」分頁標籤。允許的來源 IP 範圍列於「IP 範圍」欄下方的「允許的來源 IP 範圍」表格中。

gcloud

  1. 如要使用 gcloud 查看允許的來源 IP 範圍,請檢查 gcloud managed-kafka clusters describe 指令回應中的 gcpConfig.accessConfig.publicClusterConfig.allowedSourceIpRanges 欄位:

    gcloud managed-kafka clusters describe CLUSTER_ID \
        --location=LOCATION \
        --format="yaml(gcpConfig.accessConfig.publicClusterConfig.allowedSourceIpRanges)"
    

    更改下列內容:

    • CLUSTER_ID:叢集的 ID 或名稱。
    • LOCATION:叢集位置。

REST

如要使用 REST API 查看允許的來源 IP 範圍,請檢查 GET 要求的「gcpConfig.accessConfig.publicClusterConfig.allowedSourceIpRanges」欄位:

使用任何要求資料之前,請先修改下列項目的值:

  • PROJECT_ID:您的 Google Cloud 專案 ID
  • LOCATION:叢集位置。
  • CLUSTER_ID:叢集 ID。
  • CLUSTER_VIEW:要傳回的中繼資料量。請指定下列其中一個值:

    • CLUSTER_VIEW_BASIC:傳回叢集的基本中繼資料。
    • CLUSTER_VIEW_FULL:傳回叢集的所有中繼資料,包括叢集代理程式的相關資訊,以及叢集執行的 Kafka 版本號碼。

    如未指定,方法預設為 CLUSTER_VIEW_BASIC。

HTTP 方法和網址:

GET https://managedkafka.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_ID?view=CLUSTER_VIEW

請展開以下其中一個選項,以傳送要求:

您應該會收到如下的 JSON 回覆:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_ID",
  "createTime": "CREATE_TIME",
  "updateTime": "UPDATE_TIME",
  "capacityConfig": {
    "vcpuCount": "CPU_COUNT",
    "memoryBytes": "MEMORY"
  },
  "rebalanceConfig": {},
  "gcpConfig": {
    "accessConfig": {
      "networkConfigs": [
        {
          "subnet": "projects/PROJECT_ID/locations/LOCATION/subnetworks/SUBNET_ID"
        }
      ],
      "publicClusterConfig": {
        "allowedSourceIpRanges": [
          "203.0.113.5/32"
        ]
      }
    }
  },
  "state": "ACTIVE",
  "satisfiesPzi": false,
  "satisfiesPzs": false,
  "tlsConfig": {
    "trustConfig": {}
  },
  "updateOptions": {},
  "publicClusterDetails": {
    "discoveryDnsRecords": [
      "discovery-1.CLUSTER_ID.LOCATION.managedkafka.PROJECT_ID.cloud.goog"
    ],
    "externalIpAddresses": [
      "203.0.113.1",
      "203.0.113.2",
      "203.0.113.3",
      "203.0.113.4"
    ]
  }
}

如要進一步瞭解允許的來源 IP 範圍,請參閱「公開叢集」。

公開叢集詳細資料

如要查看公開叢集詳細資料,包括外部 IP 位址和探索 DNS 記錄,請按照下列步驟操作:

控制台

  1. 前往 Google Cloud 控制台的「Clusters」(叢集) 頁面。

    前往「Clusters」(叢集)

  2. 按一下叢集名稱。

  3. 按一下「設定」分頁標籤。外部 IP 位址和探索 DNS 記錄會列在「外部 IP 位址」和「DNS 探索記錄」欄位中。

gcloud

  1. 執行 gcloud managed-kafka clusters describe 指令:

    gcloud managed-kafka clusters describe CLUSTER_ID \
        --location=LOCATION \
        --format="yaml(publicClusterDetails)"
    

    更改下列內容:

    • CLUSTER_ID:叢集的 ID 或名稱。
    • LOCATION:叢集位置。

REST

如要使用 REST API 查看公開叢集詳細資料,請檢查 GET 要求回應中的 publicClusterDetails 欄位:

使用任何要求資料之前,請先修改下列項目的值:

  • PROJECT_ID:您的 Google Cloud 專案 ID
  • LOCATION:叢集位置。
  • CLUSTER_ID:叢集 ID。
  • CLUSTER_VIEW:要傳回的中繼資料量。請指定下列其中一個值:

    • CLUSTER_VIEW_BASIC:傳回叢集的基本中繼資料。
    • CLUSTER_VIEW_FULL:傳回叢集的所有中繼資料,包括叢集代理程式的相關資訊,以及叢集執行的 Kafka 版本號碼。

    如未指定,方法預設為 CLUSTER_VIEW_BASIC。

HTTP 方法和網址:

GET https://managedkafka.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_ID?view=CLUSTER_VIEW

請展開以下其中一個選項,以傳送要求:

您應該會收到如下的 JSON 回覆:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_ID",
  "createTime": "CREATE_TIME",
  "updateTime": "UPDATE_TIME",
  "capacityConfig": {
    "vcpuCount": "CPU_COUNT",
    "memoryBytes": "MEMORY"
  },
  "rebalanceConfig": {},
  "gcpConfig": {
    "accessConfig": {
      "networkConfigs": [
        {
          "subnet": "projects/PROJECT_ID/locations/LOCATION/subnetworks/SUBNET_ID"
        }
      ],
      "publicClusterConfig": {
        "allowedSourceIpRanges": [
          "203.0.113.5/32"
        ]
      }
    }
  },
  "state": "ACTIVE",
  "satisfiesPzi": false,
  "satisfiesPzs": false,
  "tlsConfig": {
    "trustConfig": {}
  },
  "updateOptions": {},
  "publicClusterDetails": {
    "discoveryDnsRecords": [
      "discovery-1.CLUSTER_ID.LOCATION.managedkafka.PROJECT_ID.cloud.goog"
    ],
    "externalIpAddresses": [
      "203.0.113.1",
      "203.0.113.2",
      "203.0.113.3",
      "203.0.113.4"
    ]
  }
}

主題

如要查看叢集中的主題,請參閱下列頁面:

後續步驟

Apache Kafka® 是 The Apache Software Foundation 或其在美國和/或其他國家/地區的關聯企業的註冊商標。