BackstageとKubernetesの出会い: Kubernetesバックエンドプラグイン完全ガイド

皆さん、こんにちは!今日は、Backstageの強力な機能の一つであるKubernetes統合を可能にする中核コンポーネント、すなわちKubernetesバックエンドプラグインについて詳しく見ていきましょう。🚀

クラウドネイティブ環境で開発者ポータル(Backstage)を運用する際、自分が作成したサービスがKubernetesクラスター上でどのように動作しているか(Podの状態、デプロイ状況など)を一目で確認することは非常に重要です。この魔法のような接続を担当する主役を今すぐ見てみましょう!💡


🏗️ 答えはこれです: @backstage/plugin-kubernetes-backend ☸️

BackstageポータルにKubernetesリソースデータを統合し、APIを提供する中核的なバックエンドプラグインは、まさに@backstage/plugin-kubernetes-backendです。

このプラグインは、各サービス(Entity)に関連する実際のKubernetesリソース(Pods、Deployments、Services、Ingressなど)を照会し、フロントエンドに渡すという中心的な役割を果たします。


🌟 Kubernetesバックエンドプラグインの主要な役割

単にデータを取得するだけでなく、このプラグインは次のような複雑なタスクを実行します。

1. マルチクラスターデータ収集 (Multi-cluster Support) 🌐

ほとんどの企業は、開発、ステージング、運用など、複数のKubernetesクラスターを運用しています。このプラグインは、設定されたすべてのクラスターに接続し、関連データを収集する役割を担います。

2. エンティティマッピング (Service-to-Cluster Mapping) 🔗

最も重要な機能です!Backstageカタログに登録された特定の「サービス」が、Kubernetes上のどの「リソース」に対応するかをマッピングします。通常、YAMLファイルに設定されたbackstage.io/kubernetes-idラベルを基準にデータをフィルタリングします。

3. 認証とセキュリティ (Authentication) 🔐

各クラスターに安全にアクセスするために、Service Accountトークン、クラスター証明書、またはクラウドプロバイダー(AWS EKS、GCP GKEなど)の認証方式を処理します。


🛠️ インストールと設定方法

Backstageモノレポ構造でこのプラグインを有効にする方法は次のとおりです。

ステップ1: パッケージのインストール 📦

ターミナルでバックエンドパッケージにライブラリを追加します。

Bash

yarn workspace backend add @backstage/plugin-kubernetes-backend

ステップ2: バックエンドコードの登録 ⚙️

最新のBackstageシステム(New Backend System)の基準では、packages/backend/src/index.tsに以下の内容を追加します。

TypeScript

backend.add(import('@backstage/plugin-kubernetes-backend/alpha'));

ステップ3: app-config.yamlの設定 📝

最も重要な部分です。どのクラスターにどのように接続するかを明示する必要があります。

YAML

kubernetes:
  serviceLocatorMethod:
    type: 'multiTenant'
  clusterLocatorMethods:
    - type: 'config'
      clusters:
        - url: https://<apiserver-url>
          name: my-cluster
          authProvider: 'serviceAccount'
          skipTLSVerify: false
          # ... その他の認証設定

🔍 フロントエンドとの相性抜群: plugin-kubernetes

バックエンドプラグインがデータを取得する一方で、ユーザーが見る華やかなダッシュボードは@backstage/plugin-kubernetes(フロントエンドプラグイン)が担当します。🎨

  • バックエンド: クラスターAPIと通信してJSONデータを取得します。
  • フロントエンド: 取得したデータに基づいてPodの状態(Running、Errorなど)を視覚化し、ログを表示します。

💡 実践ヒント: なぜ私のサービスが表示されないのですか? 🤔

プラグインをインストールしたのにデータが表示されない場合は、次の2点を確認してください!

  1. ラベルの確認: サービスのKubernetesリソース(Deploymentなど)にbackstage.io/kubernetes-id: ラベルが付いていますか?
  2. アノテーションの確認: Backstageのcatalog-info.yamlファイルにbackstage.io/kubernetes-id: アノテーションが追加されていますか?

これら2つのIDが一致して初めて、バックエンドプラグインは「ああ!このPodはこのサービスのものだ!」と認識します。✨


🏁 結論: インフラ可視性の完成

@backstage/plugin-kubernetes-backendは、断片化されたインフラ情報を開発者中心のビューに統合する重要なツールです。このプラグインを通じて、開発者はインフラ部門に問い合わせることなく、自身のサービスの状態を自ら確認できるセルフサービス環境を構築できます!🚀



Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です