GNU/Linux >> Linux の 問題 >  >> Linux

RedHatOpenShiftでデプロイメントの正常性を確認する方法

アプリケーションをRedHatOpenShiftにデプロイする場合、コンポーネントのステータスと正常性を確認すると便利です。最初に、展開がどのように機能するかを示し、次にいくつかのヘルスレポートを確認できます。

OpenShiftAPIのデプロイ方法

Red Hat OpenShiftアプリケーションは、リモートレジストリーでホストされるコンテナーイメージ、作成するリソースを指定するYAMLファイル、Gitリポジトリーのソースコードを使用するビルダーイメージ、Dockerfileなどを使用して作成できます。

[次のこともお勧めします:RedHatAcademy向けのインタラクティブなOpenShift講義を作成した方法。 ]

選択した方法に応じて、導入 またはDeploymentConfig APIオブジェクトを使用できます。 OpenShiftは両方のデプロイメントをサポートします オブジェクトとDeploymentConfig オブジェクト;ただし、導入 DeploymentConfig が提供する特定の機能が必要でない限り、オブジェクトをお勧めします オブジェクト。

OpenShiftで、YAMLファイルからアプリケーションを作成する場合、デプロイメント オブジェクトが優先されます。 Dockerfileまたはソースからアプリケーションを構築する場合、 DeploymentConfig オブジェクトはoc new-appによって自動的に作成されます コマンド。

DeploymentConfigのトラブルシューティングを行う場合 または導入 APIは、作成されたレプリカとポッドの状態に焦点を当てます。 DeploymentConfig ReplicationControllerを作成します ポッドのライフサイクルを管理します。同様に、導入 レプリカを作成します ポッドを管理します。

MySQLデプロイメントの例

この例では、registry.access.redhat.comでホストされているイメージからMySQLデータベースを作成します:

oc new-app --docker-image=registry.access.redhat.com/rhscl/mysql-57-rhel7:latest --name=mydb -e MYSQL_USER=user1 -e MYSQL_PASSWORD=mypa55 -e MYSQL_DATABASE=testdb -e MYSQL_ROOT_PASSWORD=r00tpa55

[sysadmin@server ~]$ oc describe dc mydb
Name: mydb
Namespace: DEV
Created: 130 minutes ago
Labels: app=dev
...output omitted...
Deployment #1 (latest):
Name: mydb-1
Created: 15 minutes ago
Status: Complete
Replicas: 1 current / 1 desired
Selector: app=mydb,deployment=mydb-1,deploymentconfig=mydb
Labels: app=mydb,openshift.io/deployment-config.name=mydb
Pods Status: 1 Running / 0 Waiting / 0 Succeeded / 0 Failed
...output omitted...

これから、次のことを推測できます。

  • ステータス:完了 - DeploymentConfig 正常に完了しました。
  • レプリカ:現在1つ/1つ必要 -1つのポッドを作成する必要があり(必要)、もう1つは正常に作成されました(現在)。
  • ポッドのステータス:1実行中/0待機中/0成功/0失敗 -ポッドが1つあり、障害は発生していません。これは非常に重要です。障害が発生したポッドは調査して修正する必要があります。これは、展開が不健全になることを意味します。

PHPアプリケーションのデプロイ

この2番目の例では、PHPアプリケーションをデプロイします。これは、 DeploymentConfigの説明です。 :

[sysadmin@server]$ oc describe dc/php-helloworld
Name: php-helloworld
Namespace: web
Created: 12 minutes ago
Labels: app=php-helloworld
Annotations: openshift.io/generated-by=OpenShiftNewApp
Latest Version: 1
Selector: app=php-helloworld,deploymentconfig=php-helloworld
Replicas: 1
Triggers: Config, Image(php-helloworld@latest, auto=true)
Strategy: Rolling
Template:
Labels: app=php-helloworld
deploymentconfig=php-helloworld
...output omitted...
Containers:
php-helloworld:
Image: image-registry.openshift-image-registry.svc:5000/s2i/phphelloworld@
sha256:6d27...b983
Ports: 8080/TCP, 8443/TCP
Environment: <none>
Mounts: <none>
Volumes: <none>
Deployment #1 (latest):
Name: php-helloworld-1
Created: 5 minutes ago
Status: Complete
Replicas: 3 current / 5 desired
Selector: app=php-helloworld,deployment=php-helloworld-1,deploymentconfig=phphelloworld
Labels: app=php-helloworld,openshift.io/deployment-config.name=php-helloworld
Pods Status: 3 Running / 0 Waiting / 0 Succeeded / 2 Failed
...output omitted...

ご覧のとおり、2つの失敗したポッドがあります。これは、展開が正常ではなく、調査する必要があることを示しています。管理者は、個々のポッドのログを表示して、適切な修正を適用できます。

[この無料のチートシートでKubernetesの使用の基本を学びます。 ]

まとめ

デプロイのトラブルシューティングを行うときは、ポッドのステータス、必要なレプリカの数、現在実行中のレプリカの数を確認することが常に重要です。このような情報により、トラブルシューティングがより簡単かつ効率的になります。


Linux
  1. ローカルのRedHatリポジトリを作成する方法

  2. Red Hat / CentOS :インターフェイスの作成方法 / NIC ボンディング

  3. ハードドライブの状態をチェックする方法

  1. LinuxでSSD/HDDの状態を確認する方法

  2. RHEL8でRedHatサブスクリプションを有効にする方法

  3. Red Hat Linux で新しいパーティションをマウントする方法

  1. Linuxでリポジトリをミラーリングする方法

  2. Red Hat Enterprise Linuxを無料で入手するにはどうすればよいですか?

  3. Red Hat Linux とは?