OpenShiftクラスターのセットアップ

このドキュメントでは、このプロジェクトの自動化スクリプトを使用して Google Cloud に OpenShift クラスターを作成する手順を説明します。

準備

まず、GitLab のメールに関連付けられた Red Hat アカウントを持っている必要があります。Red Hat アライアンス・リエゾンに連絡してください。アカウントの招待メールを送るよう手配してくれます。Red Hat アカウントを有効化すると、OpenShift の実行に必要なライセンスとサブスクリプションにアクセスできるようになります。

Google Cloud でクラスターを起動するには、公開クラウド DNS ゾーンを登録ドメインに接続し、Google Cloud DNS で設定する必要があります。ドメインがまだ利用可能でない場合は、このガイドの手順に従って作成してください。

CLIツールとPull Secretの入手

OpenShift クラスター (openshift-install) を作成し、クラスター (oc) と対話するには、2 つの CLI ツールが必要です。

Red Hat の非公開 Docker レジストリからイメージを取得するには、プルシークレットが必要です。開発者ごとに、Red Hat アカウントに関連付けられているプルシークレットが異なります。

CLI ツールとプルシークレットを取得するには、https://cloud.redhat.com/openshift/install/gcp/installer-provisioned にアクセスし、Red Hat アカウントでログインします。このページで、提供されているリンクから最新バージョンのインストーラーとコマンドラインツールをダウンロードします。これらのパッケージを展開し、openshift-installocPATHに配置します。

プルシークレットをクリップボードにコピーし、その内容をこのリポジトリのルートにあるファイルpull_secret に書き込みます。このファイルは gitignored されます。

Google Cloud(GCP) Service アカウントの作成

以下の手順に従っ て、 Google Cloudcloud-native プ ロ ジ ェ ク ト にサービ ス ア カ ウ ン ト を作成 し ます。そのドキュメントで Required とマークされたロールをすべてアタッチします。サービス アカウントを作成したら、JSON キーを生成し、このリポジトリのルートにgcloud.json として保存します。このファイルは gitignored されます。

OpenShift クラスターを作成します。

以下の設定オプションを確認し、対象のGCPプロジェクトで必要なAPIサービスが有効になっていることを確認します。./scripts/create_openshift_cluster.sh を実行して、Google Cloud に OpenShift クラスターを作成します。これは、3つのコントロールプレーン(マスター)ノードと3つのワーカーノード(設定テンプレート)を持つ6ノードクラスタになります。これには約40分かかります。コンソール出力の最後にある指示に従ってクラスターに接続します。

クラスターが作成されると、https://cloud.redhat.com/openshift/ にクラスターが登録されます。すべてのインストールログとメタデータは、このリポジトリのinstall-$CLUSTER_NAME/ ディレクトリに保存されます。このフォルダは gitignored されます。

このクラスターを他のチームメイトまたは CI で使用する場合は、1Password Cloud Native vault に新しいアイテムを作成し、INSTALL_DIR に配置されたこれらのファイルを添付してください:

  • metadata.json必要に応じてクラスターを削除してください。
  • auth/kubeconfigクラスターへの認証
  • auth/kubeadmin-passwordクラスター認証UI

設定オプション

環境変数を設定することにより、実行時に設定を適用することができます。すべてのオプションにはデフォルトがあり、オプションは必須ではありません。

変数説明デフォルト
CLUSTER_NAMEクラスター名ocp-$USER
BASE_DOMAINクラスターのルートドメインk8s-ft.win
FIPS_ENABLEDFIPS暗号モジュールの有効化false
GCP_PROJECT_IDGoogle Cloud プロジェクト IDcloud-native-182609
GCP_REGIONクラスターのGoogle Cloudリージョンus-central1
GOOGLE_APPLICATION_CREDENTIALSGoogle CloudサービスアカウントJSONファイルへのパスgcloud.json
GOOGLE_CREDENTIALSGoogle Cloud サービス アカウント JSON ファイルの内容の内容$GOOGLE_APPLICATION_CREDENTIALS
PULL_SECRET_FILERed Hat プルシークレットファイルへのパスpull_secret
PULL_SECRETRed Hat プルシークレットファイルの内容の内容$PULL_SECRET_FILE
SSH_PUBLIC_KEY_FILESSH公開キーファイルへのパス。$HOME/.ssh/id_rsa.pub
SSH_PUBLIC_KEYSSH公開鍵ファイルの内容の内容$SSH_PUBLIC_KEY_FILE
LOG_LEVEL openshift-install 出力の動詞度info
note
変数CLUSTER_NAMEBASE_DOMAIN を組み合わせてクラスターのドメイン名を構築します。
note
FIPS_ENABLEDtrue に設定してクラスターを作成すると、サードパーティ製ソフトウェアで問題が発生する可能性があります。イシューではこの問題を調査中です。

OpenShift クラスターを破棄します。

./scripts/destroy_openshift_cluster.sh を実行して Google Cloud の OpenShift クラスターを破棄します。これには4分ほどかかります。

INSTALL_DIRmetadata.json ファイルが OpenShift クラスターを破棄するために必要なすべてです。metadata.json ファイルは、クラスターの認証情報を保持する既存の 1Password アイテムに添付されます。

設定オプション

以下の環境変数を設定することにより、実行時に設定を適用することができます。すべてのオプションにはデフォルトがあり、オプションは必須ではありません。

変数|説明|デフォルト|-|-|-|-|-|CLUSTER_NAME |クラスター名|ocp-$USERLOG_LEVELopenshift-install 出力の動詞度|infoGOOGLE_APPLICATION_CREDENTIALS |GoogleクラウドサービスアカウントJSONファイルへのパス|gcloud.jsonGOOGLE_CREDENTIALS |GoogleクラウドサービスアカウントJSONファイルの内容|$GOOGLE_APPLICATION_CREDENTIALS |の内容。

次のステップ

GitLabオペレーターをOpenShiftクラスターにインストールする手順については、doc/installation.mdを参照してください。

リソース