22.3. OpenShift Ansible Playbook を使用した OpenShift Container Platform インスタンスのプロビジョニング
デプロイメントホストの作成および設定が完了したら、Ansible を使用して OpenShift Container Platform のデプロイメント用に環境を準備します。以下のサブセクションでは、OpenShift Container Platform を OpenStack に適切にデプロイできるように Ansible が設定され、特定の YAML ファイルが変更されます。
22.3.1. プロビジョニング用のインベントリーの準備 リンクのコピーリンクがクリップボードにコピーされました!
これまでの手順で openshift-ansible
パッケージのインストールを完了したら、sample-inventory
ディレクトリーが用意されます。 これをデプロイメントホストの cloud-user
ホームディレクトリーにコピーします。
デプロイメントホストで、以下を実行します。
cp -r /usr/share/ansible/openshift-ansible/playbooks/openstack/sample-inventory/ ~/inventory
$ cp -r /usr/share/ansible/openshift-ansible/playbooks/openstack/sample-inventory/ ~/inventory
インベントリーディレクトリー内の all.yml ファイルには、RHOCP インスタンスを正常にプロビジョニングするために設定する必要のある複数の異なるパラメーターすべてが含まれます。OSEv3.yml ファイルには、all.yml ファイルで必要な一部の参照と、カスタマイズできる利用可能なすべての OpenShift Container Platform クラスターパラメーターが含まれます。
22.3.1.1. OpenShiftSDN の All YAML ファイル リンクのコピーリンクがクリップボードにコピーされました!
all.yml ファイルには、特定のニーズに合わせて変更できるオプションが多数あります。このファイルに収集される情報は、OpenShift Container Platform の正常なデプロイメントに必要なインスタンスのプロビジョニングの部分に対応します。これらを注意深く確認するようにしてください。本書では All YAML ファイルの縮小バージョンを扱っており、適切なデプロイメントを実行するために設定する必要のある最重要のパラメーターに重点を置いています。
外部 DNS サーバーを使用することにより、プライベートおよびパブリックのセクションは DNS サーバーのパブリック IP アドレスを使用します。 DNS サーバーが OpenStack 環境内に置かれていないためです。
上記のアスタリスク (*) で囲まれる値は、OpenStack 環境および DNS サーバーに基づいて変更する必要があります。
All YAML ファイルの DNS の部分を適切に変更するには、DNS サーバーにログインし、以下のコマンドを実行してキー名、キーアルゴリズムおよびキーシークレットを取得します。
キー名は変わる可能性があり、上記はサンプルであることに注意してください。
22.3.1.2. KuryrSDN All YAML ファイル リンクのコピーリンクがクリップボードにコピーされました!
以下の all.yml ファイルは、デフォルトの OpenShiftSDN ではなく Kuryr SDN を有効にします。以下の例は凝縮されたバージョンであり、デフォルトテンプレートを注意して確認する必要があることに注意してください。
namespace の分離を使用している場合に、Kuryr-controller は各 namespace 用に新規の Neutron ネットワークおよびサブネットを作成します。
Kuryr SDN が有効にされている場合に、ネットワークポリシーおよびノードポートサービスはサポートされません。
Kuryr が有効にされている場合、OpenShift Container Platform サービスは OpenStack Octavia Amphora 仮想マシンで実装されます。
Octavia は UDP 負荷分散をサポートしません。UDP ポートを公開するサービスはサポートされません。
22.3.1.2.1. グローバル namespace アクセスの設定 リンクのコピーリンクがクリップボードにコピーされました!
kuryr_openstack_global_namespace
パラメーターには、グローバル namespace を定義する一覧が含まれます。デフォルトで、default
および openshift-monitoring
namespace のみがこの一覧に含まれます。
OpenShift Container Platform 3.11 以前の z-release からアップグレードする場合は、グローバル namespace から他の namespace へのアクセスは、セキュリティーグループ *-allow_from_default
で制御されることに注意してください。
remote_group_id ルール
は、グローバル namespace から他の namespace へのアクセスを制御できますが、これを使用すると、スケーリングおよび接続の問題が生じる可能性があります。これらの問題を回避するには、*_allow_from_default
で remote_group_id
を使用して remote_ip_prefix
に切り替えます。
コマンドラインから、ネットワークの
subnetCIDR
値を取得します。oc get kuryrnets ns-default -o yaml | grep subnetCIDR
$ oc get kuryrnets ns-default -o yaml | grep subnetCIDR subnetCIDR: 10.11.13.0/24
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この範囲の TCP および UDP ルールを作成します。
openstack security group rule create --remote-ip 10.11.13.0/24 --protocol tcp openshift-ansible-openshift.example.com-allow_from_default openstack security group rule create --remote-ip 10.11.13.0/24 --protocol udp openshift-ansible-openshift.example.com-allow_from_default
$ openstack security group rule create --remote-ip 10.11.13.0/24 --protocol tcp openshift-ansible-openshift.example.com-allow_from_default $ openstack security group rule create --remote-ip 10.11.13.0/24 --protocol udp openshift-ansible-openshift.example.com-allow_from_default
Copy to Clipboard Copied! Toggle word wrap Toggle overflow remote_group_id
を使用するセキュリティーグループルールを削除します。openstack security group show *-allow_from_default | grep remote_group_id openstack security group rule delete REMOTE_GROUP_ID
$ openstack security group show *-allow_from_default | grep remote_group_id $ openstack security group rule delete REMOTE_GROUP_ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
変数 | 説明 |
---|---|
openshift_openstack_clusterid | クラスターの固有名 |
openshift_openstack_public_dns_domain | パブリック DNS ドメイン名 |
openshift_openstack_dns_nameservers | DNS ネームサーバーの IP |
openshift_openstack_public_hostname_suffix | パブリックおよびプライベートの両方について DNS レコードのノードホスト名に接尾辞を追加します。 |
openshift_openstack_nsupdate_zone | OCP インスタンス IP で更新されるゾーン |
openshift_openstack_keypair_name | OCP インスタンスにログインするために使用されるキーペア名 |
openshift_openstack_external_network_name | OpenStack パブリックネットワーク名 |
openshift_openstack_default_image_name | OCP インスタンスに使用される OpenStack イメージ |
openshift_openstack_num_masters | デプロイするマスターノードの数 |
openshift_openstack_num_infra | デプロイするインフラストラクチャーノードの数 |
openshift_openstack_num_cns | デプロイするコンテナーネイティブストレージノードの数 |
openshift_openstack_num_nodes | デプロイするアプリケーションノードの数 |
openshift_openstack_master_flavor | マスターインスタンスに使用される OpenStack フレーバーの名前 |
openshift_openstack_default_flavor | 特定のフレーバーが指定されていない場合に、すべてのインスタンスに使用される Openstack フレーバーの名前 |
openshift_openstack_use_lbaas_load_balancer | Octavia ロードバランサーを有効にするブール値 (Octavia はインストールされる必要があります) |
openshift_openstack_docker_volume_size | Docker ボリュームの最小サイズ (必要な変数) |
openshift_openstack_external_nsupdate_keys | DNS のインスタンス IP アドレスでの更新 |
ansible_user | OpenShift Container Platform をデプロイするために使用される Ansible ユーザー。"openshift" は必須の名前であり、変更することはできません。 |
openshift_openstack_disable_root | ルートアクセスを無効にするブール値 |
openshift_openstack_user | このユーザーで使用される OCP インスタンス |
openshift_openstack_node_subnet_name | デプロイメントに使用する既存 OpenShift サブネットの名前。これはデプロイメントホストに使用されるものと同じサブネット名である必要があります。 |
openshift_openstack_router_name | デプロイメントに使用する既存 OpenShift ルーターの名前。これはデプロイメントホストに使用されるものと同じルーター名である必要があります。 |
openshift_openstack_master_floating_ip |
デフォルトは |
openshift_openstack_infra_floating_ip |
デフォルトは |
openshift_openstack_compute_floating_ip |
デフォルトは |
openshift_use_openshift_sdn |
openshift-sdn を無効にする必要がある場合には、 |
openshift_use_kuryr |
kuryr sdn を有効にする必要がある場合には、 |
use_trunk_ports |
(kuryr で必要な) トランクポートで OpenStack 仮想マシンを作成するには、 |
os_sdn_network_plugin_name |
SDN 動作の選択。kuryr について |
openshift_node_proxy_mode |
kuryr について |
openshift_master_open_ports | kuryr を使用する場合に仮想マシンで開かれるポート |
kuryr_openstack_public_net_id | kuryr で必要です。FIP が取得されるパブリック OpenStack ネットワークの ID です。 |
openshift_kuryr_subnet_driver |
kuryr サブネットドライバー。namespace ごとにサブネットを作成するには |
openshift_kuryr_sg_driver |
kuryr セキュリティーグループドライバー。namespace を分離するには |
kuryr_openstack_global_namespaces |
namespace の分離に使用するグローバル namespace。デフォルト値は |
kuryr_openstack_ca | クラウドの CA 証明書へのパスです。OpenStack クラウドエンドポイントが HTTPS 経由でアクセス可能な場合に必須です。 |
22.3.1.3. OSEv3 YAML ファイル リンクのコピーリンクがクリップボードにコピーされました!
OSEv3 YAML ファイルは、OpenShift のインストールに関連するすべての異なるパラメーターおよびカスタマイズを指定します。
以下は、正常なデプロイメントに必要なすべての変数を含むファイルの縮小バージョンです。特定の OpenShift Container Platform デプロイメントに必要なカスタマイズの内容によって、追加の変数が必要になる場合があります。
一覧表示されている変数のいずれかについての詳細は、OpenShift-Ansible ホストインベントリーのサンプル を参照してください。