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.第18章 OpenStack の設定
18.1. 概要 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform は、OpenStack にデプロイする際に、OpenStack Cinder ボリュームをアプリケーションデータの永続ストレージとして使用など、OpenStack インフラストラクチャーにアクセスするように設定できます。
18.2. パーミッション リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform に OpenStack を設定するには、以下のロールが必要です。
| 
							 member  | 
							 アセット (インスタンス、ネットワーキングポート、Floating IP、ボリュームなど) を作成するために、テナント member ロールが必要になります。  | 
18.3. セキュリティーグループの設定 リンクのコピーリンクがクリップボードにコピーされました!
OpenStack に OpenShift Container Platform を インストールする際は、適切なセキュリティーグループがセットアップされていることを確認します。
セキュリティーグループにはいくつかのポートを設定しておく必要があり、それらがないとインストールは失敗します。また、インストールしようとしているクラスターの設定によっては、追加のポートが必要になる場合があります。セキュリティーグループの詳細、およびその適切な調整方法については、「必要なポート」を参照してください。
| 
							 すべての OpenShift Container Platform ホスト  | 
							
  | 
| 
							 etcd セキュリティーグループ  | 
							
  | 
| 
							 マスターのセキュリティーグループ  | 
							
  | 
| 
							 ノードのセキュリティーグループ  | 
							
  | 
| 
							 インフラストラクチャーノード (OpenShift Container Platform ルーターをホストできるノード)  | 
							
  | 
| 
							 CRI-O  | 
							 
								CRI-O を使用している場合は、tcp/10010 を開き、  | 
マスターまたはルートの負荷分散のために外部のロードバランサー (ELB) を設定する場合は、ELB の Ingress および Egress のセキュリティーグループを設定することも必要になります。
18.4. OpenStack 変数の設定 リンクのコピーリンクがクリップボードにコピーされました!
必要な OpenStack 変数を設定するには、OpenShift Container Platform のマスターとノード両方のすべてのホストに、/etc/cloud.conf ファイルを以下の内容で作成します。
				OS_ 変数の値については OpenStack の管理者にお問い合わせください。この値は通常 OpenStack の設定で使用されます。
			
18.5. OpenStack についての OpenShift Container Platform マスターの設定 リンクのコピーリンクがクリップボードにコピーされました!
OpenStack は、OpenShift Container Platform のマスターとノードの各ホストに以下の 2 通りの方法で設定できます。
18.5.1. Ansible を使用した OpenStack についての OpenShift Container Platform の設定 リンクのコピーリンクがクリップボードにコピーされました!
OpenStack は、通常インストール (Advanced installation) の実行中に以下のパラメーターを使って設定することができます。これらはインベントリーファイルで設定できます。
- 
							
openshift_cloudprovider_kind - 
							
openshift_cloudprovider_openstack_auth_url - 
							
openshift_cloudprovider_openstack_username - 
							
openshift_cloudprovider_openstack_password - 
							
openshift_cloudprovider_openstack_domain_id - 
							
openshift_cloudprovider_openstack_domain_name - 
							
openshift_cloudprovider_openstack_tenant_id - 
							
openshift_cloudprovider_openstack_tenant_name - 
							
openshift_cloudprovider_openstack_region - 
							
openshift_cloudprovider_openstack_lb_subnet_id 
						Ansible インベントリーファイルのパラメーター値に、#, { or } などの特殊文字が含まれている場合、値をダブルエスケープ (double-escape) する必要があります (値を単一と二重引用符で囲みます)。たとえば、mypasswordwith###hashsigns を変数 openshift_cloudprovider_openstack_password の値として使用し、これを Ansible ホストインベントリーファイルで openshift_cloudprovider_openstack_password='"mypasswordwith###hashsigns"' として宣言します。
					
例18.1 Ansible を使用した OpenStack の設定例
18.5.2. 手動による OpenStack についての OpenShift Container Platform マスターの設定 リンクのコピーリンクがクリップボードにコピーされました!
					すべてのマスターでマスター設定ファイル (デフォルトは /etc/origin/master/master-config.yaml) を編集するか、または作成し、apiServerArguments と controllerArguments の各セクションの内容を更新します。
				
コンテナー化インストールをトリガーすると、/etc/origin と /var/lib/origin のディレクトリーのみがマスターとノードのコンテナーにマウントされます。したがって、cloud.conf は /etc/ ではなく /etc/origin/ になければなりません。
18.5.3. 手動による OpenStack についての OpenShift Container Platform ノードの設定 リンクのコピーリンクがクリップボードにコピーされました!
					すべてのノードでノード設定ファイル (デフォルトは /etc/origin/node/node-config.yaml) を編集するか、または作成し、kubeletArguments と nodeName の各セクションの内容を更新します。
				
- 1
 - ノードが実行される OpenStack インスタンスの名前 (仮想マシンの名前)。
 
					現時点では、クラウドプロバイダーの統合を正常に機能させるため、nodeName は Openstack のインスタンス名と一致していなければなりません。また、この名前は RFC1123 に準拠している必要もあります。
				
コンテナー化インストールをトリガーすると、/etc/origin と /var/lib/origin のディレクトリーのみがマスターとノードのコンテナーにマウントされます。したがって、cloud.conf は /etc/ ではなく /etc/origin/ になければなりません。
18.5.4. Ansible Playbook を使用した OpenShift Container Platform のインストール リンクのコピーリンクがクリップボードにコピーされました!
OpenStack インストール Playbook は、テクノロジープレビュー機能のみとなっています。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) ではサポートされていません。これらは、機能的に完全でない可能性があり、Red Hat では実稼働環境での使用を推奨しません。テクノロジープレビュー機能は、近々発表予定の製品機能をリリースに先駆けてご提供することにより、お客様に機能性をテストしていただき、開発プロセス中にフィードバックをお寄せいただくことを目的としています。Red Hat テクノロジープレビュー機能のサポート対象範囲に関する詳しい情報は、https://access.redhat.com/support/offerings/techpreview/ を参照してください。
OpenShift Container Platform を既存の OpenStack インストールにインストールするには、OpenStack Playbook を使用します。詳細の前提条件を含む Playbook についての詳細は、OpenStack Provisioning readme ファイルを参照してください。
Playbook を実行するには、以下のコマンドを実行します。
ansible-playbook --user openshift \ -i openshift-ansible/playbooks/openstack/inventory.py \ -i inventory \ openshift-ansible/playbooks/openstack/openshift-cluster/provision_install.yml
$ ansible-playbook --user openshift \
  -i openshift-ansible/playbooks/openstack/inventory.py \
  -i inventory \
  openshift-ansible/playbooks/openstack/openshift-cluster/provision_install.yml
18.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-nodeCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 以前に使用していた各ノードのラベルを再度追加します。