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