Openshift-clusters
OpenShift-クラスター
OpenShiftは、OpenShiftクラスターをセットアップする2つのインストール方法を使用します。
- クイックインストール方法
- 高度な設定方法
クラスターのセットアップ
クイックインストール方法
このメソッドは、未達成の迅速なクラスターセットアップ構成の実行に使用されます。 この方法を使用するには、最初にインストーラーをインストールする必要があります。 これは、次のコマンドを実行して実行できます。
インタラクティブな方法
$ atomic-openshift-installer install
これは、対話型セットアップを実行する場合に便利です。
無人インストール方法
この方法は、ユーザーが無人インストール方法を設定する場合に使用されます。ユーザーは、設定yamlファイルを定義し、installer.cfg.ymlという名前で*〜/.config/openshift/に配置できます。 その後、次のコマンドを実行して –uタグ*をインストールできます。
$ atomic-openshift-installer –u install
デフォルトでは、*〜/.config/openshift/*の下にある設定ファイルを使用します。 一方、Ansibleはインストールのバックアップとして使用されます。
version: v2
variant: openshift-enterprise
variant_version: 3.1
ansible_log_path:/tmp/ansible.log
deployment:
ansible_ssh_user: root
hosts:
- ip: 172.10.10.1
hostname: vklnld908.int.example.com
public_ip: 24.222.0.1
public_hostname: master.example.com
roles:
- master
- node
containerized: true
connect_to: 24.222.0.1
- ip: 172.10.10.2
hostname: vklnld1446.int.example.com
public_ip: 24.222.0.2
public_hostname: node1.example.com
roles:
- node
connect_to: 10.0.0.2
- ip: 172.10.10.3
hostname: vklnld1447.int.example.com
public_ip: 10..22.2.3
public_hostname: node2.example.com
roles:
- node
connect_to: 10.0.0.3
roles:
master:
<variable_name1>: "<value1>"
<variable_name2>: "<value2>"
node:
<variable_name1>: "<value1>"
ここには、特定の変数を設定したい場合に定義できるロール固有の変数があります。
完了したら、次のコマンドを使用してインストールを確認できます。
$ oc get nodes
NAME STATUS AGE
master.example.com Ready 10d
node1.example.com Ready 10d
node2.example.com Ready 10d
高度なインストール
拡張インストールは、完全なホスト構成と、マスターおよびノード構成に関する変数定義が存在するAnsible構成に完全に基づいています。 これには、構成に関するすべての詳細が含まれます。
セットアップが完了し、プレイブックの準備ができたら、次のコマンドを実行してクラスターをセットアップできます。
$ ansible-playbook -i inventry/hosts ~/openshift-ansible/playbooks/byo/config.yml
クラスターへのホストの追加
を使用してクラスターにホストを追加できます-
- クイックインストーラツール
- 高度な設定方法
- クイックインストールツール*は、インタラクティブモードと非インタラクティブモードの両方で動作します。 次のコマンドを使用します。
$ atomic-openshift-installer -u -c </path/to/file> scaleup
アプリケーション構成ファイルの外観をスケーリングする形式は、マスターとノードの両方を追加するために使用できます。
高度な設定方法
この方法では、Ansibleのホストファイルを更新し、このファイルに新しいノードまたはサーバーの詳細を追加します。 設定ファイルは次のようになります。
[OSEv3:children]
masters
nodes
new_nodes
new_master
同じAnsibleホストファイルで、以下に示すように、新しいノードに関する変数の詳細を追加します。
[new_nodes]
vklnld1448.int.example.com openshift_node_labels = "{'region': 'primary', 'zone': 'east'}"
最後に、更新されたホストファイルを使用して、新しい構成を実行し、構成ファイルを呼び出して、次のコマンドを使用してセットアップを完了します。
$ ansible-playbook -i/inventory/hosts/usr/share/ansible/openshift-ansible/playbooks/test/openshift-node/scaleup.yml
クラスターログの管理
OpenShiftクラスターログは、クラスターのマスターマシンとノードマシンから生成されるログに他なりません。 これらは、サーバーログ、マスターログ、コンテナーログ、ポッドログなどから始まる、あらゆる種類のログを管理できます。 コンテナログ管理には、複数のテクノロジーとアプリケーションがあります。
ログ管理のために実装できるツールはほとんどありません。
流Flu
ELK
カブナ
ナギオス
スプランク
ELKスタック*-このスタックは、すべてのノードからログを収集し、それらを体系的な形式で表示しようとするときに役立ちます。 ELKスタックは、主に3つの主要なカテゴリに分類されます。
*ElasticSearch* -主にすべてのコンテナから情報を収集し、それを中央の場所に配置する責任があります。
*Fluentd* -収集されたログをelasticsearchコンテナーエンジンに供給するために使用されます。
*Kibana* -収集したデータを有用な情報としてグラフィカルインターフェイスに表示するために使用されるグラフィカルインターフェイス。
重要なポイントの1つは、このシステムがクラスターにデプロイされると、すべてのノードからログの収集を開始することです。
ログ診断
OpenShiftには、OCに組み込まれた oc adm dignostics コマンドがあり、複数のエラー状況の分析に使用できます。 このツールは、クラスター管理者としてマスターから使用できます。 このユーティリティは、既知の問題のトラブルシューティングと無視に非常に役立ちます。 これは、マスタークライアントとノードで実行されます。
アグリメントまたはフラグなしで実行すると、クライアント、サーバー、およびノードマシンの構成ファイルを検索し、診断に使用します。 次の引数を渡すことにより、個別に診断を実行できます-
- AggregatedLogging
- 分析ログ
- ClusterRegistry
- ClusterRoleBindings
- ClusterRoles
- ClusterRouter
- ConfigContexts
- DiagnosticPod
- MasterConfigCheck
- マスターノード
- MetricsApiProxy
- NetworkCheck
- NodeConfigCheck
- NodeDefinitions
- ServiceExternalIPs
- UnitStatus
次のコマンドで簡単に実行できます。
$ oc adm diagnostics <DiagnosticName>
クラスターのアップグレード
クラスターのアップグレードには、クラスター内の複数のもののアップグレードと、新しいコンポーネントとアップグレードで更新されたクラスターの取得が含まれます。 これには-
- マスターコンポーネントのアップグレード
- ノードコンポーネントのアップグレード
- ポリシーのアップグレード
- ルートのアップグレード
- 画像ストリームのアップグレード
これらすべてのアップグレードを実行するには、最初にクイックインストーラーまたはユーティリティを適切にインストールする必要があります。 そのためには、次のユーティリティを更新する必要があります-
- atomic-openshift-utils
- atomic-openshift-excluder
- atomic-openshift-docker-excluder
- etcdパッケージ
アップグレードを開始する前に、マスターマシンにetcdをバックアップする必要があります。これは、次のコマンドを使用して実行できます。
$ ETCD_DATA_DIR =/var/lib/origin/openshift.local.etcd
$ etcdctl backup \
--data-dir $ETCD_DATA_DIR \
--backup-dir $ETCD_DATA_DIR.bak.<date>
マスターコンポーネントのアップグレード
OpenShiftマスターでは、etcdファイルを更新してからDockerに移行することでアップグレードを開始します。 最後に、自動実行プログラムを実行して、クラスターを必要な位置に配置します。 ただし、アップグレードを開始する前に、まず各マスターでアトミックOpenShiftパッケージをアクティブ化する必要があります。 これは、次のコマンドを使用して実行できます。
- ステップ1 *-atomic-openshiftパッケージを削除する
$ atomic-openshift-excluder unexclude
- ステップ2 *-すべてのマスターでetcdをアップグレードします。
$ yum update etcd
- ステップ3 *-etcdのサービスを再起動し、正常に開始されたかどうかを確認します。
$ systemctl restart etcd
$ journalctl -r -u etcd
- ステップ4 *-Dockerパッケージをアップグレードします。
$ yum update docker
- ステップ5 *-Dockerサービスを再起動し、正しく起動しているかどうかを確認します。
$ systemctl restart docker
$ journalctl -r -u docker
- ステップ6 *-完了したら、次のコマンドでシステムを再起動します。
$ systemctl reboot
$ journalctl -r -u docker
- ステップ7 *-最後に、atomic-executerを実行して、パッケージをyum excludesのリストに戻します。
$ atomic-openshift-excluder exclude
ポリシーのアップグレードにそのような強制はありません。推奨される場合にのみアップグレードする必要があり、次のコマンドで確認できます。
$ oadm policy reconcile-cluster-roles
ほとんどの場合、ポリシー定義を更新する必要はありません。
ノードコンポーネントのアップグレード
マスターの更新が完了したら、ノードのアップグレードを開始できます。 心に留めておくべきことの1つは、クラスター内のあらゆる種類の問題を回避するために、アップグレードの期間を短くする必要があることです。
- ステップ1 *-アップグレードを実行するすべてのノードからすべてのアトミックOpenShiftパッケージを削除します。
$ atomic-openshift-excluder unexclude
- ステップ2 *-次に、アップグレードの前にノードのスケジューリングを無効にします。
$ oadm manage-node <node name> --schedulable = false
- ステップ3 *-すべてのノードを現在のホストから他のホストに複製します。
$ oadm drain <node name> --force --delete-local-data --ignore-daemonsets
- ステップ4 *-ホスト上のDockerセットアップをアップグレードします。
$ yum update docker
- ステップ5 *-Dockerサービスを再起動してから、Dockerサービスノードを開始します。
$systemctl restart docker
$ systemctl restart atomic-openshift-node
- ステップ6 *-両方が正しく起動したかどうかを確認します。
$ journalctl -r -u atomic-openshift-node
- ステップ7 *-アップグレードが完了したら、ノードマシンを再起動します。
$ systemctl reboot
$ journalctl -r -u docker
- ステップ8 *-ノードでスケジューリングを再度有効にします。
$ oadm manage-node <node> --schedulable.
- ステップ9 *-atomic-openshift実行プログラムを実行して、OpenShiftパッケージをノードに戻します。
$ atomic-openshift-excluder exclude
- ステップ10 *-最後に、すべてのノードが使用可能かどうかを確認します。
$ oc get nodes
NAME STATUS AGE
master.example.com Ready 12d
node1.example.com Ready 12d
node2.example.com Ready 12d