ポッドネットワークの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しない場合、SubnetContrail 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 に設定して、 を作成SubnetDisableBGPaaSIPAutoAllocationできます。false に設定DisableBGPaaSIPAutoAllocationすると、次のような状態になります。
-
および
BGPaaSSecondaryIPに対してBGPaaSPrimaryIPすぐに IP アドレスは割り当てされません。これらのIPは、最初BGPAsAServiceSubnetのIPがこのネットワーク内でSubnet設定された場合にのみ(CIDR範囲内で)割り当てられます。 -
に関連するすべてのリソースを
BGPAsAServiceSubnet削除すると、 に割り当てられたBGPaaSPrimaryIPIPアドレスがBGPaaSSecondaryIPプールから解放され、空の値に設定されます。これらのアドレスは、 が再度設定されるとBGPAsAService、プールから再割り当てられます。
フラグを DisableBGPaaSIPAutoAllocation true に設定すると、次のような状態になります。
-
および
BGPaaSSecondaryIPフィールドにユーザー定義値をBGPaaSPrimaryIP使用できます。これらの IP フィールドは必須であり、空のままにすることはできません。これらのフィールドのユーザー定義値もプール内でSubnet予約されています。 -
に使用される
BGPaaSPrimaryIPBGPaaSSecondaryIPIP アドレスは、構成されていない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を有効にする 」セクションを参照してください。