使用 Dataplane V2


本页面介绍了如何为 Google Kubernetes Engine (GKE) 启用 Dataplane V2

使用 Dataplane V2 创建 GKE 集群

您可以在创建具有 GKE 1.20.6-gke.700 版及更高版本的新集群时使用 gcloud 工具或 Kubernetes Engine AP 来启用 Dataplane V2。您还可以在创建具有 GKE 1.17.9 版及更高版本的新集群时启用预览版 Dataplane V2

控制台

如需使用 Dataplane V2 创建新集群,请执行以下任务:

  1. 转到 Cloud Console 中的 Google Kubernetes Engine 页面:

    转到 Google Kubernetes Engine

  2. 点击 创建

  3. 点击配置以配置标准集群。

  4. 在“网络”部分中,选中启用 Dataplane V2复选框。当您选择“启用 Dataplane V2”时,“启用 Kubernetes 网络政策”选项会停用,因为网络政策强制执行功能内置于 Dataplane V2 中。

  5. 点击创建

gcloud

如需使用 Dataplane V2 创建新集群,请使用以下命令:

gcloud container clusters create CLUSTER_NAME \
    --enable-dataplane-v2 \
    --enable-ip-alias \
    --release-channel CHANNEL_NAME \
    --zone CLUSTER_LOCATION
 

替换以下内容:

  • CLUSTER_NAME:新集群的名称。
  • CHANNEL_NAME:包含 GKE 1.20.6-gke.700 版或更高版本的发布版本。如果您不想使用发布版本,还可以使用 --version 标志而不是 --release-channel,从而指定 1.20.6-gke.700 或更高版本。
  • CLUSTER_LOCATION:集群的位置。这些参数是互斥的。如需了解详情,请参阅集群类型

API

如需使用 Dataplane V2 创建新集群,请在集群 create 请求中指定 networkConfig 对象的 datapathProvider 字段

以下 JSON 代码段显示了启用 Dataplane V2 所需的配置:

"cluster":{
   "initialClusterVersion":"VERSION",
   "ipAllocationPolicy":{
      "useIpAliases":true
   },
   "networkConfig":{
      "datapathProvider":"ADVANCED_DATAPATH"
   },
   "releaseChannel":{
      "channel":"CHANNEL_NAME"
   }
}

请替换以下内容:

  • VERSION:您的集群版本,必须为 GKE 1.20.6-gke.700 或更高版本。
  • CHANNEL_NAME:包含 GKE 1.20.6-gke.700 版或更高版本的发布版本

问题排查

  1. 检查系统 Pod 的状态:

    kubectl -n kube-system get pods -l k8s-app=cilium -o wide
    

    如果 Dataplane V2 正在运行,您将会看到具有前缀 anetd- 的 Pod 正在运行。anetd 是 Dataplane V2 的网络控制器。

  2. 如果问题在于服务或网络政策强制执行方式,请检查 anetd Pod 日志:

    kubectl -n kube-system get events --field-selector involvedObject.name=anetd
    kubectl -n kube-system logs -l k8s-app=cilium
    
  3. 如果 Pod 创建失败,请检查 kubelet 日志以获取相关线索。您可以使用 ssh 在 GKE 中执行此任务:

    gcloud compute ssh node -- sudo journalctl -u kubelet
    

    node 替换为虚拟机实例的名称。

后续步骤