11. ブートストラップ クラスタを設定する

完了までの推定時間: 2 時間

操作可能なコンポーネントの所有者: OLT/ノード/KUB

スキル プロファイル: デプロイ エンジニア

このページでは、ブートストラップ マシンで実行環境を設定する手順について説明します。実行を成功させるには、次の手順を図に示す順序で実行する必要があります。

11.1. ブートストラップ ネットワークを設定する

この設定では、cellconfg ファイルの情報を使用して、ブートストラッパーの管理ネットワーク インターフェースと bond0 ネットワーク インターフェースを構成します。ネットワーク インターフェースを設定するには、次のコマンドを実行します。

gdcloud system network init --config <path_to_cellcfg>

ブートストラッパーの Server オブジェクトは、管理インターフェースの IP アドレスを指定します。BootstrapperReservation が定義された SubnetClaim オブジェクトは、bond0 インターフェースの IP アドレスを抽出します。

11.2. プライベート レジストリを設定する

ローカル レジストリを設定するには、次のコマンドを実行します。

gdcloud system container-registry install --delete-bootstrap-cluster

省略可: --registry-address BOOTSTRAPPER_DATAPLANE_IP を使用してレジストリ アドレスを指定します。指定しない場合、コマンドは bond0 インターフェースの IP アドレスを自動的に選択します。

このコマンドにより、以下が行われます。

  • 必要な証明書を生成します。
  • ブートストラップ マシンに Harbor、Docker、その他の依存関係をインストールします。
  • Docker でログインします。
  • コンテナ イメージを読み込んで、限定公開レジストリに push します。
  • Helm チャートを非公開レジストリに push します。

この手順で次のエラーが発生した場合:

Error response from daemon: Get "https://10.255.247.254/v2/": x509: certificate has expired or is not yet valid: current time 2023-04-04T20:46:42Z is afte│······r 2023-01-27T23:41:44Z

次の手順に沿ってトラブルシューティングを行います。

  1. Docker コンテナを停止します。

    docker stop $(docker ps -aq)
    
  2. Docker コンテナを削除します。

    docker rm $(docker ps -aq)
    
  3. 次のコマンドに v2 を追加して、[untar_directory]/release/harbor から次の証明書を削除します。

    -rw-r--r--  1 root   root       1391 Jan 27  2022 10.255.247.254.cert
    -rw-r--r--  1 root   root       1391 Jan 27  2022 10.255.247.254.crt
    -rw-r--r--  1 root   root       1009 Jan 27  2022 10.255.247.254.csr
    -rw-------  1 root   root       1679 Jan 27  2022 10.255.247.254.key
    -rw-r--r--  1 root   root       1391 Jan 23  2022 172.22.112.67.cert
    -rw-r--r--  1 root   root       1391 Jan 23  2022 172.22.112.67.crt
    -rw-r--r--  1 root   root       1009 Jan 23  2022 172.22.112.67.csr
    -rw-------  1 root   root       1679 Jan 23  2022 172.22.112.67.key
    -rw-r--r--  1 root   root       1350 Jan 27  2022 ca.crt
    -rw-------  1 root   root       1675 Jan 27  2022 ca.key
    -rw-r--r--  1 root   root         41 Jan 27  2022 ca.srl
    
    gdcloud system container-registry install --delete-bootstrap-cluster -v2 
    

11.3. KIND クラスタ環境を初期化する

後続のプロセスをブートストラップするには、Kubernetes in Docker(KIND)クラスタを使用してローカル Kubernetes クラスタを初期化する必要があります。

クラスタ環境を初期化するには、次のコマンドを実行します。

gdcloud system bootstrap-cluster install --config <path_to_cellcfg> --subcomponent-overrides <path_to_assets>

このコマンドにより、以下が行われます。

  • KIND クラスタを作成します。
  • 証明書マネージャーをデプロイします。
  • Kubernetes マニフェストとチャートを KIND クラスタにデプロイします。
  • OS イメージをホストする NGNIX サーバーを起動します。

11.4. デプロイ全体の機能ベースのしきい値を設定する

機能ステージのしきい値を編集するには、次のコマンドを実行します。

kubectl edit stage stage

minStage フィールドを必要な機能ステージのしきい値に更新します。たとえば、規制対象のお客様のプロダクション ワークロード用にデプロイが設定されている場合、ステージ値は accredited に設定されるため、認定された機能のみが有効になります。

    ...
    spec:
      minStage: FEATURE_THRESHOLD

FEATURE_THRESHOLD は、必要な機能ステージのしきい値に置き換えます。指定できる値は previewproductionaccredited です。

機能ステージと現在のフィーチャー ゲートのリストの詳細については、機能ステージをご覧ください。

11.5. ブートストラップ KIND クラスタで実行されるコンポーネントをインストールする

gdcloud system component deploy --names=*

このコマンドにより、以下が行われます。

  • 操作可能なコンポーネントのライフサイクル テンプレートを KIND にインストールします。
  • サブコンポーネントを持つ操作可能なコンポーネントをデプロイして、KIND クラスタで実行します。

11.6. ブートストラップの NTP サーバーをインストールする

以下のコマンドを実行します。

gdcloud system ntp install --config <path_to_cellcfg>

これにより、NTPRelay オブジェクトがブートストラップ クラスタに読み込まれ、ブートストラップされるハードウェアにサービスを提供するために、ブートストラップで NTP サーバーが起動します。

11.7. デプロイ用にパートナー提供のソフトウェア パッケージを読み込む

パートナーが運用するデプロイの場合、パートナーが提供するソフトウェア パッケージを読み込む必要があります。手順に沿って、パートナー モデルの配布用にパートナーが提供するソフトウェア パッケージを読み込みます。