インストールする前に
- Red Hat でアカウントを設定し、ジュニパーネットワークスでアカウントを設定します。
ホストされている Assisted Installer サービスを使用するには Red Hat アカウントが必要です。CN2 マニフェスト、コンテナ パッケージ、ツールをダウンロードするにはジュニパーネットワークスのアカウントが必要です。
- ユーザー管理ネットワーク(図 1)とクラスタ管理ネットワークのどちらを使用してインストールするかに応じて、ファブリック ネットワークを設定し、ノードをファブリックに接続します(図 1)。
- 支援インストーラー・クライアント・マシンを構成します。
- Assisted Installerクライアントマシンに新しいOSをインストールし、以下の目的でOSを最小限に設定します。
- 静的 IP アドレスとマスク(172.16.0.10/24 など)およびゲートウェイ
- 1つ以上のDNSサーバーへのアクセス
- root SSHアクセスを含むSSH接続
- Ntp
- カール
- Jq
- Helm 3.0 以降をインストールします(オプション)。Contrail Analytics をインストールする場合は、Helm が必要です。
以下の手順は、都合の 良い時に https://helm.sh/docs/intro/install/ からコピーされます。
-
get_helm.shスクリプトをダウンロード:
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
-
Helm をインストールします。
chmod 700 get_helm.sh
./get_helm.sh
-
- Assisted Installerクライアントマシンに新しいOSをインストールし、以下の目的でOSを最小限に設定します。
- ジュニパーネットワークスのCN2ネットワークマニフェストおよびツールパッケージをダウンロードしてください。
- CN2ネットワークマニフェストおよびツールパッケージ(「マニフェストとツール」を参照)をローカルコンピュータにダウンロードします。
- ダウンロードしたマニフェストとツール パッケージを Assisted Installer クライアント マシンにコピーし、抽出します。
user@ai-client~/tmp$ tar -xzvf contrail-manifests-openshift-<version>.tgz
- 使用するマニフェストを識別し、別のディレクトリにコピーします。マニフェストの説明については、リリースの「マニフェストとツール」を参照してください。
使用する予定のすべてのマニフェスト(該当する場合はサブディレクトリからマニフェストを含む)をコピーしてください。この例では、マニフェストを マニフェスト ディレクトリに コピーします。サブディレクトリ自体はコピーしないでください。 マニフェスト ディレクトリ はフラットディレクトリにする必要があります。
- リポジトリのログイン認証情報をマニフェストに入力します。
リポジトリのログイン認証情報を contrail-manifests-openshift/auth-registry マニフェストに 追加します。 リポジトリ資格情報の設定を参照してください。
- 必要に応じて、環境のマニフェストをカスタマイズします。
VM上でクラスタノードを実行している場合は、以下のファイルを編集してインターフェイスの実際の名前を参照します。これらのマニフェストは、VM 上の名前付きインターフェイスのチェックサム オフロードを無効にします。(チェックサム オフロードは、通常、ベア メタル サーバー上の実際の NIC でのみサポートされます)。
- 99-disable-オフロード-master.yaml - このマニフェストでは、Kubernetes コントロール プレーン トラフィックに使用されるインターフェイス上のコントロール プレーン ノードのオフロードを無効にします。この例では、172.16.0.0/24ネットワークに接続するインターフェイスです。
- 99-disable-オフロード-worker.yaml - このマニフェストでは、Kubernetes コントロール プレーン トラフィックに使用されるインターフェイス上のワーカー ノードのオフロードを無効にします。この例では、172.16.0.0/24ネットワークに接続するインターフェイスです。
- 99-disable-disable-オフロード-master-vrrp.yaml - このマニフェストでは、Contrailコントロールプレーンとユーザーデータプレーントラフィックに使用されるインターフェイス上のコントロールプレーンノードのオフロードを無効にします。これを含めるのは、Contrail 制御とデータ トラフィック用に別のインターフェイスを実行している場合(クラスター管理ネットワークを使用する場合など)。これは、クラスタ管理ネットワークの例で、10.16.0.0/24ネットワークに接続するインターフェイスです。
- 99-disable-disable-オフロード-worker-vrrp.yaml - このマニフェストでは、Contrailコントロールプレーンとユーザーデータプレーントラフィックに使用されるインターフェイス上のワーカーノードのオフロードを無効にします。これを含めるのは、Contrail 制御とデータ トラフィック用に別のインターフェイスを実行している場合(クラスター管理ネットワークを使用する場合など)。これは、クラスタ管理ネットワークの例で、10.16.0.0/24ネットワークに接続するインターフェイスです。
ライン
ExecStart=/sbin/ethtool -K ens3 tx off
またはExecStart=/sbin/ethtool -K ens4 tx off
これらのマニフェスト内を探し、必要に応じてコントロール プレーンまたはワーカー ノード上のインターフェイス名と一致するようにインターフェイス名を変更します。 - クラスター管理ネットワークを使用している場合は、Contrail 制御ネットワークとデータ ネットワークを指定します。
以下のファイルを編集して、Contrailコントロールプレーンとユーザーデータプレーントラフィックに使用しているサブネットとゲートウェイを参照します。
- 99-network-configmap.yaml - このマニフェストでは、Contrail コントロール プレーンとユーザー データ プレーン トラフィックのネットワークを指定します。マニフェストで contrail-network-config ConfigMap 仕様にコメントを解除し、適切なサブネットとゲートウェイ(10.16.0.0/24、10.16.0.254 など)を指定します。
- CN2をJuniper Apstraと統合する場合は、Juniper Apstraログイン認証情報を設定します。
Contrail-manifests-openshift/plugins/111-apstra-secret.yamlマニフェストでApstraログイン認証情報を設定します。指定したユーザー名とパスワードが base64 でエンコードされていることを確認します。詳細については、「 https://www.juniper.net/documentation/us/en/software/cn-cloud-native22.4/cn-cloud-native-feature-guide/index.html」を参照してください。
- 支援インストーラー・クライアント・マシンに Contrailstatus をインストールします。Contrailstatusは、CN2マイクロサービスとCN2固有のリソースのクエリーに使用できるkubectlプラグインです。
Contrailstatus 実行可能ファイルは、ダウンロードしたツール パッケージ内にパッケージ化されます。 kubectl-contrailstatus 実行可能ファイルを /usr/local/bin に抽出してコピーします。
- ロード バランサーをインストールする(ユーザーが管理するネットワークで実行している場合)。この手順は、クラスター管理ネットワークで実行する場合は必要ありません。
この例では、支援インストーラー クライアント マシンで haxproxy を実行します。インストールに対して別のロード バランサーを実行することを選択できます。
- ロード バランサーをインストールします。
例えば:
sudo dnf install haproxy
- ロードバランサーを設定します。
1 つの IP アドレス(172.16.0.10)を使用して、API とイングレス トラフィックをクラスタ内のノードに配信します。
表 1: ロード バランサーのエントリーの例 トラフィックフロントエンドバックエンドのタイプ Api
172.16.0.10:6443
172.16.0.11:6443
172.16.0.12:6443
172.16.0.13:6443
api-int 172.16.0.10:22623
172.16.0.11:22623
172.16.0.12:22623
172.16.0.13:22623
https 172.16.0.10:443
172.16.0.14:443
172.16.0.15:443
http 172.16.0.10:80
172.16.0.14:80
172.16.0.15:80
frontend api bind 172.16.0.10:6443 default_backend controlplaneapi frontend apiinternal bind 172.16.0.10:22623 default_backend controlplaneapiinternal frontend secure bind 172.16.0.10:443 default_backend secure frontend insecure bind 172.16.0.10:80 default_backend insecure backend controlplaneapi balance roundrobin server cp0 172.16.0.11:6443 check server cp1 172.16.0.12:6443 check server cp2 172.16.0.13:6443 check backend controlplaneapiinternal balance roundrobin server cp0 172.16.0.11:22623 check server cp1 172.16.0.12:22623 check server cp2 172.16.0.13:22623 check backend secure balance roundrobin server worker0 172.16.0.14:443 check server worker1 172.16.0.15:443 check backend insecure balance roundrobin server worker0 172.16.0.14:80 check server worker1 172.16.0.15:80 check
- ロード バランサーを起動します。
例えば:
systemctl start haproxy
メモ:selinuxで実行している場合は、haproxyがポート(
setsebool -P haproxy_connect_any 1)
.
- ロード バランサーをインストールします。
- ネットワークにDNS/DHCPサーバーをインストールして、Kubernetesノードにサービスを提供します。
この例では、支援インストーラー クライアント マシンで dnsmasq を実行します。インストール用に別の DNS/DHCP サーバーを実行するように選択できます。
- DNS/DHCP サーバーをインストールします。
Dnsmasq は、一部の RHEL OS パッケージに事前インストールされています。事前にインストールされていない場合は、次
sudo dnf install dnsmasq
- ドメイン名とDHCPエントリを設定します。
表 2:DHCP 割り当ての例 完全修飾ドメイン名 IP アドレス ocp1.mycluster.contrail.lan 172.16.0.11 ocp2.mycluster.contrail.lan 172.16.0.12 ocp3.mycluster.contrail.lan 172.16.0.13 ocp4.mycluster.contrail.lan 172.16.0.14 ocp5.mycluster.contrail.lan 172.16.0.15 メモ:Assisted Installer サービスを使用する場合、完全修飾ドメイン名は次のように構築されます。
<hostname>.<cluster name>.<domain name>
この例では、ホスト名として、myclusterクラスター名として、ドメインcontrail.lan名として使用ocpnします。
- DNS エントリを設定します。
表 3:DNS エントリーの例 ホスト名 IP アドレスに関する メモ ocp1.mycluster.contrail.lan 172.16.0.11 DHCP 割り当てと同じ ocp2.mycluster.contrail.lan 172.16.0.12 DHCP 割り当てと同じ ocp3.mycluster.contrail.lan 172.16.0.13 DHCP 割り当てと同じ ocp4.mycluster.contrail.lan 172.16.0.14 DHCP 割り当てと同じ ocp5.mycluster.contrail.lan 172.16.0.15 DHCP 割り当てと同じ api.mycluster.contrail.lan 172.16.0.10 外部 API トラフィック用のロード バランサー。ユーザー管理ネットワークにのみ必要です。 api-int.mycluster.contrail.lan 172.16.0.10 内部 API トラフィック用のロード バランサー。ユーザー管理ネットワークにのみ必要です。 アプリ.mycluster.contrail.lan 172.16.0.10 イングレストラフィック用のロードバランサー。ユーザー管理ネットワークにのみ必要です。 *.apps.mycluster.contrail.lan 172.16.0.10 イングレストラフィック用のロードバランサー。ユーザー管理ネットワークにのみ必要です。 dhcp-host=52:54:00:00:11:11,ocp1.mycluster.contrail.lan,172.16.0.11 dhcp-host=52:54:00:00:11:22,ocp2.mycluster.contrail.lan,172.16.0.12 dhcp-host=52:54:00:00:11:33,ocp3.mycluster.contrail.lan,172.16.0.13 dhcp-host=52:54:00:00:11:44,ocp4.mycluster.contrail.lan,172.16.0.14 dhcp-host=52:54:00:00:11:55,ocp5.mycluster.contrail.lan,172.16.0.15 host-record=api.mycluster.contrail.lan,172.16.0.10 address=/.apps.mycluster.contrail.lan/172.16.0.10 address=/api-int.mycluster.contrail.lan/172.16.0.10
- DNS/DHCP サーバーを起動します。
例えば:
systemctl start dnsmasq
- DNS/DHCP サーバーをインストールします。
- Red HatからOpenShiftコマンドラインインターフェイスツール(oc)をダウンロードします。このパッケージには kubectl が含まれています。
- ローカル コンピューターのブラウザーで、https://console.redhat.com/openshift/downloads#tool-oc に移動し、OpenShift コマンド ライン インターフェイス ツール(oc)をダウンロードします。
- ダウンロードしたパッケージを Assisted Installer クライアント マシンと untar にコピーします。
user@ai-client:~/$ tar -xzvf openshift-client-linux.tar.gz README.md oc kubectl
- oc および kubectl 実行可能ファイルをパス内のディレクトリ(/usr/local/bin など)にコピーします。