ポッドネットワークのIPAMを設定する
概要 クラウドネイティブのContrail® Networking™ は、ポッドとサービスのIPAM(IPアドレス管理)をサポートしています。IP アドレス割 Subnet
り当てを容易にするリソースを構成します。
クラウドネイティブContrail NetworkingのIPAM
クラウドネイティブのContrail Networkingは Subnet
、ポッドや SubnetPool
サービスにIPAMを目的としたリソースを導入します。それぞれに Subnet
関連 SubnetPool
する .これらのリソースを使用すると、クラスタ内でIPv4およびIPv6アドレス割り当てを設定できます。Aは VirtualNetwork
リソースを Subnet
参照して、新しいポッドとサービスの利用可能なサブネットを決定します。複数のユーザー VirtualNetworks
が同じ Subnet
を参照できます。リソースは Subnet
IPAM に変換され、制御ノードと vRouter エージェントによって消費されます。
サブネットプールの概要
は SubnetPool
、割り当てられたアドレスのプールを Subnets
管理します。IP アドレスの要求が発生すると、その IP アドレスは仮想ネットワークの関連付けられた SubnetPool
から割り当てられます。CIDRパラメータ(プレフィックス長、容量、範囲)は、 が作成されたときに SubnetPool
決定されます。を使い果たした場合に追加のプレフィックスを SubnetPool
割り当てることができます。
次 SubnetPool
の例を考えてみましょう。
kparmar-mbp:cn2 kparmar$ kubectl get pool subnet-id-pool-Subnet-contrail-k8s-kubemanager-ocp-rdang-q8roaw-contrail-default-podnetwork-pod-v4-subnet -oyaml apiVersion: idallocator.contrail.juniper.net/v1alpha1 capacity: 262144 count: 157 kind: Pool max: 262143 metadata: creationTimestamp: null name: subnet-id-pool-Subnet-contrail-k8s-kubemanager-ocp-rdang-q8roaw-contrail-default-podnetwork-pod-v4-subnet reserved: - 0 - 262143 - 1
このパラメーターは capacity
、プール内で使用可能な ID の総数を示します。このパラメータは count
、プールで使用される ID の数を示します。このパラメーターは max
、プールから割り振ることができる ID の最大数を示します。指定された ID は、プール内の IP アドレスにマッピングされます Subnet
。
サブネットの概要
Subnet
は、IP アドレスのブロックであり、これらのアドレスに関連付けられた設定です。ASubnet
は、一度に1つのアドレスファミリー(IPv4、IPv6)に基づいています。IPv4 と IPv6 Subnets
を個別に作成する必要があります。を指定SubnetPool
しない場合、Subnet
Contrail Classic IPAM として機能します。これは、 が単一のSubnet
名前空間に分離されていることを意味します。
次 Subnet
の仕様例を考えてみましょう。
apiVersion: core.contrail.juniper.net/v1alpha1 kind: Subnet metadata: name: default-servicenetwork-pod-v4-subnet namespace: contrail-k8s-kubemanager-ocp-kparmar-4yu0qk-contrail spec: cidr: 10.128.0.0/16 defaultGateway: 10.128.0.1 ranges: - ipRanges: - from: 10.128.0.0 to: 10.128.0.255 key: contrail-k8s-kubemanager-ocp-kparmar-4yu0qk-ocp-kparmar-4yu0qk-ctrl-1
cidr
および defaultGateway
パラメーターは、リソースを定義する主要なSubnet
パラメーターです。パラメーターはcidr
、割り当てに使用可能な IP の範囲を決定しますSubnet
。パラメーターはdefaultGateway
、 の IP アドレスをdefaultGateway
定義しますSubnet
。アドレスのdefaultGateway
指定はオプションです。アドレスをdefaultGateway
指定しない場合は、 の最初のIPアドレスとして自動的に設定されますSubnet
。
Kubernetes ノード設定には、設定パラメータを設定 podCIDR
できます。 podCIDR
は、 の default-podnetwork-subnet
サブセットです。 podCIDR
が存在する場合、そのノードで作成されたポッドのIPアドレスには、 から podCIDR
割り当てられたIPアドレスがあります。が存在しない podCIDR
場合、 の CIDR Subnet
内のすべての IP アドレスがノードに割り当てられます。は podCIDR
、ワイルドカード キーを参照することもできます。この例では、IPアドレス割り当てリクエストは、リクエストするポッドがキーでノード上に作成されている限り、IP 10.128.0.0
10.128.0.255
からを選択します contrail-k8s-kubemanager-ocp-kparmar-4yu0qk-ocp-kparmar-4yu0qk-ctrl-1
。
または、パラメータを ranges
定義することもできます。このパラメーターは ranges
、割り当てに使用可能な IP のリストを定義します。このパラメータは ranges
、仕様に存在する場合、CIDRパラメータを上書きします。このパラメータは ranges
パラメータを podCIDR
上書きしません。
VirtualNetwork の概要
クラウドネイティブのContrail Networkingは VirtualNetwork
、IPAM実装との互換性を持つリソースを更新します。次の例を考えてみましょう。
apiVersion: core.contrail.juniper.net/v1alpha1 kind: VirtualNetwork metadata: namespace: contrail name: virtualnetwork-sample spec: v4SubnetReference: apiVersion: core.contrail.juniper.net/v1alpha1 kind: Subnet namespace: contrail name: v4subnet v6SubnetReference: apiVersion: core.contrail.juniper.net/v1alpha1 kind: Subnet namespace: contrail name: v6subnet
IPv4アドレスファミリーとIPv6アドレスファミリーの個別Subnet
の参照に注意してください。そのライフサイクルVirtualNetwork
全体をSubnet
通して、 VirtualNetwork
の参照を更新することはできません。
サービスセッションIPアドレスとしてのBGPの概要
BGP(Border Gateway Protocol)as a Service(BGPaaS)により、ワークロードまたはポッドのIPアドレスへの制御ノード間のBGPセッションの確立が可能になります。フラグを false または true に設定して、 を作成Subnet
DisableBGPaaSIPAutoAllocation
できます。false に設定DisableBGPaaSIPAutoAllocation
すると、次のような状態になります。
-
および
BGPaaSSecondaryIP
に対してBGPaaSPrimaryIP
すぐに IP アドレスは割り当てされません。これらのIPは、最初BGPAsAService
Subnet
のIPがこのネットワーク内でSubnet
設定された場合にのみ(CIDR範囲内で)割り当てられます。 -
に関連するすべてのリソースを
BGPAsAService
Subnet
削除すると、 に割り当てられたBGPaaSPrimaryIP
IPアドレスがBGPaaSSecondaryIP
プールから解放され、空の値に設定されます。これらのアドレスは、 が再度設定されるとBGPAsAService
、プールから再割り当てられます。
フラグを DisableBGPaaSIPAutoAllocation
true に設定すると、次のような状態になります。
-
および
BGPaaSSecondaryIP
フィールドにユーザー定義値をBGPaaSPrimaryIP
使用できます。これらの IP フィールドは必須であり、空のままにすることはできません。これらのフィールドのユーザー定義値もプール内でSubnet
予約されています。 -
に使用される
BGPaaSPrimaryIP
BGPaaSSecondaryIP
IP アドレスは、構成されていないBGPAsAService
場合や、すべてのBGPAsAService
リソースが削除された場合でも、引き続きプール内でSubnet
予約されたままになります。
フィールドを DisableBGPaaSIPAutoAllocation
false から true に変更しBGPaaSSecondaryIP
、BGPaaSPrimaryIP
必須フィールドにする場合。このフラグを false から true に変更する前に IP が自動割り当てられた場合、それらの IP はプールから解放され、新しいユーザー提供 IP がプールに予約されます。
true から false に変更 DisableBGPaaSIPAutoAllocation
すると、次のような処理が行われます。
、
.BGPaaSPrimaryIP
内でSubnet
設定されていないBGPAsAService
と、BGPaaSSecondaryIP
値がプールから解放され、これらのフィールドは空になります。-
少なくとも1つが
BGPAsAService
設定されている場合、 およびBGPaaSSecondaryIP
の既存の値BGPaaSPrimaryIP
に変更はありません。
BGP(Border Gateway Protocol)as a Service(BGPaaS)の詳細については、「 サービスとしてBGPを有効にする 」セクションを参照してください。