Amazon Web Services ブログ

Pixie を使用して Kubernetes アプリケーション、サービス、ネットワークトラフィックに関する洞察を収集する

この記事は、Gathering insights on Kubernetes applications, services, and network traffic with Pixie を翻訳したものです。

Amazon Elastic Kubernetes Service (Amazon EKS) を利用しているお客様から、オープンソースの可観測性スタックの採用は組織の最優先事項である、という声をよくいただきます。だからこそ、Extended Berkeley Packet Filter (eBPF) を搭載した、Kubernetes のためのオープンソース可観測性プラットフォームである Pixie には期待をしています。New Relic は、Cloud Native Computing Foundation (CNCF) への Pixie の寄贈を進めています。特に、Pixie プラットフォームのプログラマビリティと、eBPF を利用したアプリケーションイベントの自動収集機能にはワクワクさせられます。Pixie は、収集したデータをユーザーの Kubernetes クラスターに直接保存します。

Pixie により、開発者は可観測性データに簡単にアクセスできるようになります。Amazon Web Services (AWS) では、すべての開発者が最小限の労力で可観測性データにアクセスできるようにするというビジョンを共有しています。そのため、AWS は New Relic と連携して Pixie プロジェクトに貢献することにしました。AWS プリンシパルエンジニアである Jaana Dogan が、Pixie のボードに参加することになりました。AWS は、可観測性の世界的なリーダーである New Relic と、このオープンソースプロジェクトで協力できることを嬉しく思います。

Pixie を始めてみましょう

  • Quick Start: セルフマネージド、またはマネージドな Pixie の利用を開始します
  • Pixie Community Slack: コミュニティ Slack に参加してみましょう
  • Pixie GitHub: プロジェクトのアップデートを確認します
  • Pixie Tutorial on EKSWorkshop.com: 実際に発生しうる HTTP と SQL に含まれるバグをデバッグする方法を説明します
  • Pixie Monthly Meeting: Pixie チームとつながり、最新の機能について学びましょう

Pixie とは

Pixie は、開発者が本番環境のシステムを最小限の労力やシステム影響でデバッグできるように設計された、Kubernetes の可観測性プラットフォームを提供するオープンソースのプロジェクトです。次の 3 つの主要な技術的差別化要因により推進されています。

自動インストルメンテーション

開発者が Pixie をデプロイするとすぐに、Pixie はネットワーク (HTTP、HTTP2、gRPC、TLS、TCP)、データベースクライアント診断 (MySQL、PostgreSQL、Cassandra、Redis)、アプリケーションプロファイルなど、さまざまなデータソースを自動的に収集します。開発者は、スクリプトを書いてプログラム的に拡張することができます。これらの収集は、いずれも手動のインストルメンテーションが必要ありません。Pixie が eBPF を使用することで、この “すぐに使える” というエクスペリエンスが提供されています。

eBPF は、カーネルソースコードの変更やカーネルモジュールを追加することなく、カーネル自体でプログラムの実行を可能にする Linux 4.x 以降のカーネル技術です。これは、Linux カーネル内の軽量で完全なサンドボックス化された仮想マシン (VM) と考えてください。eBPF プログラムはイベントベースであり、ネットワークイベント、システムコース、関数エントリー、カーネルトレースポイントなどの特定のフックで実行されます。深く掘り下げる場合、Brendan Gregg による AWS re:Invent 2019 でのセッションを確認してください。

プログラムによるデータアクセス

Pixie でのすべてのビューは PxL スクリプトを利用しています。PxL は、Pixie の Python ベースのデータクエリ言語で、人気のデータツール Pandas にインスパイアされています。Pixie のデータアクセスはすべてプログラムによるものなので、ユーザーはシステムの完全にカスタマイズされたビューを構築することができます。PxL スクリプトは、Pixie の UI、CLI、API すべてで動作します。Pixie API を使用して、ユーザーはプログラムで Pixie にクエリすることができます。Pixie では、データを別のツールにエスクポートしたり、Slackbot のアラートを作成することが簡単に行えます。

Kubernetes ネイティブなエッジコンピューティング

Pixie は、分散マシンデータシステムとして Kubernetes の中で完全に動作します。これは、クラスターの外にデータを転送する必要がないことを意味します。Pixie のアーキテクチャは、セキュアでコスト効率の高い、無制限のデータにアクセスするスケーラブルな方法を提供し、AI/ML モデルをソースにデプロイしてストリーミングテレメトリパイプラインをセットアップすることができます。

このブログの残りの部分では、Pixie の開始方法と、例として SQL スロークエリを表示する方法を説明します。さらに掘り下げる場合には、Pixie EKS Workshop を確認してください。

Pixie の活用: SQL スロークエリの確認

インストールスクリプトを使用して Pixie の CLI をインストールします。

$ bash -c "$(curl -fsSL https://withpixie.ai/install.sh)"
  • Enter を押して、利用規約に同意します
  • Enter を押して、デフォルトのインストールパスを使用します
  • 表示される URL にアクセスして、新しい Pixie アカウントにサインアップもしくはサインインします
  • ブラウザで生成された認証トークンをコピーして、CLI に貼り付けます

px CLI を使用して、EKS クラスターに Pixie をデプロイします。

$ px deploy --cluster_name <CLUSTER_NAME> --pem_memory_limit=1Gi

次に、Pixie のコンソール UI に移動して、ドロップダウンメニューから EKS クラスターを選択します。

スクリプトのドロップダウンで px/mysql_data スクリプトを選択します。

このスクリプトは、クラスターから Amazon Relational Database Service (Amazon RDS)Amazon Aurora、またはセルフマネージドな MySQL への MySQL クエリをすべて表示します。Pod や Service に MySQL 固有のインストルメンテーションを追加する必要はありません。

px/mysql_stats にスクリプトを切り替えると、SQL クエリの主要なレイテンシ統計を確認できます。

これは、Pixie が SRE や DevOps、開発者をアシストする多くのユースケースの一つにすぎません。ネットワーク (HTTP、HTTP2、gRPC、TLS、TCP)、データベースクライアント診断 (MySQL、PostgreSQL、Cassandra、Redis)、HTTP イベント、データベースイベント、ネットワーク統計、アプリケーションプロファイルなど、多くの洞察を Kubernetes に提供します。

さらに掘り下げる

  • Quick Start: セルフマネージド、またはマネージドな Pixie の利用を開始します
  • Pixie Community Slack: コミュニティ Slack に参加してみましょう
  • Pixie GitHub: プロジェクトのアップデートを確認します
  • Pixie Tutorial on EKSWorkshop.com: 実際に発生しうる HTTP と SQL に含まれるバグをデバッグする方法を説明します
  • Pixie Monthly Meeting: Pixie チームとつながり、最新の機能について学びましょう

– Colin Bookman, Mark Carter

翻訳はソリューションアーキテクト落水 (おちみず) が担当しました。