IP 地址管理 API 概览

IP 地址管理 (IPAM) API 使用 Kubernetes 自定义资源,并依赖于 Kubernetes 资源模型 (KRM)。它用于管理整个 Google Distributed Cloud (GDC) 经过网闸隔离的部署中的 IP 地址分配。

如需使用 IPAM API,我们建议您使用 gdcloud CLI,或使用 kubectl CLI 直接调用该 API。如果您的应用需要使用您自己的库来调用此 API,请使用以下示例和完整的 API 定义来构建请求:

服务端点和发现文档

IPAM API 在两个软件包中提供,具体取决于可用区级部署或全局部署。

区域 IPAM API 和全局 IPAM API 的 API 端点分别如下所示:

  • https://MANAGEMENT_API_SERVER_ENDPOINT/apis/ipam.gdc.goog/v1
  • https://MANAGEMENT_API_SERVER_ENDPOINT/apis/ipam.global.gdc.goog/v1

MANAGEMENT_API_SERVER_ENDPOINT 变量是 Management API 服务器的端点。

使用 kubectl proxy 命令,您可以在浏览器中或使用 curl 等工具访问该网址,以获取 IPAM API 的发现文档。kubectl proxy 命令会在本地机器上打开一个指向 Kubernetes API 服务器的代理。运行该命令后,您可以通过以下网址访问文档:

  • http://127.0.0.1:8001/apis/ipam.gdc.goog/v1
  • http://127.0.0.1:8001/apis/ipam.global.gdc.goog/v1

自定义资源示例

以下是可用区级 Subnet 对象的示例:

apiVersion: ipam.gdc.goog/v1
kind: Subnet
metadata:
  labels:
    ipam.gdc.goog/overlay-network-type: External
    ipam.gdc.goog/category-type: ExternalOverlayNetwork
  name: test-subnet
  namespace: root
spec:
  type: Root
  ipv4Request:
    cidr: 10.0.0.0/16
  networkSpec:
    staticVLANID: 100
    enableVLANID: true
    enableGateway: true

以下是默认 VPC 根 CIDR 的全局 Subnet 对象示例:

apiVersion: ipam.global.gdc.goog/v1
kind: Subnet
metadata:
  labels:
    ipam.gdc.goog/vpc: default-vpc
    ipam.gdc.goog/usage: network-root-range
  name: default-vpc-root-cidr
  namespace: platform
spec:
  ipv4Request:
    cidr: 10.200.0.0/23
  type: Root