Red Hat OpenShift はenterprise Kubernetes application platform とあるように、エンタープライズレベルの利用を想定しており、クラスターの管理機能作業を軽減でき、コンテナーベースのアプリケーションの迅速なデプロイを可能にするKubernetes製品です。OpenShiftは、kubernetesそのものだけではなく、統合コンテナーレジストリー、Red Hat Enterprise Linux CoreOS上で構築されたコンテナーホストとランタイム、source-to-imageや統合されたJenkinsと言った開発者のための機能まで兼ね備えています。
OpenShiftにより、クラスター管理やコンテナー化したアプリケーションの展開までの管理作業が軽減できます。そして、展開したアプリケーションを構成する、ノード、ポッド、そしてアプリケーション、サービスの健全性を計測するのにNew Relicが利用できます。New Relic Infrastructureのkubernetes統合については以前のブログ記事や、30秒の簡単な動画をぜひご覧ください。
https://blog.newrelic.co.jp/new-relic-basics/how-to-monitor-kubernetes-with-newrelic/
[embed]https://www.youtube.com/watch?v=EJPyUFQx4dY&feature=youtu.be[/embed]
OpenShiftの公式認定パートナーとして、New Relic InfrastructureはRed Hat Container Catalogから入手できます。New Relicのkubernetes統合はOpenShiftも公式にサポートしています。また、オンプレミス、パブリッククラウドの両方の環境に対応しています。
New Relic Infrastructure含めNew RelicはSaaSで提供しているため、監視データを保持するためのストレージや監視機能の可用性に気を取られることなく、kubernetesクラスターとその上で動くアプリケーションに専念することができます。New Relic のPrometheus統合機能により既存のPrometheusからデータを送信し可視化することができます。また、New Relic Logsを使うことで、kubernetesクラスターとアプリケーションの両方のログを同時に、ストレージを気にすることなく、分析することが可能になります。New Relic APMはコンテナーベースのアプリケーションをサポートしており、kubernetes統合とシームレスにつながっています。
簡単にOpenShift向けのkubernetes統合機能のインストール手順と機能紹介を行いたいと思います。
OpenShiftにNew Relicをインストールする
現在のところ、OpenShift 3.7と3.9および4.2と4.3に対してテストを行ったものをリリースしております。
インストール手順についてはkubernetes統合のドキュメントにOpenShift固有の補足が説明してあります。cluster-admin権限のユーザーで作業するとスムーズに実行できるかと思います。インストールする前にnewrelicサービスアカウントに対してsccを追加してください。通常namespaceはdefaultになるはずです。
oc adm policy add-scc-to-user privileged system:serviceaccount:<namespace>:newrelic
その後通常のkubernetes統合手順にしたがって作業しますが、kubectlコマンドを実行するところでは、ocコマンドに置き換えて実行してください。
また、Control Plane(マスターノード)の監視もサポートしています。こちらもOpenShift4.xでは固有の構成が必要ですのでご確認ください。
OpenShift Kubernetesクラスターの調査
New Relic Kubernetesクラスターエクスプローラーが開き、OpenShift環境内のすべてのポッド、ネームスペース、デプロイメント、およびノードが表示されます。
Podをクリックすると、リソース要求とリソース制限を実際の消費量と合わせて追跡することができます。
Kubernetes統合はクラスターのデフォルトのアラートポリシーを設定するので、ポッドがリソース消費制限に達している場合は通知を受けることができます。たとえば、クラスター内のポッドがメモリ制限の90%に達した場合、ポッドは黄色または赤で強調表示されます。デフォルトのアラートを含めて、New Relic Alertsを使うことで、クラスター、ノード、ポッドに加えてアプリケーション内部で計測した結果を基にアラートの条件と通知先を一元管理することができます。
同様にOpenShiftクラスターのログをNew Relicに転送することができます。OpenShiftはfluentdを使った組み込みのログ管理機能を持っています。その機能を利用した上で、fluentdの転送設定にNew Relic Logsを追加するか、もしくはNew Relic Logsのkubernetesプラグインを利用することができます。後者はKubernetesのHostPath機能に依存しているため、OpenShiftクラスター側でHostPathを許可する設定を行ってください。
New Relic LogsはLogs in Context機能により、Podなどからそれに関するログを表示するリンクを提供しています。クリックすることですぐにログを確認することができます。
OpenShiftクラスターで実行されているアプリケーションに関するAPMデータを調べます
コンテナーで動くアプリケーションに設定したAPMと、そのコンテナーを動かしているkubernetesクラスターの情報をリンクさせる統合機能もOpenShiftをサポートしています。この統合機能を有効にすると、ポッドをクリックして表示される画面にAPMが取得している簡略なデータと、より詳細を確認する場合のリンクが表示されます。
また、New Relicの分散トレーシング機能で表示される、分散トレースの個々のスパンをクリックすると、そのアプリケーションに関連するKubernetes属性をすばやく確認できます。たとえば、個々のスパンがどのポッド、クラスター、およびデプロイメントに属しているかを調べることができます。
New Relic Kubernetes統合は、New Relic Infrastructure Proレベル以上のサブスクリプションで追加料金なしに利用できます。
また、本エントリ中のスクリーンショットの一部は本社公式ブログMonitor Applications and Infrastructure In Red Hat OpenShift with New Relicより引用しております。
KubernetesやOpenShiftにも詳しいNew Relic 担当者にもう少し話を聞いてみたい場合はこちらまで!
本ブログに掲載されている見解は著者に所属するものであり、必ずしも New Relic 株式会社の公式見解であるわけではありません。また、本ブログには、外部サイトにアクセスするリンクが含まれる場合があります。それらリンク先の内容について、New Relic がいかなる保証も提供することはありません。