Google Cloud Platform への RHEL 8 のデプロイ
RHEL システムイメージの取得と GCP 上での RHEL インスタンスの作成
概要
多様性を受け入れるオープンソースの強化
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。
Red Hat ドキュメントへのフィードバック (英語のみ)
Red Hat ドキュメントに関するご意見やご感想をお寄せください。また、改善点があればお知らせください。
Jira からのフィードバック送信 (アカウントが必要)
- Jira の Web サイトにログインします。
- 上部のナビゲーションバーで Create をクリックします。
- Summary フィールドにわかりやすいタイトルを入力します。
- Description フィールドに、ドキュメントの改善に関するご意見を記入してください。ドキュメントの該当部分へのリンクも追加してください。
- ダイアログの下部にある Create をクリックします。
第1章 パブリッククラウドプラットフォームでの RHEL の導入
パブリッククラウドプラットフォームは、コンピューティングリソースをサービスとして提供します。オンプレミスのハードウェアを使用する代わりに、Red Hat Enterprise Linux (RHEL) システムなどの IT ワークロードをパブリッククラウドインスタンスとして実行できます。
1.1. パブリッククラウドで RHEL を使用する利点
パブリッククラウドプラットフォーム上に配置されたクラウドインスタンスとしての RHEL には、RHEL オンプレミスの物理システムまたは仮想マシン (VM) に比べて次の利点があります。
リソースの柔軟性と詳細な割り当て
RHEL のクラウドインスタンスは、クラウドプラットフォーム上の仮想マシンとして実行されます。この仮想マシンは通常、クラウドサービスのプロバイダーによって維持管理されるリモートサーバーのクラスターです。したがって、特定のタイプの CPU やストレージなどのハードウェアリソースのインスタンスへの割り当ては、ソフトウェアレベルで行われ、簡単にカスタマイズできます。
また、ローカルの RHEL システムと比較すると、物理ホストの機能によって制限されることがありません。むしろ、クラウドプロバイダーが提供する選択肢に基づいて、さまざまな機能から選択できます。
領域とコスト効率
クラウドワークロードをホストするためにオンプレミスサーバーを所有する必要がありません。これにより、物理ハードウェアに関連するスペース、電力、メンテナンスの要件が回避されます。
代わりに、パブリッククラウドプラットフォームでは、クラウドインスタンスの使用料をクラウドプロバイダーに直接支払います。通常、コストはインスタンスに割り当てられたハードウェアとその使用時間に基づきます。したがって、要件に基づいてコストを最適化できます。
ソフトウェアで制御される設定
クラウドインスタンスの設定全体がクラウドプラットフォーム上にデータとして保存され、ソフトウェアによって制御されます。したがって、インスタンスの作成、削除、クローン作成、または移行を簡単に行うことができます。また、クラウドインスタンスは、クラウドプロバイダーのコンソールでリモートで操作され、デフォルトでリモートストレージに接続されます。
さらに、クラウドインスタンスの現在の状態をいつでもスナップショットとしてバックアップできます。その後、スナップショットをロードしてインスタンスを保存した状態に復元できます。
ホストからの分離とソフトウェアの互換性
ローカルの仮想マシンと同様に、クラウドインスタンス上の RHEL ゲストオペレーティングシステムは仮想化されたカーネル上で実行されます。このカーネルは、ホストオペレーティングシステムや、インスタンスへの接続に使用する クライアント システムとは別のものです。
したがって、任意のオペレーティングシステムをクラウドインスタンスにインストールできます。つまり、RHEL パブリッククラウドインスタンスでは、ローカルオペレーティングシステムでは使用できない RHEL 固有のアプリケーションを実行できます。
さらに、インスタンスのオペレーティングシステムが不安定になったり侵害されたりした場合でも、クライアントシステムには一切影響がありません。
1.2. RHEL のパブリッククラウドのユースケース
パブリッククラウドへのデプロイには多くの利点がありますが、すべてのシナリオにおいて最も効率的なソリューションであるとは限りません。RHEL デプロイメントをパブリッククラウドに移行するかどうかを評価している場合は、ユースケースがパブリッククラウドの利点を享受できるかどうかを検討してください。
有益なユースケース
パブリッククラウドインスタンスのデプロイは、デプロイメントのアクティブなコンピューティング能力を柔軟に増減する (スケールアップ および スケールダウン とも呼ばれます) 場合に非常に効果的です。したがって、次のシナリオではパブリッククラウドで RHEL を使用することを推奨します。
- ピーク時のワークロードが高く、一般的なパフォーマンス要件が低いクラスター。要求に応じてスケールアップおよびスケールダウンすることで、リソースコストの面で高い効率が得られる場合があります。
- クラスターを迅速にセットアップまたは拡張できます。これにより、ローカルサーバーのセットアップにかかる高額な初期費用が回避されます。
- クラウドインスタンスは、ローカル環境で何が起こっても影響を受けません。したがって、バックアップや障害復旧に使用できます。
問題が発生する可能性のあるユースケース
- 調整不可能な既存の環境を運用している場合。既存のデプロイメントの特定のニーズに合わせてクラウドインスタンスをカスタマイズすることは、現在のホストプラットフォームと比較して費用対効果が低い可能性があります。
- 厳しい予算制限の中で運用している場合。通常、ローカルデータセンターでデプロイメントを維持管理すると、パブリッククラウドよりも柔軟性は低くなりますが、最大リソースコストをより細かく制御できます。
次のステップ
1.3. パブリッククラウドへの移行時によくある懸念事項
RHEL ワークロードをローカル環境からパブリッククラウドプラットフォームに移行すると、それに伴う変更について懸念が生じる可能性があります。よくある質問は次のとおりです。
RHEL は、クラウドインスタンスとして動作する場合、ローカル仮想マシンとして動作する場合とは異なる動作になりますか?
パブリッククラウドプラットフォーム上の RHEL インスタンスは、ほとんどの点で、オンプレミスサーバーなどのローカルホスト上の RHEL 仮想マシンと同じように機能します。注目すべき例外には次のようなものがあります。
- パブリッククラウドインスタンスは、プライベートオーケストレーションインターフェイスの代わりに、プロバイダー固有のコンソールインターフェイスを使用してクラウドリソースを管理します。
- ネストされた仮想化などの特定の機能が正しく動作しない可能性があります。特定の機能がデプロイメントにとって重要な場合は、選択したパブリッククラウドプロバイダーとその機能の互換性を事前に確認してください。
ローカルサーバーと比べて、パブリッククラウドではデータは安全に保たれますか?
RHEL クラウドインスタンス内のデータの所有権はユーザーにあり、パブリッククラウドプロバイダーはデータにアクセスできません。さらに、主要なクラウドプロバイダーは転送中のデータ暗号化をサポートしているため、仮想マシンをパブリッククラウドに移行する際のデータのセキュリティーが向上します。
RHEL パブリッククラウドインスタンスの一般的なセキュリティーは次のように管理されます。
- パブリッククラウドプロバイダーは、クラウドハイパーバイザーのセキュリティーを担当します。
- Red Hat は、RHEL ゲストオペレーティングシステムのセキュリティー機能をインスタンスに提供します。
- ユーザーは、クラウドインフラストラクチャーにおける特定のセキュリティー設定とプラクティスを管理します。
ユーザーの地理的リージョンは、RHEL パブリッククラウドインスタンスの機能にどのように影響しますか?
RHEL インスタンスは、地理的な場所に関係なく、パブリッククラウドプラットフォームで使用できます。したがって、オンプレミスサーバーと同じリージョンでインスタンスを実行できます。
ただし、物理的に離れたリージョンでインスタンスをホストすると、操作時に待ち時間が長くなる可能性があります。さらに、パブリッククラウドプロバイダーによっては、特定のリージョンで、追加機能が提供される場合や、より高いコスト効率が得られる場合があります。RHEL インスタンスを作成する前に、選択したクラウドプロバイダーで利用可能なホスティングリージョンのプロパティーを確認してください。
1.4. パブリッククラウドデプロイメント用の RHEL の入手
RHEL システムをパブリッククラウド環境にデプロイするには、次のことを行う必要があります。
要件と市場の現在のオファーに基づいて、ユースケースに最適なクラウドプロバイダーを選択します。
現在、RHEL インスタンスの実行が認定されているクラウドプロバイダーは次のとおりです。
- Amazon Web Services (AWS)
- Google Cloud Platform (GCP)
- 注記
このドキュメントでは、GCP への RHEL のデプロイについて特に説明します。
- 選択したクラウドプラットフォーム上に RHEL クラウドインスタンスを作成します。詳細は、RHEL クラウドインスタンスを作成する方法 を参照してください。
- RHEL デプロイメントを最新の状態に保つには、Red Hat Update Infrastructure (RHUI) を使用します。
1.5. RHEL クラウドインスタンスを作成する方法
RHEL インスタンスをパブリッククラウドプラットフォームにデプロイするには、次のいずれかの方法を使用できます。
RHEL のシステムイメージを作成し、クラウドプラットフォームにインポートします。
|
RHEL インスタンスをクラウドプロバイダーマーケットプレイスから直接購入します。
|
さまざまな方法を使用して Google Cloud Platform に RHEL インスタンスをデプロイする詳細な手順については、このドキュメントの次の章を参照してください。
第2章 RHEL Image Builder を使用した GCP へのイメージのアップロード
RHEL Image Builderを使用すると、gce
イメージをビルドし、ユーザーまたは GCP サービスアカウントの認証情報を指定して、gce
イメージを GCP 環境に直接アップロードできます。
2.1. CLI を使用した gce イメージの GCP へのアップロード
gce
イメージを GCP にアップロードするための認証情報を含む設定ファイルをセットアップする手順に従います。
イメージが起動しなくなるため、gce
イメージを GCP に手動でインポートすることはできません。アップロードするには、gcloud
または RHEL Image Builder を使用する必要があります。
前提条件
イメージを GCP にアップロードするための有効な Google アカウントと認証情報がある。認証情報は、ユーザーアカウントまたはサービスアカウントから取得できます。認証情報に関連付けられたアカウントには、少なくとも次の IAM ロールが割り当てられている必要があります。
-
roles/storage.admin
- ストレージオブジェクトの作成と削除 -
roles/compute.storageAdmin
- 仮想マシンイメージの Compute Engine へのインポート
-
- 既存の GCP バケットがあります。
手順
テキストエディターを使用して、次の内容で
gcp-config.toml
設定ファイルを作成します。provider = "gcp" [settings] bucket = "GCP_BUCKET" region = "GCP_STORAGE_REGION" object = "OBJECT_KEY" credentials = "GCP_CREDENTIALS"
-
GCP_BUCKET
は既存のバケットを指します。アップロード中のイメージの中間ストレージオブジェクトを格納するために使用されます。 -
GCP_STORAGE_REGION
は、通常の Google ストレージリージョンであると同時に、デュアルリージョンまたはマルチリージョンでもあります。 -
OBJECT_KEY
は、中間ストレージオブジェクトの名前です。アップロード前に存在してはならず、アップロードプロセスが完了すると削除されます。オブジェクト名が.tar.gz
で終わらない場合、拡張子がオブジェクト名に自動的に追加されます。 GCP_CREDENTIALS
は、GCP からダウンロードされた認証情報 JSON ファイルの Base64 エンコードスキームです。認証情報によって、GCP がイメージをアップロードするプロジェクトが決まります。注記GCP での認証に別のメカニズムを使用する場合、
gcp-config.toml
ファイルでのGCP_CREDENTIALS
の指定は任意です。他の認証方法については、Authenticating with GCP を参照してください。
-
GCP からダウンロードした JSON ファイルから
GCP_CREDENTIALS
を取得します。$ sudo base64 -w 0 cee-gcp-nasa-476a1fa485b7.json
追加のイメージ名とクラウドプロバイダープロファイルを使用して Compose を作成します。
$ sudo composer-cli compose start BLUEPRINT-NAME gce IMAGE_KEY gcp-config.toml
イメージビルド、アップロード、およびクラウド登録プロセスは、完了に最大 10 分かかる場合があります。
検証
イメージのステータスが FINISHED であることを確認します。
$ sudo composer-cli compose status
2.2. RHEL Image Builder によるさまざまな GCP 認証情報の認証順序の並べ替え
RHEL Image Builder でいくつかの異なる種類の認証情報を使用して、GCP で認証できます。複数の認証情報セットを使用して GCP で認証するように RHEL Image Builder が設定されている場合、次の優先順位で認証情報が使用されます。
-
設定ファイルで
composer-cli
コマンドで指定された認証情報。 -
osbuild-composer
ワーカー設定で設定された認証情報。 次の方法で認証方法を自動的に見つけようとする、
Google GCP SDK
ライブラリーからのApplication Default Credentials
。- GOOGLE_APPLICATION_CREDENTIALS 環境変数が設定されている場合、Application Default Credentials は、変数が指すファイルから認証情報を読み込んで使用しようとします。
Application Default Credentials は、コードを実行しているリソースに関連付けられたサービスアカウントを使用して認証を試みます。たとえば、Google Compute Engine 仮想マシンです。
注記イメージをアップロードする GCP プロジェクトを決定するには、GCP 認証情報を使用する必要があります。したがって、すべてのイメージを同じ GCP プロジェクトにアップロードする場合を除き、
composer-cli
コマンドを使用してgcp-config.toml
設定ファイルに認証情報を指定する必要があります。
2.2.1. composer-cli コマンドで GCP 認証情報を指定する
アップロードターゲット設定の gcp-config.toml
ファイルで、GCP 認証情報を指定できます。時間を節約するために、Google アカウント認証情報の JSON ファイルの Base64
エンコードスキームを使用します。
手順
GOOGLE_APPLICATION_CREDENTIALS
環境変数に保存されているパスを使用して、Google アカウント認証情報ファイルのエンコードされたコンテンツを取得するには、次のコマンドを実行します。$ base64 -w 0 "${GOOGLE_APPLICATION_CREDENTIALS}"
アップロードターゲット設定の
gcp-config.toml
ファイルで、認証情報を設定します。provider = "gcp" [settings] provider = "gcp" [settings] ... credentials = "GCP_CREDENTIALS"
2.2.2. osbuild-composer ワーカー設定で認証情報を指定する
すべてのイメージビルドでグローバルに GCP に使用される GCP 認証認証情報を設定できます。このようにして、イメージを同じ GCP プロジェクトにインポートする場合、GCP へのすべてのイメージのアップロードに同じ認証情報を使用できます。
手順
/etc/osbuild-worker/osbuild-worker.toml
ワーカー設定で、次の認証情報の値を設定します。[gcp] credentials = "PATH_TO_GCP_ACCOUNT_CREDENTIALS"
第3章 Google Cloud Platform での Google Compute Engine インスタンスとしての Red Hat Enterprise Linux イメージのデプロイメント
Google Cloud Platform (GCP) に Google Compute Engine (GCE) インスタンスとして Red Hat Enterprise Linux 8 (RHEL 8) をデプロイするには、以下の情報に従います。この章の内容は次のとおりです。
- イメージを選ぶ際の選択肢について
- ホストシステムおよび仮想マシン (VM) のシステム要件のリストまたは参照
- ISO イメージからカスタム仮想マシンを作成し、それを GCE にアップロードして、インスタンスを起動する手順
GCP 向けの Red Hat 製品認定のリストは、Red Hat on Google Cloud Platform を参照してください。
ISO イメージからカスタム仮想マシンを作成することは可能ですが、Red Hat Image Builder 製品を使用して、特定のクラウドプロバイダーで使用するようにカスタマイズされたイメージを作成することを推奨します。詳細は RHEL システムイメージのカスタマイズ を参照してください。
前提条件
- Red Hat カスタマーポータル のアカウントがある (本章の手順を完了するのに必要)。
- Google Cloud Platform コンソールにアクセスするために、GCP でアカウントを作成している。詳細は Google Cloud を参照してください。
3.1. GCP での Red Hat Enterprise Linux イメージオプション
以下の表には、Google Cloud Platform 上での RHEL 8 用イメージの選択肢およびイメージオプションの相違点を示しています。
表3.1 イメージオプション
イメージオプション | サブスクリプション | サンプルシナリオ | 留意事項 |
---|---|---|---|
Red Hat Gold Image をデプロイする | 既存の Red Hat サブスクリプションを使用する | Google Cloud Platform で Red Hat Gold Image を選択します。Gold イメージの詳細、および Google Cloud Platform で Gold Image にアクセスする方法は、Red Hat Cloud Access Reference Guide を参照してください。 | その他のすべてのインスタンスコストを Google 社に支払うことになりますが、サブスクリプション自体には Red Hat 製品コストが含まれます。Red Hat は、カスタム RHEL イメージのサポートを直接提供します。 |
GCP に移動するカスタムイメージをデプロイする | 既存の Red Hat サブスクリプションを使用する | カスタムイメージをアップロードし、サブスクリプションを割り当てます。 | その他のすべてのインスタンスコストを支払うことになりますが、サブスクリプション自体には Red Hat 製品コストが含まれます。Red Hat は、カスタム RHEL イメージのサポートを直接提供します。 |
RHEL を含む既存の GCP イメージをデプロイする | GCP イメージには、Red Hat 製品が含まれる | GCP Compute Engine でインスタンスを起動する時に RHEL イメージを選択するか、Google Cloud Platform Marketplace からイメージを選択します。 | 従量課金モデルでは、GCP に 1 時間ごとに支払います。このようなイメージはオンデマンドイメージと呼ばれています。GCP は、サポート契約に基づいてオンデマンドイメージのサポートを提供します。 |
Red Hat Image Builder を使用して、GCP 用のカスタムイメージを作成できます。詳細は RHEL システムイメージのカスタマイズ を参照してください。
オンデマンドインスタンスをカスタム RHEL インスタンスに変換することはできません。オンデマンドイメージからカスタム RHEL bring-your-own-subscription (BYOS) イメージに変更するには、次の手順を実行します。
- 新しいカスタム RHEL インスタンスを作成し、オンデマンドインスタンスからデータを移行します。
- データを移行した後に、オンデマンドのインスタンスをキャンセルして二重請求を回避します。
3.2. ベースイメージの理解
ISO イメージからベース仮想マシンを作成するには、事前設定されたベースイメージとその設定を使用できます。
3.2.1. カスタムベースイメージの使用
仮想マシン (VM) を手動で設定するには、まずベース (スターター) となる仮想マシンイメージを作成します。続いて、設定を変更して、仮想マシンがクラウドで動作するために必要なパッケージを追加できます。イメージのアップロード後に、特定のアプリケーションに追加の設定変更を行うことができます。
3.2.2. 仮想マシン設定
クラウド仮想マシンには、以下の設定が必要です。
表3.2 仮想マシンの設定
設定 | 推奨事項 |
---|---|
ssh | 仮想マシンへのリモートアクセスを確立するには、SSH を有効にする必要があります。 |
dhcp | プライマリー仮想アダプターは、dhcp 用に設定する必要があります。 |
3.3. ISO イメージからのベース仮想マシンの作成
ISO イメージから RHEL 8 ベースイメージを作成するには、ホストマシンの仮想化を有効にし、RHEL 仮想マシン (VM) を作成します。
前提条件
- ホストマシンで 仮想化が有効 になっている。
-
Red Hat カスタマーポータル から最新の Red Hat Enterprise Linux ISO イメージをダウンロードし、イメージを
/var/lib/libvirt/images
に移動しました。
3.3.1. RHEL ISO イメージからの仮想マシンの作成
手順
- 仮想化用のホストマシンを有効にしていることを確認します。設定および手順は、RHEL 8 で仮想化を有効にする を参照してください。
基本的な Red Hat Enterprise Linux 仮想マシンを作成し、起動します。手順は、仮想マシンの作成 を参照してください。
コマンドラインを使用して仮想マシンを作成する場合は、デフォルトのメモリーと CPU を仮想マシンの容量に設定するようにしてください。仮想ネットワークインターフェイスを virtio に設定します。
たとえば、次のコマンドは
/home/username/Downloads/rhel9.iso
イメージを使用して仮想マシンkvmtest
を作成します。# virt-install \ --name kvmtest --memory 2048 --vcpus 2 \ --cdrom /home/username/Downloads/rhel8.iso,bus=virtio \ --os-variant=rhel8.0
Web コンソールを使用して仮想マシンを作成する場合は、Web コンソールで仮想マシンの作成 の手順を行います。以下の点に注意してください。
- 仮想マシンをすぐに起動 は選択しないでください。
- メモリー を希望のサイズに変更します。
- インストールを開始する前に、仮想ネットワークインターフェイス設定 で モデル を virtio に変更し、vCPUs を仮想マシンの容量設定に変更していることを確認します。
3.3.2. RHEL インストールの完了
Amazon Web Services (AWS) にデプロイする RHEL システムのインストールを完了するには、インストールの概要 ビューをカスタマイズし、インストールを開始し、仮想マシンの起動後にルートアクセスを有効にします。
手順
- インストールプロセス中に使用する言語を選択します。
インストール概要 ビューで、以下を行います。
- ソフトウェアの選択 をクリックし、最小インストール を選択します。
- 完了 をクリックします。
インストール先 をクリックし、ストレージ設定 で カスタム を選択します。
-
/boot
で、500 MB 以上であることを確認してください。残りの領域は、root/
に使用できます。 - 標準のパーティションが推奨されますが、論理ボリューム管理 (LVM) を使用することも可能です。
- ファイルシステムには、xfs、ext4、ext3 などを使用できます。
- 変更が完了したら、完了 をクリックします。
-
- インストールの開始 をクリックします。
- Root パスワード を設定します。必要に応じて、他のユーザーを作成します。
-
インストールが完了したら、仮想マシンを再起動して
root
でログインします。 イメージを設定します。
仮想マシンを登録し、Red Hat Enterprise Linux 8 リポジトリーを有効にします。
# subscription-manager register --auto-attach
cloud-init
パッケージがインストールされ、有効になっていることを確認します。# yum install cloud-init # systemctl enable --now cloud-init.service
- 仮想マシンの電源をオフにします。
3.4. RHEL イメージの GCP へのアップロード
RHEL 8 のイメージを Google Cloud Platform(GCP) にアップロードするには、このセクションの手順に従ってください。
3.4.1. GCP での新規プロジェクトの作成
Google Cloud Platform (GCP) でプロジェクトを新規作成するには、以下の手順を行います。
前提条件
- GCP のアカウントを持っている必要があります。そうでない場合は、Google Cloud を参照してください。
手順
- GCP コンソール を起動します。
- Google Cloud Platform の右側にあるドロップダウンメニューをクリックします。
- ポップアップメニューから 新しいプロジェクト をクリックします。
- 新しいプロジェクト ウィンドウに、新規プロジェクトの名前を入力します。
- Organizationのチェックボックスを選択します。ドロップダウンメニューをクリックして、必要に応じて組織を変更します。
- 親組織またはフォルダーの 場所 を確認します。参照 をクリックして検索し、必要に応じてこの値を変更します。
作成 をクリックして、新しい GCP プロジェクトを作成します。
注記Google Cloud SDK をインストールしたら、CLI コマンドの
gcloud projects create
を使用してプロジェクトを作成できます。以下に例を示します。# gcloud projects create my-gcp-project3 --name project3
この例では、プロジェクト ID
my-gcp-project3
とプロジェクト名project3
のプロジェクトを作成します。詳細は、gcloud project create を参照してください。
3.4.2. Google Cloud SDK のインストール
Google Cloud SDK をインストールするには、以下の手順を行います。
手順
- GCP の説明に従って、Google Cloud SDK アーカイブをダウンロードし、抽出します。詳細は、GCP ドキュメント Quickstart for Linux を参照してください。
Google Cloud SDK の初期化と同じ手順に従います。
注記Google Cloud SDK を初期化すると、
gcloud
CLI コマンドを使用してタスクを実行でき、プロジェクトとインスタンスに関する情報を取得できます。たとえば、gcloud compute project-info describe --project <project-name>
コマンドを使用してプロジェクト情報を表示できます。
3.4.3. Google Compute Engine の SSH 鍵の作成
以下の手順に従って、GCE で SSH 鍵を生成して登録し、そのパブリック IP アドレスを使用してインスタンスに直接 SSH 接続できるようにします。
手順
ssh-keygen
コマンドを使用して、GCE で使用する SSH 鍵ペアを生成します。# ssh-keygen -t rsa -f ~/.ssh/google_compute_engine
- GCP Console Dashboard ページ から、Google の Cloud Console バナー の左側にある ナビゲーション メニューをクリックし、Compute Engine を選択して Metadata を選択します。
- SSH 鍵 をクリックして、編集 をクリックします。
~/.ssh/google_compute_engine.pub
ファイルから生成された出力を入力し、保存 をクリックします。これで、標準の SSH を使用してインスタンスに接続できます。
# ssh -i ~/.ssh/google_compute_engine <username>@<instance_external_ip>
gcloud compute config-ssh
コマンドを実行すると、インスタンスのエイリアスを設定ファイルに追加できます。エイリアスは、インスタンス名による単純な SSH 接続を許可します。gcloud compute config-ssh
コマンドの詳細は、gcloud compute config-ssh を参照してください。
3.4.4. GCP ストレージでのストレージバケットの作成
GCP にインポートするには、GCP Storage バケットが必要です。以下の手順に従って、バケットを作成します。
手順
GCP にログインしていない場合は、次のコマンドを実行してログインします。
# gcloud auth login
ストレージバケットを作成します。
# gsutil mb gs://bucket_name
注記Google Cloud コンソールを使用してバケットを作成することもできます。詳細は、バケットの作成 を参照してください。
関連情報
3.4.5. GCP バケットへのイメージの変換およびアップロード
以下の手順に従って、GCP バケットにイメージを変換してアップロードします。サンプルは典型的なもので、qcow2
イメージを raw
形式に変換してから、そのイメージをアップロードするために tar を使用します。
手順
qemu-img
コマンドを実行してイメージを変換します。変換されたイメージは、disk.raw
という名前になるはずです。# qemu-img convert -f qcow2 -O raw rhel-8.0-sample.qcow2 disk.raw
イメージに tar コマンドを実行します。
# tar --format=oldgnu -Sczf disk.raw.tar.gz disk.raw
そのイメージを、以前作成したバケットにアップロードします。アップロードには数分かかる場合があります。
# gsutil cp disk.raw.tar.gz gs://bucket_name
- Google Cloud Platform のホーム画面で、折りたたまれたメニューアイコンをクリックし、ストレージ を選択してから ブラウザー を選択します。
バケットの名前をクリックします。
バケット名の下に、tar コマンドを実行したイメージが表示されます。
注記GCP コンソール を使用してイメージをアップロードすることもできます。これを行うには、バケットの名前をクリックしてから ファイルのアップロード をクリックします。
関連情報
3.4.6. GCP バケットのオブジェクトからイメージの作成
以下の手順に従って、GCP バケットのオブジェクトからイメージを作成します。
手順
以下のコマンドを実行して GCE のイメージを作成します。作成するイメージの名前、バケット名、および tar コマンドを実行したイメージの名前を指定します。
# gcloud compute images create my-image-name --source-uri gs://my-bucket-name/disk.raw.tar.gz
注記または、Google Cloud コンソールを使用して、イメージを作成することもできます。詳細は、カスタムイメージの作成、削除、および中止 を参照してください。
必要に応じて、GCP コンソールでイメージを検索します。
- Google Cloud Console バナーの左側にある ナビゲーション メニューをクリックします。
- Compute Engine を選択し、イメージ を選択します。
3.4.7. イメージからの Google Compute Engine インスタンスの作成
GCP コンソールを使用して GCE 仮想マシンインスタンスを設定するには、以下の手順を行います。
以下の手順では、GCP コンソールを使用して基本的な仮想マシンインスタンスを作成する方法を説明します。GCE 仮想マシンインスタンスおよびその設定オプションの詳細は、Creating and starting a VM instance を参照してください。
手順
- GCP Console Dashboard ページ から、Google の Cloud Console バナー の左側にある ナビゲーション メニューをクリックし、Compute Engine を選択して イメージ を選択します。
- イメージを選択します。
- インスタンスの作成 をクリックします。
- インスタンスの作成 ページで、インスタンスの 名前 を入力します。
- 地域 と ゾーン を選択します。
- ワークロードの要件を満たす、もしくは超過する マシン設定 を選択します。
- ブートディスク にイメージ名が指定されていることを確認します。
- 必要に応じて、ファイアウォール で HTTP トラフィックを許可する か、HTTPS トラフィックを許可する を選択します。
作成 をクリックします。
注記これらは、基本インスタンスの作成に必要な最小限の設定オプションです。アプリケーション要件に応じて追加オプションを確認します。
- VM インスタンス にあるイメージを見つけます。
GCP Console Dashboard から、Google の Cloud Console バナー の左側にある ナビゲーション メニューをクリックし、Compute Engine を選択してから 仮想マシンインスタンス を選択します。
注記または、CLI コマンド
gcloud compute instances create
を使用して、イメージから GCE 仮想マシンインスタンスを作成することもできます。簡単な例を以下に示します。gcloud compute instances create myinstance3 --zone=us-central1-a --image test-iso2-image
この例では、既存のイメージ
test-iso2-image
に基づいて、ゾーンus-central1-a
にmyinstance3
という名前の仮想マシンインスタンスを作成します。詳細は、gcloud compute instances create を参照してください。
3.4.8. インスタンスへの接続
以下の手順に従って、そのパブリック IP アドレスを使用して GCE インスタンスに接続します。
手順
次のコマンドを実行して、インスタンスが実行されていることを確認します。このコマンドは、インスタンスが実行しているかどうかを示し、実行している場合は実行中のインスタンスのパブリック IP アドレスなど、GCE インスタンスに関する情報リストを表示します。
# gcloud compute instances list
標準の SSH を使用してインスタンスに接続します。この例では、上述の手順で作成した
google_compute_engine
キーを使用します。# ssh -i ~/.ssh/google_compute_engine <user_name>@<instance_external_ip>
注記GCP は、インスタンスに対して SSH を多数実行する方法を提供します。詳細は、Connecting to instances を参照してください。以前に設定した root アカウントおよびパスワードを使用して、インスタンスに接続することもできます。
3.4.9. Red Hat サブスクリプションの割り当て
subscription-manager
コマンドを使用すると、Red Hat サブスクリプションを登録して RHEL インスタンスに割り当てることができます。
前提条件
- サブスクリプションが有効になっている。
手順
システムを登録します。
# subscription-manager register --auto-attach
サブスクリプションを割り当てます。
- アクティベーションキーを使用して、サブスクリプションを割り当てることができます。詳細は、カスタマーポータルのアクティベーションキーを作成する を参照してください。
- または、サブスクリプションプール (Pool ID) の ID を使用してサブスクリプションを手動で割り当てることができます。コマンドラインでのサブスクリプションのアタッチと削除 を参照してください。
オプション: Red Hat Hybrid Cloud Console でインスタンスに関するさまざまなシステムメトリックを収集するには、インスタンスを Red Hat Insights に登録します。
# insights-client register --display-name <display-name-value>
Red Hat Insights の詳細な設定については、Red Hat Insights のクライアント設定ガイド を参照してください。
3.5. 関連情報
第4章 Google Cloud Platform での Red Hat High Availability クラスターの設定
ノード障害が発生した場合に RHEL ノードがワークロードを自動的に再分配するクラスターを作成するには、Red Hat High Availability Add-On を使用します。このような高可用性 (HA) クラスターは、Google Cloud Platform (GCP) などのパブリッククラウドプラットフォームでもホストできます。GCP 上での RHEL HA クラスターの作成は、特定の詳細を除けば、非クラウド環境での HA クラスターの作成と同様です。
Google Compute Engine (GCE) 仮想マシン (VM) インスタンスをクラスターノードとして使用して、Google Cloud Platform (GCP) で Red Hat HA クラスターを設定するには、以下のセクションを参照してください。
これらは、次の情報を提供します。
- GCP 用の環境を設定するための前提手順。環境を設定したら、仮想マシンインスタンスを作成および設定できます。
- 個別のノードを GCP の HA ノードのクラスターに変換する HA クラスターの作成に固有の手順。これには、各クラスターノードに高可用性パッケージおよびエージェントをインストールし、フェンシングを設定し、ネットワークリソースエージェントをインストールする手順が含まれます。
前提条件
- Red Hat Enterprise Linux 8 Server: rhel-8-server-rpms/8Server/x86_64
Red Hat Enterprise Linux 8 Server (High Availability): rhel-8-server-ha-rpms/8Server/x86_64
- アクティブな GCP プロジェクトに属し、プロジェクトでリソースを作成するのに十分なパーミッションを持っている必要があります。
- プロジェクトには、個別ユーザーではなく、仮想マシンインスタンスに属する サービスアカウント が必要です。別のサービスアカウントを作成する代わりに、デフォルトのサービスアカウントを使用する方法は、Using the Compute Engine Default Service Account を参照してください。
またはプロジェクト管理者がカスタムサービスアカウントを作成する場合、サービスアカウントは以下のロールに設定する必要があります。
- クラウドトレースエージェント
- コンピュート管理者
- コンピュートネットワーク管理者
- クラウドデータベースユーザー
- ロギング管理者
- 監視エディター
- 監視メトリックライター
- サービスアカウント管理者
- ストレージ管理者
4.1. パブリッククラウドプラットフォームで高可用性クラスターを使用する利点
高可用性 (HA) クラスターは、特定のワークロードを実行するためにリンクされた一連のコンピューター (ノード と呼ばれます) です。HA クラスターの目的は、ハードウェアまたはソフトウェア障害が発生した場合に備えて、冗長性を提供することです。HA クラスター内のノードに障害が発生しても、Pacemaker クラスターリソースマネージャーがワークロードを他のノードに分散するため、クラスター上で実行されているサービスに顕著なダウンタイムが発生することはありません。
HA クラスターはパブリッククラウドプラットフォームで実行することもできます。この場合、クラウド内の仮想マシン (VM) インスタンスを個々のクラスターノードとして使用します。パブリッククラウドプラットフォームで HA クラスターを使用すると、次の利点があります。
- 可用性の向上: VM に障害が発生した場合、ワークロードがすぐに他のノードに再分散されるため、実行中のサービスが中断されません。
- スケーラビリティー: 需要が高いときに追加のノードを起動し、需要が低いときにノードを停止することができます。
- 費用対効果: 従量課金制の料金設定では、実行中のノードに対して料金を支払うだけで済みます。
- 管理の簡素化: 一部のパブリッククラウドプラットフォームでは、HA クラスターの設定を容易にする管理インターフェイスが提供されています。
Red Hat Enterprise Linux (RHEL) システムで HA を有効にするために、Red Hat は High Availability Add-On を提供しています。High Availability Add-On は、RHEL システム上で HA クラスターを作成するために必要なすべてのコンポーネントを提供します。コンポーネントには、高可用性サービス管理ツールとクラスター管理ツールが含まれます。
4.2. 必要なシステムパッケージ
RHEL の基本イメージを作成して設定するには、ホストシステムに次のパッケージがインストールされている必要があります。
表4.1 システムパッケージ
パッケージ | リポジトリー | 説明 |
---|---|---|
libvirt | rhel-8-for-x86_64-appstream-rpms | プラットフォーム仮想化を管理するためのオープンソース API、デーモン、および管理ツール |
virt-install | rhel-8-for-x86_64-appstream-rpms | 仮想マシンを構築するためのコマンドラインユーティリティー |
libguestfs | rhel-8-for-x86_64-appstream-rpms | 仮想マシンファイルシステムにアクセスして変更するためのライブラリー |
libguestfs-tools | rhel-8-for-x86_64-appstream-rpms |
仮想マシン用のシステム管理ツール ( |
4.3. GCP での Red Hat Enterprise Linux イメージオプション
以下の表には、Google Cloud Platform 上での RHEL 8 用イメージの選択肢およびイメージオプションの相違点を示しています。
表4.2 イメージオプション
イメージオプション | サブスクリプション | サンプルシナリオ | 留意事項 |
---|---|---|---|
Red Hat Gold Image をデプロイする | 既存の Red Hat サブスクリプションを使用する | Google Cloud Platform で Red Hat Gold Image を選択します。Gold イメージの詳細、および Google Cloud Platform で Gold Image にアクセスする方法は、Red Hat Cloud Access Reference Guide を参照してください。 | その他のすべてのインスタンスコストを Google 社に支払うことになりますが、サブスクリプション自体には Red Hat 製品コストが含まれます。Red Hat は、カスタム RHEL イメージのサポートを直接提供します。 |
GCP に移動するカスタムイメージをデプロイする | 既存の Red Hat サブスクリプションを使用する | カスタムイメージをアップロードし、サブスクリプションを割り当てます。 | その他のすべてのインスタンスコストを支払うことになりますが、サブスクリプション自体には Red Hat 製品コストが含まれます。Red Hat は、カスタム RHEL イメージのサポートを直接提供します。 |
RHEL を含む既存の GCP イメージをデプロイする | GCP イメージには、Red Hat 製品が含まれる | GCP Compute Engine でインスタンスを起動する時に RHEL イメージを選択するか、Google Cloud Platform Marketplace からイメージを選択します。 | 従量課金モデルでは、GCP に 1 時間ごとに支払います。このようなイメージはオンデマンドイメージと呼ばれています。GCP は、サポート契約に基づいてオンデマンドイメージのサポートを提供します。 |
Red Hat Image Builder を使用して、GCP 用のカスタムイメージを作成できます。詳細は RHEL システムイメージのカスタマイズ を参照してください。
オンデマンドインスタンスをカスタム RHEL インスタンスに変換することはできません。オンデマンドイメージからカスタム RHEL bring-your-own-subscription (BYOS) イメージに変更するには、次の手順を実行します。
- 新しいカスタム RHEL インスタンスを作成し、オンデマンドインスタンスからデータを移行します。
- データを移行した後に、オンデマンドのインスタンスをキャンセルして二重請求を回避します。
4.4. Google Cloud SDK のインストール
Google Cloud SDK をインストールするには、以下の手順を行います。
手順
- GCP の説明に従って、Google Cloud SDK アーカイブをダウンロードし、抽出します。詳細は、GCP ドキュメント Quickstart for Linux を参照してください。
Google Cloud SDK の初期化と同じ手順に従います。
注記Google Cloud SDK を初期化すると、
gcloud
CLI コマンドを使用してタスクを実行でき、プロジェクトとインスタンスに関する情報を取得できます。たとえば、gcloud compute project-info describe --project <project-name>
コマンドを使用してプロジェクト情報を表示できます。
4.5. GCP イメージバケットの作成
以下のドキュメントには、デフォルトの場所に 複数のリージョン のバケットを作成する最小要件が記載されています。
前提条件
- GCP ストレージユーティリティー (gsutil)
手順
Google Cloud Platform にログインしていない場合は、次のコマンドを実行してログインします。
# gcloud auth login
ストレージバケットを作成します。
$ gsutil mb gs://BucketName
以下に例を示します。
$ gsutil mb gs://rhel-ha-bucket
関連情報
4.6. カスタムの仮想プライベートクラウドネットワークおよびサブネットの作成
カスタム仮想プライベートクラウド (VPC) ネットワークおよびサブネットを作成するには、以下の手順を行います。
手順
- GCP コンソールを起動します。
- 左側のナビゲーションペインで Networking の下にある VPC ネットワーク を選択します。
- VPC ネットワークの作成 をクリックします。
- VPC ネットワークの名前を入力します。
- 新規サブネット で、クラスターを作成するリージョンに カスタムサブネット を作成します。
- 作成 をクリックします。
4.7. ベース GCP イメージの準備およびインポート
以下の手順で、GCP 用の Red Hat Enterprise Linux 8 イメージを準備します。
手順
ファイルを変換します。GCP にアップロードしたイメージは
raw
形式であり、disk.raw
という名前である必要があります。$ qemu-img convert -f qcow2 ImageName.qcow2 -O raw disk.raw
raw
ファイルを圧縮します。GCP にアップロードしたイメージを圧縮する必要があります。$ tar -Sczf ImageName.tar.gz disk.raw
圧縮されたイメージを先に作成したバケットにインポートします。
$ gsutil cp ImageName.tar.gz gs://BucketName
4.8. ベース GCP インスタンスの作成および設定
GCP の操作およびセキュリティー要件に準拠する GCP インスタンスを作成して設定するには、以下の手順を実施します。
手順
バケット内の圧縮ファイルからイメージを作成します。
$ gcloud compute images create BaseImageName --source-uri gs://BucketName/BaseImageName.tar.gz
以下に例を示します。
[admin@localhost ~] $ gcloud compute images create rhel-76-server --source-uri gs://user-rhelha/rhel-server-76.tar.gz Created [https://www.googleapis.com/compute/v1/projects/MyProject/global/images/rhel-server-76]. NAME PROJECT FAMILY DEPRECATED STATUS rhel-76-server rhel-ha-testing-on-gcp READY
イメージからテンプレートインスタンスを作成します。ベース RHEL インスタンスに必要な最小サイズは n1-standard-2 です。追加の設定オプションは、gcloud compute instances create を参照してください。
$ gcloud compute instances create BaseInstanceName --can-ip-forward --machine-type n1-standard-2 --image BaseImageName --service-account ServiceAccountEmail
以下に例を示します。
[admin@localhost ~] $ gcloud compute instances create rhel-76-server-base-instance --can-ip-forward --machine-type n1-standard-2 --image rhel-76-server --service-account account@project-name-on-gcp.iam.gserviceaccount.com Created [https://www.googleapis.com/compute/v1/projects/rhel-ha-testing-on-gcp/zones/us-east1-b/instances/rhel-76-server-base-instance]. NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS rhel-76-server-base-instance us-east1-bn1-standard-2 10.10.10.3 192.227.54.211 RUNNING
SSH 端末セッションでインスタンスに接続します。
$ ssh root@PublicIPaddress
RHEL ソフトウェアを更新します。
- Red Hat Subscription Manager (RHSM) に登録します。
-
サブスクリプションプール ID を有効にします (または
--auto-attach
コマンドを使用します)。 すべてのリポジトリーを無効にします。
# subscription-manager repos --disable=*
以下のリポジトリーを有効にします。
# subscription-manager repos --enable=rhel-8-server-rpms
yum update
コマンドを実行します。# yum update -y
実行中のインスタンスに GCP Linux ゲスト環境をインストールします (インプレースインストール)。
手順は、Install the guest environment in-place を参照してください。
- CentOS/RHEL オプションを選択します。
- コマンドスクリプトをコピーして、コマンドプロンプトに貼り付けて、スクリプトを即座に実行します。
インスタンスに以下の設定変更を行います。これらの変更は、カスタムイメージの GCP の推奨事項に基づいています。詳細は、gcloudcompute images list を参照してください。
-
/etc/chrony.conf
ファイルを編集し、すべての NTP サーバーを削除します。 以下の NTP サーバーを追加します。
metadata.google.internal iburst Google NTP server
永続的なネットワークデバイスルールを削除します。
# rm -f /etc/udev/rules.d/70-persistent-net.rules # rm -f /etc/udev/rules.d/75-persistent-net-generator.rules
ネットワークサービスが自動的に開始するように設定します。
# chkconfig network on
sshd service
が自動的に起動するように設定します。# systemctl enable sshd # systemctl is-enabled sshd
タイムゾーンを UTC に設定します。
# ln -sf /usr/share/zoneinfo/UTC /etc/localtime
(必要に応じて)
/etc/ssh/ssh_config
ファイルを編集し、以下の行をファイルの最後に追加します。アクティブではない期間が長くなった場合も、SSH セッションをアクティブな状態に保ちます。# Server times out connections after several minutes of inactivity. # Keep alive ssh connections by sending a packet every 7 minutes. ServerAliveInterval 420
/etc/ssh/sshd_config
ファイルを編集し、必要に応じて以下の変更を加えます。ClientAliveInterval 420 設定は任意です。これにより、アクティブではない期間が長くなった場合にも SSH セッションをアクティブな状態に保ちます。PermitRootLogin no PasswordAuthentication no AllowTcpForwarding yes X11Forwarding no PermitTunnel no # Compute times out connections after 10 minutes of inactivity. # Keep ssh connections alive by sending a packet every 7 minutes. ClientAliveInterval 420
-
パスワードアクセスを無効にします。
ssh_pwauth from 1 to 0. ssh_pwauth: 0
重要以前は、SSH セッションアクセスを許可するパスワードアクセスを有効にして、インスタンスを設定していました。パスワードアクセスを無効にする必要があります。すべての SSH セッションアクセスはパスワードなしにする必要があります。
サブスクリプションマネージャーからインスタンスの登録を解除します。
# subscription-manager unregister
シェルの履歴を消去します。次の手順でインスタンスを実行した状態にします。
# export HISTSIZE=0
4.9. スナップショットイメージの作成
インスタンスの設定を保存し、スナップショットを作成するには、以下の手順を行います。
手順
実行中のインスタンスで、データをディスクに同期します。
# sync
ホストシステムで、スナップショットを作成します。
$ gcloud compute disks snapshot InstanceName --snapshot-names SnapshotName
ホストシステムで、スナップショットから設定済みのイメージを作成します。
$ gcloud compute images create ConfiguredImageFromSnapshot --source-snapshot SnapshotName
4.10. HA ノードテンプレートインスタンスおよび HA ノードの作成
スナップショットからイメージを設定したら、ノードテンプレートを作成できます。このテンプレートを使用してすべての HA ノードを作成します。テンプレートおよび HA ノードを作成するには、以下の手順を行います。
手順
インスタンステンプレートを作成します。
$ gcloud compute instance-templates create InstanceTemplateName --can-ip-forward --machine-type n1-standard-2 --image ConfiguredImageFromSnapshot --service-account ServiceAccountEmailAddress
以下に例を示します。
[admin@localhost ~] $ gcloud compute instance-templates create rhel-81-instance-template --can-ip-forward --machine-type n1-standard-2 --image rhel-81-gcp-image --service-account account@project-name-on-gcp.iam.gserviceaccount.com Created [https://www.googleapis.com/compute/v1/projects/project-name-on-gcp/global/instanceTemplates/rhel-81-instance-template]. NAME MACHINE_TYPE PREEMPTIBLE CREATION_TIMESTAMP rhel-81-instance-template n1-standard-2 2018-07-25T11:09:30.506-07:00
1 つのゾーンに複数のノードを作成します。
# gcloud compute instances create NodeName01 NodeName02 --source-instance-template InstanceTemplateName --zone RegionZone --network=NetworkName --subnet=SubnetName
以下に例を示します。
[admin@localhost ~] $ gcloud compute instances create rhel81-node-01 rhel81-node-02 rhel81-node-03 --source-instance-template rhel-81-instance-template --zone us-west1-b --network=projectVPC --subnet=range0 Created [https://www.googleapis.com/compute/v1/projects/project-name-on-gcp/zones/us-west1-b/instances/rhel81-node-01]. Created [https://www.googleapis.com/compute/v1/projects/project-name-on-gcp/zones/us-west1-b/instances/rhel81-node-02]. Created [https://www.googleapis.com/compute/v1/projects/project-name-on-gcp/zones/us-west1-b/instances/rhel81-node-03]. NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS rhel81-node-01 us-west1-b n1-standard-2 10.10.10.4 192.230.25.81 RUNNING rhel81-node-02 us-west1-b n1-standard-2 10.10.10.5 192.230.81.253 RUNNING rhel81-node-03 us-east1-b n1-standard-2 10.10.10.6 192.230.102.15 RUNNING
4.11. HA パッケージおよびエージェントのインストール
すべてのノードで以下の手順を実行します。
手順
- Google Cloud コンソールで Compute Engine を選択し、VM instance を選択します。
- インスタンスを選択し、SSH の横にある矢印をクリックして、gcloud コマンドオプションの 表示 を選択します。
- インスタンスへのパスワードなしアクセスのために、コマンドプロンプトでこのコマンドを貼り付けます。
- sudo アカウントアクセスを有効にし、Red Hat Subscription Manager に登録します。
-
サブスクリプションプール ID を有効にします (または
--auto-attach
コマンドを使用します)。 すべてのリポジトリーを無効にします。
# subscription-manager repos --disable=*
以下のリポジトリーを有効にします。
# subscription-manager repos --enable=rhel-8-server-rpms # subscription-manager repos --enable=rhel-8-for-x86_64-highavailability-rpms
pcs pacemaker
、フェンスエージェント、およびリソースエージェントをインストールします。# yum install -y pcs pacemaker fence-agents-gce resource-agents-gcp
すべてのパッケージを更新します。
# yum update -y
4.12. HA サービスの設定
全ノードで以下の手順を実行し、HA サービスを設定します。
手順
hacluster
ユーザーは、前の手順でpcs
およびpacemaker
のインストール時に作成されました。すべてのクラスターノードにhacluster
ユーザーのパスワードを作成します。すべてのノードに同じパスワードを使用します。# passwd hacluster
firewalld
サービスがインストールされている場合は、HA サービスを追加します。# firewall-cmd --permanent --add-service=high-availability # firewall-cmd --reload
pcs
サービスを起動し、システムの起動時に開始できるようにします。# systemctl start pcsd.service # systemctl enable pcsd.service Created symlink from /etc/systemd/system/multi-user.target.wants/pcsd.service to /usr/lib/systemd/system/pcsd.service.
検証
pcsd
サービスが実行していることを確認します。# systemctl status pcsd.service pcsd.service - PCS GUI and remote configuration interface Loaded: loaded (/usr/lib/systemd/system/pcsd.service; enabled; vendor preset: disabled) Active: active (running) since Mon 2018-06-25 19:21:42 UTC; 15s ago Docs: man:pcsd(8) man:pcs(8) Main PID: 5901 (pcsd) CGroup: /system.slice/pcsd.service └─5901 /usr/bin/ruby /usr/lib/pcsd/pcsd > /dev/null &
-
/etc/hosts
ファイルを編集します。すべてのノードに RHEL ホスト名と内部 IP アドレスを追加します。
4.13. クラスターの作成
ノードのクラスターを作成するには、以下の手順を実施します。
手順
ノードの 1 つで、
pcs
ユーザーを認証します。コマンドのクラスター内の各ノードの名前を指定します。# pcs host auth hostname1 hostname2 hostname3 Username: hacluster Password: hostname1: Authorized hostname2: Authorized hostname3: Authorized
クラスターを作成します。
# pcs cluster setup cluster-name hostname1 hostname2 hostname3
検証
以下のコマンドを実行して、起動時にノードが自動的にクラスターに参加できるようにします。
# pcs cluster enable --all
クラスターを起動します。
# pcs cluster start --all
4.14. フェンスデバイスの作成
フェンスデバイスを作成するには、以下の手順を実施します。
ほとんどのデフォルト設定では、GCP インスタンス名と RHEL ホスト名が同じである点に注意してください。
手順
GCP インスタンス名を取得します。次のコマンドの出力には、インスタンスの内部 ID も表示されることに注意してください。
# fence_gce --zone us-west1-b --project=rhel-ha-on-gcp -o list
以下に例を示します。
[root@rhel81-node-01 ~]# fence_gce --zone us-west1-b --project=rhel-ha-testing-on-gcp -o list 4435801234567893181,InstanceName-3 4081901234567896811,InstanceName-1 7173601234567893341,InstanceName-2
フェンスデバイスを作成します。
# pcs stonith create FenceDeviceName fence_gce zone=Region-Zone project=MyProject
検証
フェンスデバイスが起動していることを確認します。
# pcs status
以下に例を示します。
[root@rhel81-node-01 ~]# pcs status Cluster name: gcp-cluster Stack: corosync Current DC: rhel81-node-02 (version 1.1.18-11.el7_5.3-2b07d5c5a9) - partition with quorum Last updated: Fri Jul 27 12:53:25 2018 Last change: Fri Jul 27 12:51:43 2018 by root via cibadmin on rhel81-node-01 3 nodes configured 3 resources configured Online: [ rhel81-node-01 rhel81-node-02 rhel81-node-03 ] Full list of resources: us-west1-b-fence (stonith:fence_gce): Started rhel81-node-01 Daemon Status: corosync: active/enabled pacemaker: active/enabled pcsd: active/enabled
4.15. GCP ノードの承認の設定
アカウント認証情報を使用して GCP にアクセスするようにクラウドの SDK ツールを設定します。
手順
各ノードで次のコマンドを実行し、プロジェクト ID およびアカウントの認証情報で各ノードを初期化します。
# gcloud-ra init
4.16. gcp-vcp-move-vip リソースエージェントの設定
gcp-vpc-move-vip
リソースエージェントは、セカンダリー IP アドレス (エイリアス IP) を実行中のインスタンスに割り当てます。これは、クラスター内の異なるノード間で渡すことのできるフローティング IP アドレスです。
このリソースに関する詳細情報を表示します。
# pcs resource describe gcp-vpc-move-vip
プライマリーサブネットアドレス範囲またはセカンダリーサブネットアドレス範囲を使用するようにリソースエージェントを設定できます。
プライマリーサブネットアドレス範囲
プライマリー VPC サブネットのリソースを設定するには、以下の手順を実行します。
手順
aliasip
リソースを作成します。未使用の内部 IP アドレスを含めます。コマンドに CIDR ブロックを含めます。# pcs resource create aliasip gcp-vpc-move-vip alias_ip=UnusedIPaddress/CIDRblock
以下に例を示します。
[root@rhel81-node-01 ~]# pcs resource create aliasip gcp-vpc-move-vip alias_ip=10.10.10.200/32
ノード上の IP を管理する
IPaddr2
リソースを作成します。# pcs resource create vip IPaddr2 nic=interface ip=AliasIPaddress cidr_netmask=32
以下に例を示します。
[root@rhel81-node-01 ~]# pcs resource create vip IPaddr2 nic=eth0 ip=10.10.10.200 cidr_netmask=32
vipgrp
でネットワークリソースをグループ化します。# pcs resource group add vipgrp aliasip vip
検証
リソースが起動し、
vipgrp
でグループ化されていることを確認します。# pcs status
リソースが別のノードに移動できることを確認します。
# pcs resource move vip Node
以下に例を示します。
[root@rhel81-node-01 ~]# pcs resource move vip rhel81-node-03
別のノードで
vip
が正常に起動することを確認します。# pcs status
セカンダリーサブネットアドレス範囲
セカンダリーサブネットアドレス範囲のリソースを設定するには、以下の手順を実施します。
手順
セカンダリーサブネットアドレス範囲を作成します。
# gcloud-ra compute networks subnets update SubnetName --region RegionName --add-secondary-ranges SecondarySubnetName=SecondarySubnetRange
以下に例を示します。
# gcloud-ra compute networks subnets update range0 --region us-west1 --add-secondary-ranges range1=10.10.20.0/24
aliasip
リソースを作成します。セカンダリーサブネットアドレス範囲に未使用の内部 IP アドレスを作成します。コマンドに CIDR ブロックを含めます。# pcs resource create aliasip gcp-vpc-move-vip alias_ip=UnusedIPaddress/CIDRblock
以下に例を示します。
[root@rhel81-node-01 ~]# pcs resource create aliasip gcp-vpc-move-vip alias_ip=10.10.20.200/32
ノード上の IP を管理する
IPaddr2
リソースを作成します。# pcs resource create vip IPaddr2 nic=interface ip=AliasIPaddress cidr_netmask=32
以下に例を示します。
[root@rhel81-node-01 ~]# pcs resource create vip IPaddr2 nic=eth0 ip=10.10.20.200 cidr_netmask=32
vipgrp
でネットワークリソースをグループ化します。# pcs resource group add vipgrp aliasip vip
検証
リソースが起動し、
vipgrp
でグループ化されていることを確認します。# pcs status
リソースが別のノードに移動できることを確認します。
# pcs resource move vip Node
以下に例を示します。
[root@rhel81-node-01 ~]# pcs resource move vip rhel81-node-03
別のノードで
vip
が正常に起動することを確認します。# pcs status