您可以使用 ncp/ip_range 注释为 StatefulSet 指定 IP 地址范围。NCP 将根据命名空间的子网将该范围中的持久性 IP 地址分配给 StatefulSet 中的 Pod。

仅在策略模式下支持此功能。要启用此功能,请在 ncp.ini[K8s] 部分中将 statefulset_ip_range 设置为 True。默认值为 False。设置为 True 后,不得将其重新设置为 False

指定 ncp/ip_range 注释的示例:
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: web
spec:
  selector:
    matchLabels:
      app: nginx # has to match .spec.template.metadata.labels
  serviceName: "nginx"
  replicas: 3 # by default is 1
  template:
    metadata:
      labels:
        app: nginx # has to match .spec.selector.matchLabels
      annotations:
        ncp/ip_range: 192.168.0.10-192.168.0.50
    spec:
      ...
如果在 NCP 检查 IP 范围或从该范围中分配地址时出现错误,将使用 ncp/error.ip_range:<error> 注释 StatefulSet。可能的错误包括:
  • INVALID_IP_RANGE - IP 范围没有位于命名空间的任何子网中,IP 范围位于多个子网中,或者现有 Pod 已使用该范围中的 IP 地址。
  • IP_RANGE_EXHAUSTED - NCP 无法从该范围中分配 IP 地址,因为已分配了所有地址。