ncp/ip_range アノテーションを使用して、StatefulSet の IP アドレス範囲を指定できます。NCP は、ネームスペースのサブネットに基づいて、範囲内のパーシステント IP アドレスを StatefulSet 内のポッドに割り当てます。

この機能は、ポリシー モードでのみサポートされます。この機能を有効にするには、ncp.ini[K8s] セクションで statefulset_ip_rangeTrue に設定します。デフォルトは 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 範囲をチェックするか、範囲からアドレスを割り当てるときにエラーが発生すると、StatefulSet に ncp/error.ip_range:<error> アノテーションが付きます。想定されるエラーは次のとおりです。
  • INVALID_IP_RANGE - IP 範囲がネームスペースのどのサブネットにもないか、複数のサブネットに存在します。あるいは、既存のポッドがすでに範囲内の IP アドレスを使用しています。
  • IP_RANGE_EXHAUSTED - すべてのアドレスが割り当て済みのため、NCP は範囲から IP アドレスを割り当てることができません。