Contrail コマンドをインストールして Contrail クラスターをプロビジョニングする方法
このドキュメントを使用して、Contrail Command(Contrail Networkingのグラフィカルユーザーインターフェイス)をインストールし、サーバーまたはVMをContrailクラスターのノードとしてプロビジョニングします。サーバーまたは VM は、コンピューティング ノード、制御ノード、オーケストレータ ノード、Contrail Insights ノード、Contrail Insights Flows ノード、またはサービス ノードにプロビジョニングされ、この手順を使用して Contrail クラスターが作成されます。
Contrail InsightsとContrail Insights Flowsは、以前はAppformixおよびAppformix Flowsという名前でした。
このドキュメントを使用する場合
Contrail Networkingを設定および保守するための主要なインターフェイスとして、Contrailコマンドを強くお勧めします。
したがって、本書の手順は、Contrail Networking環境での初期設定タスクとして実行してください。
サーバーの要件
Contrail Networking環境には、サーバー機能を提供する物理サーバーまたはVMを含めることができますが、可能な限り拡張性と可用性上の理由から物理サーバーを使用することを強くお勧めします。
Contrail 環境の各サーバーには、少なくとも次のものが必要です。
64 GBのメモリ。
300 GBのハードドライブ。
4つのCPUコア。
少なくとも 1 つのイーサネット ポート。
Contrail Networking のサーバー要件の詳細については、「 サーバー要件とサポートされるプラットフォーム」を参照してください。
ソフトウェア要件
Contrail Command と Contrail Networking
Contrail Command と Contrail Networking は同時に更新され、常に同じバージョンの Contrail Networking ソフトウェアが実行されます。
Contrail Networkingの各リリースには、オーケストレーションプラットフォームのバージョン、オーケストレーションプラットフォームの導入に使用する導入機能、サポートされるサーバーオペレーティングシステムのバージョン、およびその他のソフトウェア要件に基づいたソフトウェア互換性要件があります。
すべてのContrail Networkingリリースでサポートされているプラットフォームのリストと、追加の環境固有のソフトウェア要件については、「 Contrail Networkingでサポートされているプラットフォームのリスト」を参照してください。
Contrail InsightsとContrail Insightsのフロー
Contrail リリース 2005 以降、Contrail Networking リリースをサポートする Contrail Insights および Contrail Insights フロー イメージは、Contrail Command 内で自動的にプロビジョニングされます。ご使用のバージョンのContrail Commandをダウンロードすると、Contrail CommandはJuniper Contrailレジストリ内からお客様のContrail NetworkingバージョンのContrail InsightsおよびContrail Insights Flowイメージを自動的に取得します。したがって、個々のContrail Insightsソフトウェアを個別にダウンロードする必要はなく、インストール済み環境のContrail InsightsまたはContrail Insightsのバージョン番号を確認する必要もありません。
Contrail イメージの取得方法
このドキュメントで使用する手順は、hub.juniper.net にあるジュニパーネットワークスのContrail Dockerプライベートセキュアレジストリから、Contrailコマンド、Contrailインサイト、Contrailインサイトフローソフトウェアをダウンロード します。このレジストリへのアクセス資格情報を取得するための 電子メール mailto:contrail-registry@juniper.net 。
Contrail レジストリから Contrail イメージを取得するには、Contrail イメージの を知っている必要があります Container Tags 。 Contrailレジストリ21XXへのREADMEアクセスを参照してください。
Contrail Networkingの画像は、 Contrailのダウンロードページでも入手できます。 Contrail Networking 製品名を入力します。
Contrail InsightsとContrail Insights Flowsの画像は、 Contrail Insightsのダウンロードページからも入手できます。 Contrail Insights 製品名を入力します。
Contrailコマンドのインストール方法
Contrail コマンドは、Contrail Networking 用の一元管理された GUI インターフェイスです。Contrail Networkingのエクスペリエンスを最適化するため、Contrailクラスターを作成する前にContrail Commandをインストールすることを強くお勧めします。Contrail コマンドは、以下の手順を使用してインストールします。
Contrail コマンドの詳細については、「 Contrail ネットワークのコンポーネントについて」を参照してください。
始める前に
Contrail Command サーバー(Contrail Command をホストするサーバー)が、次の最小システム要件を満たす仮想マシン(VM)または物理 x86 サーバーであることを確認します。
4個のvCPU
32 GB RAM
すべてのユーザー ストレージが "/" パーティションにある 100 GB のディスク ストレージ。
「/home」パーティションが存在する場合は、それを削除し、解放されたストレージの量だけ「/」パーティションを増やします。
「サーバー要件」に記載されている仕様を満たしています。
お使いのバージョンのContrail NetworkingをサポートするバージョンのCentOSが実行されます。
Contrail Networkingとオーケストレーションプラットフォームの組み合わせでサポートされているCentOSバージョンの一覧については、「 Contrail Networkingでサポートされているプラットフォームのリスト」を参照してください。
コマンドを使用して、更新されたパッケージ
yum update
を使用してCentOSをインストールできます。hub.juniper.net にあるContrailコンテナレジストリにアクセスできる。このアクセスが必要なのは、Contrail Command ドッカー イメージを含む Contrail Command デプロイヤーがこのインストール手順中にこのレジストリから取得されるためです。
Contrail Container レジストリにアクセスできない場合は、 mailto:contrail-registry@juniper.net メールでアクセス資格情報を取得してください。このレジストリへのアクセスに関する詳細については、 README Access to Contrail Registry 21XX を参照してください。
インターネットへのアクティブな接続があります。
管理ネットワークに接続されたアクティブな IP インターフェイスを少なくとも 1 つ含みます。Contrail コマンドは、管理 IP インターフェイスを介して Contrail クラスターとオーケストレーター クラスターを管理します。
インストールするリリースのコンテナー・タグを取得します。コンテナ タグは、この手順でインストールされる hub.juniper.net リポジトリ内の Contrail Command コンテナ ファイルを識別するために必要です。
Contrail リリース 21 ベースのイメージのコンテナ タグについては、 README Access to Contrail Registry 21XX を参照してください。
インストールのための Contrail コマンド サーバーの準備
インストール用にサーバーまたは VM を準備するには:
Contrail コマンドのインストール
Contrail コマンドをサーバーにインストールするには、次の手順に従います。
Contrail クラスターにサーバーをプロビジョニングする方法
Contrail クラスターにサーバーをプロビジョニングするには、この手順を使用します。Contrailクラスターは、クラウドネットワーク環境でコンピューティングノード、制御ノード、オーケストレータノード、Contrail Insightsノード、Contrail Insights Flowノード、サービスノードとしてプロビジョニングされた、相互接続されたサーバーの集合体です。
始める前に
始める前に:
トポロジを計画します。
アウトオブバンド管理ネットワークが確立されていることを確認します。
Contrail コマンドがインストールされていることを確認します。 「Contrail コマンドのインストール方法」を参照してください。
Contrail クラスター機能をホストするすべてのサーバーが、「 サーバー要件」に記載されている仕様を満たしていることを確認します。
Contrail クラスターをプロビジョニングする方法
Contrail クラスターをプロビジョニングするには、次の手順に従います。
Contrail コマンドをインストールするためのサンプル command_servers.yml ファイル
最小command_servers.ymlファイル
次のサンプル ファイルには、Contrail コマンドのインストール時に必要な最小設定が含まれています。
セキュリティ上の理由から、環境に一意のユーザー名とパスワードの組み合わせを作成することを強くお勧めします。この例では、ユーザー名とパスワードの組み合わせは、説明のみを目的として提供されています。
--- # Required for Appformix and Appformix Flows installations in Release 2003 and earlier user_command_volumes: - /opt/software/appformix:/opt/software/appformix - /opt/software/xflow:/opt/software/xflow command_servers: server1: ip: <IP Address> # IP address of server where you want to install Contrail Command connection: ssh ssh_user: root ssh_pass: <contrail command server password> sudo_pass: <contrail command server root password> ntpserver: <NTP Server address> registry_insecure: false container_registry: hub.juniper.net/contrail container_tag: <container_tag> container_registry_username: <registry username> container_registry_password: <registry password> config_dir: /etc/contrail contrail_config: database: type: postgres dialect: postgres password: contrail123 keystone: assignment: data: users: admin: password: contrail123 insecure: true client: password: contrail123
ファイルcommand_servers.yml完了
次のサンプル ファイルには、Contrail コマンドのインストール時に使用できる設定とサポートするパラメーターの一覧が含まれています。
セキュリティ上の理由から、環境に一意のユーザー名とパスワードの組み合わせを作成することを強くお勧めします。この例では、ユーザー名とパスワードの組み合わせは、説明のみを目的として提供されています。
--- # Required for Appformix and Appformix Flows installations in Release 2003 and earlier user_command_volumes: - /opt/software/appformix:/opt/software/appformix - /opt/software/xflow:/opt/software/xflow # User defined volumes #user_command_volumes: # - /var/tmp/contrail:/var/tmp/contrail command_servers: server1: ip: <IP Address> connection: ssh ssh_user: root ssh_pass: <contrail command server password> sudo_pass: <contrail command server root password> ntpserver: <NTP Server address> # Specify either container_path #container_path: /root/contrail-command-051618.tar # or registry details and container_name registry_insecure: false container_registry: hub.juniper.net/contrail container_name: contrail-command container_tag: <container_tag> container_registry_username: <registry username> container_registry_password: <registry password> config_dir: /etc/contrail # contrail command container configurations given here go to /etc/contrail/contrail.yml contrail_config: # Database configuration. PostgreSQL supported database: type: postgres dialect: postgres host: localhost user: root password: contrail123 name: contrail_test # Max Open Connections for DB Server max_open_conn: 100 connection_retries: 10 retry_period: 3s # Log Level log_level: debug # Cache configuration cache: enabled: true timeout: 10s max_history: 100000 rdbms: enabled: true # Server configuration server: enabled: true read_timeout: 10 write_timeout: 5 log_api: true address: ":9091" # TLS Configuration tls: enabled: true key_file: /usr/share/contrail/ssl/cs-key.pem cert_file: /usr/share/contrail/ssl/cs-cert.pem # Enable GRPC or not enable_grpc: false # Static file config # key: URL path # value: file path. (absolute path recommended in production) static_files: /: /usr/share/contrail/public # API Proxy configuration # key: URL path # value: String list of backend host #proxy: # /contrail: # - http://localhost:8082 notify_etcd: false # VNC Replication enable_vnc_replication: true # Keystone configuration keystone: local: true assignment: type: static data: domains: default: &default id: default name: default projects: admin: &admin id: admin name: admin domain: *default demo: &demo id: demo name: demo domain: *default users: admin: id: admin name: Admin domain: *default password: contrail123 email: admin@juniper.nets roles: - id: admin name: admin project: *admin bob: id: bob name: Bob domain: *default password: bob_password email: bob@juniper.net roles: - id: Member name: Member project: *demo store: type: memory expire: 36000 insecure: true authurl: https://localhost:9091/keystone/v3 # disable authentication with no_auth true and comment out keystone configuraion. #no_auth: true insecure: true etcd: endpoints: - localhost:2379 username: "" password: "" path: contrail watcher: enabled: false storage: json client: id: admin password: contrail123 project_name: admin domain_id: default schema_root: / endpoint: https://localhost:9091 compilation: enabled: false # Global configuration plugin_directory: 'etc/plugins/' number_of_workers: 4 max_job_queue_len: 5 msg_queue_lock_time: 30 msg_index_string: 'MsgIndex' read_lock_string: "MsgReadLock" master_election: true # Plugin configuration plugin: handlers: create_handler: 'HandleCreate' update_handler: 'HandleUpdate' delete_handler: 'HandleDelete' agent: enabled: true backend: file watcher: polling log_level: debug # The following are optional parameters used to patch/cherrypick # revisions into the contrail-ansible-deployer sandbox. These configs # go into the /etc/contrail/contrail-deploy-config.tmpl file # cluster_config: # ansible_fetch_url: "https://review.opencontrail.org/Juniper/contrail-ansible-deployer refs/changes/80/40780/20" # ansible_cherry_pick_revision: FETCH_HEAD # ansible_revision: GIT_COMMIT_HASH
障害回復とトラブルシューティング
概要 このセクションでは、一般的に見られるエラーと障害のシナリオ、およびそれらを修正するための手順を示します。
問題
説明
Recovering the Galera Cluster Upon Server Shutdown—Kolla と OpenStack Rocky を使用してプロビジョニングされた OpenStack HA セットアップでは、すべてのサーバーを同時にシャットダウンし、後で起動すると、Galera クラスターが失敗します。
ソリューション
Galera クラスターを回復するには、次の手順を実行します。
次に示すように、 /etc/kolla/mariadb/galera.cnf ファイルを編集して、
wsrep
いずれかのコントローラのアドレスを削除します。wsrep_cluster_address = gcomm:// #wsrep_cluster_address = gcomm://10.x.x.8:4567,10.x.x.10:4567,10.x.x.11:4567
メモ:管理対象シナリオですべてのコントローラが同時にシャットダウンされた場合は、最後にシャットダウンされたコントローラを選択する必要があります。
Docker は、ファイルを編集したコントローラーで mariadb を起動します。
数分待ってから、mariadb コンテナーが再起動していないことを確認してから、Docker が残りのコントローラーで mariadb を起動します。
/etc/kolla/mariadb/galera.cnf ファイルの変更を復元し、以前に選択したコントローラで mariadb コンテナを再起動します。
問題
説明
Containers from Private Registry Not Accessible- CONTAINER_REGISTRYという名前のプライベートレジストリからプルされたコンテナにアクセスできない場合があります。
ソリューション
解決するには、REGISTRY_PRIVATE_INSECURE が True に設定されていることを確認します。