ランチャーRKE2への単一クラスタCN2のインストール
概要 Rancher RKE2 に単一クラスタ CN2 をインストールする方法の例を参照してください。
単一クラスター共有ネットワーク展開では、CN2 がそのクラスターのネットワーク プラットフォームおよび CNI プラグインです。Contrail コントローラは Kubernetes コントロール プレーンで動作し、Contrail データ プレーン コンポーネントはクラスタ内のすべてのノードで実行されます。
図 1 は、この 1 つのクラスターの例に従って作成するクラスターを示しています。クラスタは、1 つのサーバー (コントロール プレーン) ノードと 2 つのエージェント (ワーカー) ノードで構成されます。
表示されるすべてのノードは、VM またはベア メタル サーバです。
クラスタ内のノード間およびノードと外部サイト間のすべての通信は、単一の172.16.0.0/24ファブリック仮想ネットワークを介して行われます。ファブリック ネットワークは、クラスタが実行されるアンダーレイを提供します。
ローカル管理者は、ゲートウェイを介して到達可能な別のネットワークに接続されて表示されます。これは、ローカル管理者が企業LANからファブリックとクラスタを管理する多くのインストール済み環境で一般的です。次の手順では、ローカル管理者ステーションをローカル コンピューターと呼びます。
すべてのクラスタノードを相互に接続するのがデータセンターファブリックで、この例では単一のサブネットとして示されています。実際のインストール環境では、データセンターファブリックは、クラスタに物理的な接続を提供するスパインスイッチとリーフスイッチのネットワークです。
Apstraが管理するデータセンターでは、この接続は、基盤となるファブリックスイッチ間に作成するオーバーレイ仮想ネットワークを介して指定されます。
このセクションの手順では、提供されているマニフェストを使用して、指定された CN2 配置を作成する方法の基本的な例を示します。このセクションで説明する配置に限定されず、提供されているマニフェストの使用にも制限されません。CN2は、多すぎて詳細に説明できない幅広い導入をサポートしています。提供されている例を開始点として使用して、特定の状況に合わせて独自のマニフェストをロールします。
カーネルモードデータプレーンを実行しているランチャーRKE2に単一クラスタCN2をインストールする
この手順を使用して、カーネル モード データ プレーンを実行する単一クラスター展開に CN2 をインストールします。
この例の手順で使用するマニフェストは、 k8s/single-cluster/single_cluster_deployer_example.yaml です。この手順では、このマニフェストが manifests ディレクトリに配置されていることを前提としています。
ランチャーRKE2クラスターにCN2をインストールするには、まずCNIなしでランチャーRKE2クラスターを作成します。次に、CN2 をクラスターにインストールする CN2 デプロイヤーマニフェストを適用します。
- ランチャーRKE2クラスタを作成します。Rancher RKE2 クラスタの作成の手順例に従うか、他の方法を使用できます。CNI プラグインなしでクラスターを作成します。
- Contrail デプロイヤー マニフェストを適用します。
kubectl apply -f manifests/single_cluster_deployer_example.yaml
ノードとポッドが表示されるまでに数分かかる場合があります。
- 標準の kubectl コマンドを使用して、デプロイを確認します。
- ノードのステータスを表示します。
kubectl get nodes
NAME STATUS ROLES AGE VERSION rke2-a1 Ready <none> 17h v1.25.10+rke2r1 rke2-a2 Ready <none> 17h v1.25.10+rke2r1 rke2-s1 Ready control-plane,etcd,master 17h v1.25.10+rke2r1
ノードが立ち上がっていることがわかります。ノードが起動していない場合は、数分待ってからもう一度確認します。
- ポッドのステータスを表示します。
kubectl get pods -A -o wide
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES cert-manager cert-manager-6dc787b997-cfbvp 1/1 Running 0 12h 172.16.0.12 rke2-a1 <none> <none> cert-manager cert-manager-cainjector-6f96556ddf-spqpb 1/1 Running 0 12h 172.16.0.13 rke2-a2 <none> <none> cert-manager cert-manager-webhook-9d965dff5-cllfm 1/1 Running 0 12h 172.16.0.12 rke2-a1 <none> <none> contrail-deploy contrail-k8s-deployer-f8cd78888-pmgpl 1/1 Running 1 (15h ago) 15h 172.16.0.11 rke2-s1 <none> <none> contrail-system contrail-k8s-apiserver-5d458f8d69-7s9nb 1/1 Running 0 12h 172.16.0.11 rke2-s1 <none> <none> contrail-system contrail-k8s-controller-cb4bc88cc-xc2kx 1/1 Running 0 12h 172.16.0.11 rke2-s1 <none> <none> contrail contrail-control-0 2/2 Running 0 12h 172.16.0.11 rke2-s1 <none> <none> contrail contrail-k8s-contrailstatusmonitor-5497bb64b7-dztrz 1/1 Running 0 12h 172.16.0.11 rke2-s1 <none> <none> contrail contrail-k8s-kubemanager-7d7f5b4c88-rgk2k 1/1 Running 0 12h 172.16.0.11 rke2-s1 <none> <none> contrail contrail-vrouter-masters-gxlcs 3/3 Running 0 12h 172.16.0.11 rke2-s1 <none> <none> contrail contrail-vrouter-nodes-mbgf9 3/3 Running 0 12h 172.16.0.13 rke2-a2 <none> <none> contrail contrail-vrouter-nodes-mmnf7 3/3 Running 0 12h 172.16.0.12 rke2-a1 <none> <none> kube-system cloud-controller-manager-rke2-s1 1/1 Running 0 17h 172.16.0.11 rke2-s1 <none> <none> kube-system etcd-rke2-s1 1/1 Running 0 17h 172.16.0.11 rke2-s1 <none> <none> kube-system helm-install-rke2-coredns-trcjf 0/1 Completed 0 17h 172.16.0.11 rke2-s1 <none> <none> kube-system helm-install-rke2-ingress-nginx-jghfq 0/1 Completed 11 17h 10.42.0.6 rke2-s1 <none> <none> kube-system helm-install-rke2-metrics-server-nvcp6 0/1 Completed 0 17h 10.42.0.3 rke2-s1 <none> <none> kube-system helm-install-rke2-snapshot-controller-9gbf7 0/1 Completed 3 17h 10.42.0.7 rke2-s1 <none> <none> kube-system helm-install-rke2-snapshot-controller-crd-l5wnn 0/1 Completed 0 17h 10.42.0.4 rke2-s1 <none> <none> kube-system helm-install-rke2-snapshot-validation-webhook-kqmnp 0/1 Completed 0 17h 10.42.0.5 rke2-s1 <none> <none> kube-system kube-apiserver-rke2-s1 1/1 Running 0 17h 172.16.0.11 rke2-s1 <none> <none> kube-system kube-controller-manager-rke2-s1 1/1 Running 0 17h 172.16.0.11 rke2-s1 <none> <none> kube-system kube-proxy-rke2-a1 1/1 Running 0 17h 172.16.0.12 rke2-a1 <none> <none> kube-system kube-proxy-rke2-a2 1/1 Running 0 17h 172.16.0.13 rke2-a2 <none> <none> kube-system kube-proxy-rke2-s1 1/1 Running 0 17h 172.16.0.11 rke2-s1 <none> <none> kube-system kube-scheduler-rke2-s1 1/1 Running 0 17h 172.16.0.11 rke2-s1 <none> <none> kube-system rke2-coredns-rke2-coredns-6b9548f79f-gqpzl 1/1 Running 0 12h 10.42.2.1 rke2-a2 <none> <none> kube-system rke2-coredns-rke2-coredns-6b9548f79f-snzl4 1/1 Running 0 17h 10.42.0.8 rke2-s1 <none> <none> kube-system rke2-coredns-rke2-coredns-autoscaler-57647bc7cf-dc2gx 1/1 Running 0 17h 10.42.0.2 rke2-s1 <none> <none> kube-system rke2-ingress-nginx-controller-6sk9w 1/1 Running 0 11h 10.42.0.9 rke2-s1 <none> <none> kube-system rke2-ingress-nginx-controller-ng4hg 1/1 Running 0 11h 10.42.2.3 rke2-a2 <none> <none> kube-system rke2-ingress-nginx-controller-rrrts 1/1 Running 0 11h 10.42.1.0 rke2-a1 <none> <none> kube-system rke2-metrics-server-78b84fff48-jvnnd 1/1 Running 0 12h 10.42.2.0 rke2-a2 <none> <none> kube-system rke2-snapshot-controller-849d69c748-v42dv 1/1 Running 0 12h 10.42.2.2 rke2-a2 <none> <none> kube-system rke2-snapshot-validation-webhook-654f6677b-c4v5z 1/1 Running 0 12h 10.42.1.1 rke2-a1 <none> <none>
これで、すべてのポッドの状態が [実行中] になります。そうでない場合は、ポッドが起動するまで数分待ちます。
- 一部のポッドがダウンしたままの場合は、通常どおりにデプロイをデバッグします。 コマンドを使用して、ポッドが起動しない理由を確認します。
kubectl describe
一般的なエラーは、ネットワークまたはファイアウォールの問題により、ノードがジュニパーネットワークスのリポジトリに到達できないことです。DNS の問題の例を次に示します。
問題のある各ノードにログインし、名前解決に enterprise-hub.juniper.net がないか確認します。例えば:
ping enterprise-hub.juniper.net ping: enterprise-hub.juniper.net: Temporary failure in name resolution
メモ:enterprise-hub.juniper.net はpingに応答するように構成されていませんが、pingコマンドを使用してドメイン名の解決を確認できます。
この例では、ドメイン名は解決されていません。ドメイン・ネーム・サーバーの構成を調べて、正しいことを確認してください。たとえば、 systemd 解決済みを実行している Ubuntu システムでは、「 インストールする前に」の手順 3 で説明されているように、/etc/resolv.conf が / run/systemd/resolve/resolv.conf にリンクされていることを確認し、DNS サーバーがそのファイルに正しくリストされていることを確認します。 - 解決できない問題が発生した場合や、インストールを間違えた場合は、CN2をアンインストールして最初からやり直してください。CN2をアンインストールするには、 CN2のアンインストールを参照してください。
- ノードのステータスを表示します。
- (オプション)ポストフライトチェックを実行します。プリフライトチェックとポストフライトチェックの実行を参照してください。
DPDKデータプレーンを実行しているランチャーRKE2への単一クラスタCN2のインストール
DPDKデータプレーンを実行する単一クラスタ導入にCN2をインストールするには、この手順を使用します。
この例の手順で使用するマニフェストは、 k8s/single-cluster/single_cluster_deployer_example.yaml です。この手順では、このマニフェストが manifests ディレクトリに配置されていることを前提としています。
DPDK を実行しているランチャー RKE2 クラスターに CN2 をインストールするには、まず CNI なしでランチャー RKE2 クラスターを作成します。次に、DPDK ノードにラベルを付け、CN2 をクラスターにインストールする CN2 デプロイヤー マニフェストを適用します。
- ランチャーRKE2クラスタを作成します。Rancher RKE2 クラスタの作成の手順例に従うか、他の方法を使用できます。次の特性を持つクラスターを作成します。
- クラスタにはCNIプラグインはありません。
- multus バージョン 0.3.1 を有効にします。
- DPDKノードを指定します。
DPDK を実行しているノードごとに、次のようにラベルを付けます。 この方法でノードにラベルを付けることにより、CN2 はマニフェストで指定された DPDK 構成を使用します。
kubectl label node <node-name> agent-mode=dpdk
- Contrail デプロイヤー マニフェストを適用します。
kubectl apply -f manifests/single_cluster_deployer_example.yaml
ノードとポッドが表示されるまでに数分かかる場合があります。
- 標準の kubectl コマンドを使用して、デプロイを確認します。
- ノードのステータスを表示します。
NAME STATUS ROLES AGE VERSION rke2-a1 Ready <none> 17h v1.25.10+rke2r1 rke2-a2 Ready <none> 17h v1.25.10+rke2r1 rke2-s1 Ready control-plane,etcd,master 17h v1.25.10+rke2r1
- ポッドのステータスを表示します。
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES cert-manager cert-manager-6dc787b997-cfbvp 1/1 Running 0 12h 172.16.0.12 rke2-a1 <none> <none> cert-manager cert-manager-cainjector-6f96556ddf-spqpb 1/1 Running 0 12h 172.16.0.13 rke2-a2 <none> <none> cert-manager cert-manager-webhook-9d965dff5-cllfm 1/1 Running 0 12h 172.16.0.12 rke2-a1 <none> <none> contrail-deploy contrail-k8s-deployer-f8cd78888-pmgpl 1/1 Running 1 (15h ago) 15h 172.16.0.11 rke2-s1 <none> <none> contrail-system contrail-k8s-apiserver-5d458f8d69-7s9nb 1/1 Running 0 12h 172.16.0.11 rke2-s1 <none> <none> contrail-system contrail-k8s-controller-cb4bc88cc-xc2kx 1/1 Running 0 12h 172.16.0.11 rke2-s1 <none> <none> contrail contrail-control-0 2/2 Running 0 12h 172.16.0.11 rke2-s1 <none> <none> contrail contrail-k8s-contrailstatusmonitor-5497bb64b7-dztrz 1/1 Running 0 12h 172.16.0.11 rke2-s1 <none> <none> contrail contrail-k8s-kubemanager-7d7f5b4c88-rgk2k 1/1 Running 0 12h 172.16.0.11 rke2-s1 <none> <none> contrail contrail-vrouter-masters-gxlcs 3/3 Running 0 12h 172.16.0.11 rke2-s1 <none> <none> contrail contrail-vrouter-nodes-mbgf9 3/3 Running 0 12h 172.16.0.13 rke2-a2 <none> <none> contrail contrail-vrouter-nodes-mmnf7 3/3 Running 0 12h 172.16.0.12 rke2-a1 <none> <none> kube-system cloud-controller-manager-rke2-s1 1/1 Running 0 17h 172.16.0.11 rke2-s1 <none> <none> kube-system etcd-rke2-s1 1/1 Running 0 17h 172.16.0.11 rke2-s1 <none> <none> kube-system helm-install-rke2-coredns-trcjf 0/1 Completed 0 17h 172.16.0.11 rke2-s1 <none> <none> kube-system helm-install-rke2-ingress-nginx-jghfq 0/1 Completed 11 17h 10.42.0.6 rke2-s1 <none> <none> kube-system helm-install-rke2-metrics-server-nvcp6 0/1 Completed 0 17h 10.42.0.3 rke2-s1 <none> <none> kube-system helm-install-rke2-snapshot-controller-9gbf7 0/1 Completed 3 17h 10.42.0.7 rke2-s1 <none> <none> kube-system helm-install-rke2-snapshot-controller-crd-l5wnn 0/1 Completed 0 17h 10.42.0.4 rke2-s1 <none> <none> kube-system helm-install-rke2-snapshot-validation-webhook-kqmnp 0/1 Completed 0 17h 10.42.0.5 rke2-s1 <none> <none> kube-system kube-apiserver-rke2-s1 1/1 Running 0 17h 172.16.0.11 rke2-s1 <none> <none> kube-system kube-controller-manager-rke2-s1 1/1 Running 0 17h 172.16.0.11 rke2-s1 <none> <none> kube-system kube-proxy-rke2-a1 1/1 Running 0 17h 172.16.0.12 rke2-a1 <none> <none> kube-system kube-proxy-rke2-a2 1/1 Running 0 17h 172.16.0.13 rke2-a2 <none> <none> kube-system kube-proxy-rke2-s1 1/1 Running 0 17h 172.16.0.11 rke2-s1 <none> <none> kube-system kube-scheduler-rke2-s1 1/1 Running 0 17h 172.16.0.11 rke2-s1 <none> <none> kube-system rke2-coredns-rke2-coredns-6b9548f79f-gqpzl 1/1 Running 0 12h 10.42.2.1 rke2-a2 <none> <none> kube-system rke2-coredns-rke2-coredns-6b9548f79f-snzl4 1/1 Running 0 17h 10.42.0.8 rke2-s1 <none> <none> kube-system rke2-coredns-rke2-coredns-autoscaler-57647bc7cf-dc2gx 1/1 Running 0 17h 10.42.0.2 rke2-s1 <none> <none> kube-system rke2-ingress-nginx-controller-6sk9w 1/1 Running 0 11h 10.42.0.9 rke2-s1 <none> <none> kube-system rke2-ingress-nginx-controller-ng4hg 1/1 Running 0 11h 10.42.2.3 rke2-a2 <none> <none> kube-system rke2-ingress-nginx-controller-rrrts 1/1 Running 0 11h 10.42.1.0 rke2-a1 <none> <none> kube-system rke2-metrics-server-78b84fff48-jvnnd 1/1 Running 0 12h 10.42.2.0 rke2-a2 <none> <none> kube-system rke2-snapshot-controller-849d69c748-v42dv 1/1 Running 0 12h 10.42.2.2 rke2-a2 <none> <none> kube-system rke2-snapshot-validation-webhook-654f6677b-c4v5z 1/1 Running 0 12h 10.42.1.1 rke2-a1 <none> <none>
これで、すべてのポッドの状態が [実行中] になります。そうでない場合は、ポッドが起動するまで数分待ちます。
- 一部のポッドがダウンしたままの場合は、通常どおりにデプロイをデバッグします。 コマンドを使用して、ポッドが起動しない理由を確認します。
kubectl describe
一般的なエラーは、ネットワークまたはファイアウォールの問題により、ノードがジュニパーネットワークスのリポジトリに到達できないことです。DNS の問題の例を次に示します。
問題のある各ノードにログインし、名前解決に enterprise-hub.juniper.net がないか確認します。例えば:
ping enterprise-hub.juniper.net ping: enterprise-hub.juniper.net: Temporary failure in name resolution
メモ:enterprise-hub.juniper.net はpingに応答するように構成されていませんが、pingコマンドを使用してドメイン名の解決を確認できます。
たとえば、systemd 解決済みを実行している Ubuntu システムでは、「インストールする前に」の手順 3 で説明されているように、/etc/resolv.conf が /run/systemd/resolve/resolv.conf にリンクされていることを確認し、DNS サーバーがそのファイルに正しくリストされていることを確認します。
- 解決できない問題が発生した場合や、インストールを間違えた場合は、CN2をアンインストールして最初からやり直してください。CN2をアンインストールするには、 CN2のアンインストールを参照してください。
- ノードのステータスを表示します。
- (オプション)ポストフライトチェックを実行します。プリフライトチェックとポストフライトチェックの実行を参照してください。