StatefulSet パーシステント IP の割り当て
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 アドレスを割り当てることができません。