Repolode
kr8s-org

kr8s-org/kr8s

kubectlをモデルにしたAPIを備え、同期・非同期(asyncio/trio)の両方に対応するKubernetes向けPythonクライアントライブラリ。

スター
1,001
フォーク
71
未解決の Issue
49
最終コミット
6 日前

これは何?

kr8sはKubernetes向けのPythonクライアントライブラリです。APIはkubectlをモデルにしているため、get、scale、label、cordon、execなどのコマンドに慣れている開発者なら、新しい用語を覚えなくても、Pod、Deployment、Nodeなどの各オブジェクトクラスに対応するメソッドを利用できます。

認証やクライアントのセットアップには扱いやすいデフォルト設定を採用しており、クライアントをキャッシュするため、関数間でAPIオブジェクトを受け渡す必要がありません。Swaggerの仕様からコードを生成するのではなく手書きしているため、ソースコードを読みやすく保てます。標準の同期APIに加え、asyncioやtrioで使える非同期APIも用意されています。

基本的なCRUDに加えて、pod exec、バックグラウンドスレッドでのポートフォワーディング、キーワード引数からのシンプルなPod定義の生成など、よく使う操作のためのヘルパーも備えています。複数のPythonバージョンと、近年のKubernetesリリースへの対応が記載されています。

主な機能

  • 01学習コストを抑えられるよう、メソッド名と動作がkubectlに準拠しています。
  • 02asyncioとtrioで使える同期APIと非同期APIの両方を提供します。
  • 03クライアントをキャッシュするため、クライアントを受け渡さずにAPIオブジェクトを再利用できます。
  • 04pod exec、ポートフォワーディング、ノードのcordonに使えるヘルパーを備えています。
  • 05Swaggerから生成したクライアントコードではなく、手書きのコードを使用しています。

ユースケース

  • Pythonで、クラスター内のDeploymentをスケールしたりPodにラベルを付けたりする自動化処理を書く。
  • Kubernetes APIと通信する、asyncioベースのコントローラーやサービスを構築する。
  • kubectlを呼び出すシェルスクリプトを、型付けされたPythonコードに置き換える。

クイックスタート

  1. 1

    PyPIからライブラリをインストールする

    pip install kr8s
  2. 2

    クラスター内のすべてのノード名を一覧表示する

使う前に知っておきたいこと

  • 役立つ操作を行うには、Kubernetesクラスターへのアクセスが必要です。

トピック

よくある質問

kr8s とは?
kubectlをモデルにしたAPIを備え、同期・非同期(asyncio/trio)の両方に対応するKubernetes向けPythonクライアントライブラリ。 kr8sはKubernetes向けのPythonクライアントライブラリです。APIはkubectlをモデルにしているため、get、scale、label、cordon、execなどのコマンドに慣れている開発者なら、新しい用語を覚えなくても、Pod、Deployment、Nodeなどの各オブジェクトクラスに対応するメソッドを利用できます。
kr8s は無料で使えますか?ライセンスは?
kr8s は BSD-3-Clause ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
kr8s は今もメンテナンスされていますか?
活発にメンテナンス中。kr8s の最終コミットは 2026年10月14日 です。
kr8s は何に使えますか?
Pythonで、クラスター内のDeploymentをスケールしたりPodにラベルを付けたりする自動化処理を書く。 Kubernetes APIと通信する、asyncioベースのコントローラーやサービスを構築する。 kubectlを呼び出すシェルスクリプトを、型付けされたPythonコードに置き換える。
kr8s のインストール方法は?
PyPIからライブラリをインストールする: pip install kr8s クラスター内のすべてのノード名を一覧表示する
kr8s はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/kr8s-org/kr8s

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト