Openshift-clusters

提供:Dev Guides
移動先:案内検索

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