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-install とoc をPATHに配置します。
プルシークレットをクリップボードにコピーし、その内容をこのリポジトリのルートにあるファイル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_ENABLED | FIPS暗号モジュールの有効化 | false | 
| GCP_PROJECT_ID | Google Cloud プロジェクト ID | cloud-native-182609 | 
| GCP_REGION | クラスターのGoogle Cloudリージョン | us-central1 | 
| GOOGLE_APPLICATION_CREDENTIALS | Google CloudサービスアカウントJSONファイルへのパス | gcloud.json | 
| GOOGLE_CREDENTIALS | Google Cloud サービス アカウント JSON ファイルの内容 | の内容 $GOOGLE_APPLICATION_CREDENTIALS | 
| PULL_SECRET_FILE | Red Hat プルシークレットファイルへのパス | pull_secret | 
| PULL_SECRET | Red Hat プルシークレットファイルの内容 | の内容 $PULL_SECRET_FILE | 
| SSH_PUBLIC_KEY_FILE | SSH公開キーファイルへのパス。 | $HOME/.ssh/id_rsa.pub | 
| SSH_PUBLIC_KEY | SSH公開鍵ファイルの内容 | の内容 $SSH_PUBLIC_KEY_FILE | 
| LOG_LEVEL | openshift-install出力の動詞度 | info | 
CLUSTER_NAME とBASE_DOMAIN を組み合わせてクラスターのドメイン名を構築します。OpenShift クラスターを破棄します。
./scripts/destroy_openshift_cluster.sh を実行して Google Cloud の OpenShift クラスターを破棄します。これには4分ほどかかります。
INSTALL_DIR のmetadata.json ファイルが OpenShift クラスターを破棄するために必要なすべてです。metadata.json ファイルは、クラスターの認証情報を保持する既存の 1Password アイテムに添付されます。
設定オプション
以下の環境変数を設定することにより、実行時に設定を適用することができます。すべてのオプションにはデフォルトがあり、オプションは必須ではありません。
| 変数|説明|デフォルト|-|-|-|-|-| CLUSTER_NAME|クラスター名|ocp-$USER|LOG_LEVEL|openshift-install出力の動詞度|info|GOOGLE_APPLICATION_CREDENTIALS|GoogleクラウドサービスアカウントJSONファイルへのパス|gcloud.json|GOOGLE_CREDENTIALS|GoogleクラウドサービスアカウントJSONファイルの内容|$GOOGLE_APPLICATION_CREDENTIALS|の内容。 | 
次のステップ
GitLabオペレーターをOpenShiftクラスターにインストールする手順については、doc/installation.mdを参照してください。
リソース
- 
openshift-installerソースhttps://github.com/openshift/installer
- 
ocソースhttps://github.com/openshift/oc
- 
openshift-installerおよびocパッケージ:https://mirror.openshift.com/pub/openshift-v4/clients/ocp/
- OpenShift Container Project(OCP) アーキテクチャドキュメント:https://docs.openshift.com/container-platform/4.10/architecture/index.html
- OpenShift GCP ドキュメント:https://docs.openshift.com/container-platform/4.11/installing/installing_gcp/installing-gcp-account.html
- OpenShiftトラブルシューティングガイド:https://docs.openshift.com/container-platform/4.11/support/troubleshooting/troubleshooting-installations.html
