This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.第19章 GCE の設定
19.1. 概要 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform は、Google Compute Engine (GCE) ボリュームをアプリケーションデータの永続ストレージとして使用するなど、GCE インフラストラクチャーにアクセスするように設定することが可能です。これを実行するには、GCE を適切に設定した後に OpenShift Container Platform ホストで追加の設定を行う必要があります。
19.2. パーミッション リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform に GCE を設定するには、以下のロールが必要です。
roles/owner |
サービスアカウント、クラウドストレージ、インスタンス、イメージ、テンプレート、Cloud DNS エントリーを作成し、ロードバランサーとヘルスチェックをデプロイします。さらに |
19.3. マスターの設定 リンクのコピーリンクがクリップボードにコピーされました!
GCE は、OpenShift Container Platform のマスターホストに 2 通りの方法で設定できます。
19.3.1. Ansible を使用した GCE についての OpenShift Container Platform マスターの設定 リンクのコピーリンクがクリップボードにコピーされました!
GCE は、通常インストール (Advanced installation) の実行中に openshift_cloudprovider_kind
パラメーターを使って設定することができます。このパラメーターはインベントリーファイルで設定できます。
-
GCE を使用する際は、
openshift_gcp_project
とopenshift_gcp_prefix
の各パラメーターを定義する必要があります。 -
Google Compute Platform を使用してロードバランサーサービスを実行する場合は、ノード (Compute Engine VM インスタンス) に
<openshift_gcp_prefix>ocp
タグを付ける必要があります (ocp
サフィックスを追加する)。たとえば、openshift_gcp_prefix
パラメーターの値がmycluster
に設定される場合、ノードにはmyclusterocp
のタグが付けられる必要があります。ネットワークタグを Compute Engine VM インスタンスに追加する方法についての詳細は、「Adding and Removing Network Tags」を参照してください。
Ansible を使用した GCE の設定例
Cloud Provider Configuration openshift_cloudprovider_kind=gce openshift_gcp_project=<projectid> openshift_gcp_prefix=<uid> openshift_gcp_multizone=False
# Cloud Provider Configuration
# openshift_cloudprovider_kind=gce
# openshift_gcp_project=<projectid>
# openshift_gcp_prefix=<uid>
# openshift_gcp_multizone=False
Ansible が GCE を設定する際に、以下のファイルがユーザー用に作成されます。
- /etc/origin/cloudprovider/gce.conf
- /etc/origin/master/master-config.yaml
- /etc/origin/node/node-config.yaml
通常インストール (Advanced installation) は、デフォルトでシングルゾーンのサポートを設定します。マルチゾーンのサポートが必要な場合は、「GCE デプロイメントにおけるマルチゾーンサポートの設定」で説明されているように /etc/origin/cloudprovider/gce.conf を編集します。
19.3.2. 手動による GCE についての OpenShift Container Platform マスターの設定 リンクのコピーリンクがクリップボードにコピーされました!
GCE について OpenShift Container Platform マスターを設定するには、以下を実行します。
すべてのマスターでマスター設定ファイル (デフォルトは /etc/origin/master/master-config.yaml) を編集するか、または作成し、
apiServerArguments
とcontrollerArguments
の各セクションの内容を更新します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要コンテナー化インストールをトリガーすると、/etc/origin と /var/lib/origin のディレクトリーのみがマスターとノードのコンテナーにマウントされます。したがって、master-config.yaml は/etc/ ではなく /etc/origin/master になければなりません。
OpenShift Container Platform サービスを起動または再起動します。
systemctl restart atomic-openshift-master-api atomic-openshift-master-controllers
# systemctl restart atomic-openshift-master-api atomic-openshift-master-controllers
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
19.4. ノードの設定 リンクのコピーリンクがクリップボードにコピーされました!
GCE について OpenShift Container Platform ノードを設定するには、以下を実行します。
すべてのノードでノード設定ファイル (デフォルトは /etc/origin/node/node-config.yaml) を編集するか、または作成し、
kubeletArguments
セクションの内容を更新します。kubeletArguments: cloud-provider: - "gce" cloud-config: - "/etc/origin/cloudprovider/gce.conf"
kubeletArguments: cloud-provider: - "gce" cloud-config: - "/etc/origin/cloudprovider/gce.conf"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
現時点では、クラウドプロバイダーの統合を正常に機能させるため、nodeName
は GCE のインスタンス名と一致している必要があります。また、この名前は RFC1123 に準拠している必要もあります。
コンテナー化インストールをトリガーすると、/etc/origin と /var/lib/origin のディレクトリーのみがマスターとノードのコンテナーにマウントされます。したがって、node-config.yaml は/etc/ ではなく /etc/origin/node になければなりません。
すべてのノードで OpenShift Container Platform サービスを起動または再起動します。
systemctl restart atomic-openshift-node
# systemctl restart atomic-openshift-node
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
19.5. GCE デプロイメントにおけるマルチゾーンサポートの設定 リンクのコピーリンクがクリップボードにコピーされました!
GCE を手動で設定した場合、マルチゾーンのサポートはデフォルトでは設定されません。
通常インストール (Advanced installation) ではシングルゾーンのサポートがデフォルトで設定されます。
マルチゾーンのサポートを使用するには、以下を実行します。
- OpenShift Container Platform のマスターとノード両方のすべてのホストで、/etc/origin/cloudprovider/gce.confファイルを編集するか、または作成します。
以下の内容を追加します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
シングルゾーンのサポートに戻すには、multizone
値を false
に設定します。
19.6. 設定変更の適用 リンクのコピーリンクがクリップボードにコピーされました!
マスターおよびノードのすべてのホストで OpenShift Container Platform サービスを起動または再起動し、設定の変更を適用します。「OpenShift Container Platform サービスの再起動」を参照してください。
systemctl restart atomic-openshift-master-api atomic-openshift-master-controllers systemctl restart atomic-openshift-node
# systemctl restart atomic-openshift-master-api atomic-openshift-master-controllers
# systemctl restart atomic-openshift-node
クラウドプロバイダーを不使用から使用に切り替えるとエラーメッセージが表示されます。クラウドプロバイダーを追加すると、ノードが hostname を externalID
として使用する (クラウドプロバイダーが使用されていなかった場合のケース) 代わりに、クラウドプロバイダーの instance-id
(クラウドプロバイダーによって指定される) の使用に切り替えるため、ノードの削除が試みられます。この問題を解決するには、以下を実行します。
- CLI にクラスター管理者としてログインします。
既存のノードラベルをチェックし、これらをバックアップします。
oc describe node <node_name> | grep -Poz '(?s)Labels.*\n.*(?=Taints)'
$ oc describe node <node_name> | grep -Poz '(?s)Labels.*\n.*(?=Taints)'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ノードを削除します。
oc delete node <node_name>
$ oc delete node <node_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 各ノードホストで OpenShift Container Platform サービスを再起動します。
systemctl restart atomic-openshift-node
# systemctl restart atomic-openshift-node
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 以前に使用していた各ノードのラベルを再度追加します。