Web Development

Kubernetes に Django アプリをデプロイする方法

Read this post in other languages:

デプロイ、スケーリング、負荷分散を自動化するオープンソースのコンテナーオーケストレーションプラットフォームである Kubernetes を使用すると、比類のないレジリエンスと柔軟性を持つ Django アプリケーションの管理を実現できます

小規模なプロジェクトを開始する場合でも、複雑なアプリケーションを管理する場合でも、Kubernetes は Django アプリケーションを強化できる堅牢な環境を提供し、最新のウェブ開発の需要に対応できるようにします。

Kubernetes(または K8s)はコンテナー化アプリケーションのデプロイ、スケーリング、および運用を自動化することで、急速に変化するテクノロジー業界の組織に数多くのメリットをもたらします。

このガイドでは、デプロイのスキルを向上させたい Django 開発者や Django の統合機能を詳しく知りたい Kubernetes 愛好家など、あらゆるユーザーに役立つ情報を掲載しています。

このチュートリアルの冒頭では、ウェブアプリケーションをシームレスにコンテナー化し、クラスター間でワークロードを分散し、高可用性を確保することを可能にする Django と Kubernetes の共生関係について説明します。

Djangoとは?特徴とKubernetesとの親和性

高レベルの Python ウェブフレームワークである Django フレームワークは、ウェブ開発の分野における効率性と単純さの指標となっています。 高速、堅牢、かつ保守可能なウェブアプリケーションを構築するニーズから生まれた Django は、開発者や組織にとって一般的な選択肢となりました。

Django は本質的に「バッテリー同梱」の哲学を採用しており、開発プロセスを容易にする広範なツール、ライブラリ、規則が組み込まれています。 URL ルーティング、データベース統合、ユーザー認証などの複雑なタスクが単純化されることで、開発者はアプリケーションの構築に専念できるようになります。

Django の最大のメリットの 1 つは、重複を減らし、コードの保守性を向上させる「Don’t Repeat Yourself」(DRY)原則に従っていることです。 アプリケーションを構造化し、管理しやすくするモデルビューコントローラー(MVC)アーキテクチャパターンにも従っています。

Django はセキュリティも優先しているため、一般的なウェブの脆弱性の影響を受けにくくなっています。 クロスサイトスクリプティング(XSS)やクロスサイトリクエストフォージェリ(CSRF)対策などの機能も最初から備わっています。 速度、単純さ、セキュリティが強力に組み合わさった Django は、堅牢かつ機能豊富なウェブアプリケーションを最小限の労力で制作したい開発者にとって理想的な選択肢です。

コンテナーオーケストレーターの比較

コンテナーオーケストレーターは、コンテナーアプリケーションのデプロイ、スケーリング、運用の管理と自動化に不可欠なツールです。 市場には複数のコンテナーオーケストレーターが存在しますが、以下のようなものが一般的に使用されています。

1. Kubernetes は最も一般的なオープンソースコンテナーオーケストレーションプラットフォームであり、コンテナー化されたアプリケーションを処理するための堅牢かつ適応性に優れた環境を提供します。 幅広い拡張機能エコシステムにより、スケーリング、負荷分散、コンテナーのヘルスチェックなどのタスクを自動化します。

2. Docker Swarm は、Docker が提供しているコンテナーオーケストレーションソリューションです。 セットアップと使用を単純化する設計になっており、Docker と同じコマンドラインインターフェースと API を使用しているため、Docker をすでに使用している小規模なアプリケーションや組織に適した選択肢です。

3. OpenShift は、Red Hat が開発したエンタープライズ Kubernetes プラットフォームです。 Kubernetes に開発者ツールと運用ツールを追加することで、コンテナーアプリケーションのデプロイと管理を単純化しています。

4. HashiCorp が開発した Nomad は、コンテナーと非コンテナー化アプリケーションの管理機能を備えた軽量で使いやすいオーケストレーターです。

5. Apache Mesos はオープンソースの分散システムカーネルで、DC/OS(データセンターオペレーティングシステム)は Mesos 上に構築されたエンタープライズ級のプラットフォームです。 DC/OS は、コンテナー化アプリケーションの管理とスケーリングを行うための追加機能によって Mesos を拡張しています。

ソフトウェアチームは AWS、Google Cloud Platform、Azure などの名の通ったクラウドプロバイダーが提供するマネージドプラットフォームを主に使用します。 これらのクラウドプロバイダーは Amazon EKS、Google GKE、Azure AKS などのサービスを提供していますが、これらはすべてマネージド Kubernetes ソリューションです。 これらのサービスは Kubernetes クラスターのセットアップ、拡張、および管理を合理化し、個々のクラウド環境とシームレスに統合できるため、効率的なコンテナーオーケストレーションとアプリケーションのデプロイを実現できます。

PyCharm で Django アプリケーションを作成する

このチュートリアルでは、最小限の機能を備えた Django アプリケーションを生成することから始めます。 次はそのアプリケーションをコンテナー化し、最後のステップで Docker Desktop を使用してローカルの Kubernetes クラスターにデプロイします。

Django フレームワークを使用した経験がないものの、Django アプリケーションをゼロから作成したい方は、こちらのブログ記事をお読みください。

このチュートリアルで使用されているソースコードは、こちらからアクセスできます。

では、PyCharm で Django アプリケーションを新しく作成することから始めましょう。

プロジェクトを作成するには、PyCharm を起動して New Project(新規プロジェクト)をクリックします。 PyCharm がすでに起動している場合は、メインメニューから File(ファイル)| New Project(新規プロジェクト)を選択します。

プロジェクト名、場所、インタープリターの種類(venv またはカスタム環境の使用)などの基本情報を入力します。

そして Create(作成)をクリックします。

PyCharm が手間のかかるプロジェクトのセットアップと仮想環境の作成を肩代わりしてくれます。

Gunicorn

プロジェクトが作成されたら、Gunicorn(広く使用されている Python ウェブサーバーゲートウェイインターフェース(WSGI)HTTP サーバー)をインストールします。 Python ウェブアプリケーションの配信に使用されるプリフォークワーカーモデルのウェブサーバーである Gunicorn は、Django や Flask などのウェブフレームワークと組み合わされ、ウェブアプリケーションをデプロイしてインターネットでアクセスできるようにする目的でよく使用されています。

Python Packages(Python パッケージ)ツールウィンドウでは、現在選択されている Python インタープリター用のパッケージを最も素早く簡単にプレビューしてインストールするための手段が提供されています。

このツールウィンドウは、View(表示)| Tool Windows(ツールウィンドウ)| Python Packages(Python パッケージ)から開けます。

Psycopg 2

Psycopg 2 は、PostgreSQL データベースに接続して操作するために使用される Python ライブラリです。 最も一般的なオープンソースリレーショナルデータベース管理システムの一つであり、PostgreSQL を操作するための Python インターフェースを提供しています。 Python 開発者は Psycopg 2 を使用することで、データの挿入、更新、取得のほか、SQL クエリの実行、データベース接続の管理といったさまざまなデータベース操作を Python プログラム内から実行できます。

psycopg2 をインストールする前に、システムレベルの依存関係をインストールする必要があります(macOS の場合は brew install libpq、Linux の場合は apt-get install libpq-dev を使用してインストールします)。

参考: postgresql.org/docs/16/libpq.html

libpq は PostgreSQL のクライアントライブラリです。 クライアントアプリケーションが PostgreSQL データベースサーバーに接続し、操作して管理するために必要な機能を提供する C ライブラリです。

個々の変更が完了したら、settings.py 内の DATABASES に関連するセクションを更新します。

機密性の高い資格情報は必ず環境変数を介して渡すようにしてください。

STATIC_ROOT

Django の STATIC_ROOT は、collectstatic 管理コマンドを実行する際に収集される静的ファイルの格納場所(ファイルシステム上の絶対パス)を指定するために使用される構成設定です。 この静的ファイルには通常、ウェブアプリケーションが使用している CSS、JavaScript、画像、およびその他のアセットが含まれます。 STATIC_ROOT 設定は、本番環境で静的ファイルを配信する上で重要な役割を果たしています。

127 行目で STATIC_ROOT の環境変数が設定されています。 この変数は、Kubernetes 永続ボリュームに続くファイルパスを参照します。 この設定の構成方法については後で説明します。

静的ファイルを収集するには、以下のコマンドを実行します。

python manage.py collectstatic

このコマンドによって静的ファイルが収集され、STATIC_ROOT ディレクトリに配置されます。 すると、これらのアセットを NGINX または Apache ウェブサーバーを通じて直接配信できるようになります。これにより、本番環境向けの配信効率が上がります。

Dockerfile

Dockerfile は、Docker イメージを構築するためのディレクティブを含む単純なテキスト形式テキスト形式のドキュメントです。

1. FROM python:3.11: この行は、Docker Hub の公式 Python 3.11 イメージを使用して、Docker イメージのベースイメージを指定しています。 アプリケーションはプリインストール済みの Python を含むこのベースイメージを基盤に構築され、実行されます。

2. ENV PYTHONUNBUFFERED 1: この行では、環境変数の PYTHONUNBUFFERED1 に設定しています。 Docker コンテナー内で Python を実行する際には、この環境変数を設定して Python による出力のバッファリングを抑制することが一般的に推奨されています。 そうすることで、アプリケーションからリアルタイムにログとデバッグ情報を取得できます。

3. WORKDIR /app: この行では、Docker コンテナー内の作業ディレクトリを /app に設定しています。 後続のすべてのコマンドがこのディレクトリで実行されます。

4. COPY . /app: この行では、現在のディレクトリ(Dockerfile があるディレクトリ)の内容をコンテナー内の /app ディレクトリにコピーしています。 コピーの対象には、アプリケーションコードや Docker イメージに必要なあらゆるファイルが含まれます。

5. RUN pip install -r requirements.txt: この行では pip install コマンドを実行して、/app ディレクトリの requirements.txt ファイルに記載されている Python 依存関係をインストールしています。 このやり方はアプリケーションの依存関係を管理可能にするものであるため、Python アプリケーションではよく採用されています。

6. EXPOSE 8000: この行では、コンテナーがポート 8000 でリッスンしていることを Docker に通知しています。 これは実際にポートを公開しているのではなく、 コンテナーが使用する可能性のあるポートを示すメタデータ宣言です。

7. CMD ["gunicorn", "django_kubernetes_tutorial.wsgi:application", "--bind", "0.0.0.0:8000"]: この行では、コンテナーが起動したときに実行するデフォルトのコマンドを指定しています。 ここでは Gunicorn を使用して Django アプリケーションを配信し、django_kubernetes_tutorial.wsgi:application で定義されている WSGI アプリケーションを使用して、すべてのネットワークインターフェース(0.0.0.0)のポート 8000 でリッスンするように Gunicorn をバインドしています。

DockerHub

hub.docker.com にアクセスし、プラットフォームにログインするか、登録してください。

Create repository をクリックします。

次に、リポジトリ名を指定して Visibility を Public にします。 機微な情報や機密情報を取り扱っている場合は、Visibility を Private にしてください。

リポジトリが作成されたら、Docker イメージをビルドし、そのイメージをレジストリにプッシュする必要があります。

コマンドを実行する前に以下のコマンドを実行して、requirements.txt ファイルを確実に最新の状態にします。

pip freeze > requirements.txt

イメージをビルドするため、以下のコマンドを実行します。

docker build -t mukulmantosh/django-kubernetes:1.0 .

docker build -t /django-kubernetes:1.0 .

このコマンドは個々の環境によって異なり、個人のユーザー名を使用する必要があります。

次はイメージをレジストリにプッシュするため、Docker Hub で認証を行う必要があります。

ターミナルで以下のコマンドを入力してください。

docker login

ユーザー名とパスワードを入力します。 認証に成功したら、以下を実行してイメージをプッシュできます。

docker push mukulmantosh/django-kubernetes:1.0 

docker push /django-kubernetes:1.0 

イメージが正常にプッシュされたら、Docker Hub で変更を確認しましょう。

他にプッシュするイメージがなければ、以下のコマンドを実行してログアウトできます。

docker logout

このイメージをローカルにプルする場合は、hub.docker.com/r/mukulmantosh/django-kubernetes をご覧ください。

Kubernetes の構成: YAML ファイルを作成する

チュートリアルのこのセクションでは、ローカルの Kubernetes クラスターへのアプリケーションのデプロイを説明します。

このチュートリアルでは Docker Desktop を使用しますが、minikube または kind を使用することも可能です。

名前空間

Kubernetes の名前空間は、リソースとオブジェクトをグループ化して分離するために使用されるクラスター内の仮想パーティションです。 単一の物理クラスター内に複数の仮想クラスターを作成するための仕組みです。

名前空間の作成と管理は、Kubernetes のコマンドラインツールである kubectl を使用するか、リソースをデプロイする際に YAML マニフェスト内に名前空間を定義して行います。

  • Docker Desktop を Kubernetes の実行に使用するプラットフォームに選択している場合は、設定にある Enable Kubernetes チェックボックスを必ずオンにして Kubernetes を有効にしてください。

ターミナルで以下のコマンドを実行して名前空間を作成します。

kubectl create ns django-app

K8s でデータベースをデプロイする

まずはローカル環境の Kubernetes クラスター内に PostgreSQL インスタンスを作成しましょう。

PersistentVolume

Kubernetes の永続ボリューム(PV)は、管理者がプロビジョニングしたクラスター内のストレージを構成する要素です。 PV を使用して Pod のライフサイクルとデータの保存を切り離すことで、ストレージリソースの分離度を高めて柔軟な管理と抽象化を実現できます。 そのため、データを使用する Pod が削除されたり、クラスター内の別のノードにスケジュールし直されたりしても、データを残せます。

永続ボリュームを作成して、pv.yml と命名しましょう。

この YAML 構成は、ReadWriteOnce アクセスモードを使用してマウントされ、/data/db にあるノードのファイルシステム上のローカルパスによって提供され、1 ギガバイトの容量を持つ postgres-pv という名前の PersistentVolume リソースを定義しています。 この PV はノードのファイルシステムにあるディレクトリにアクセスする必要がある Pod に永続ストレージを提供するために使用でき、永続ストレージを必要とする PostgreSQL やその他のステートフルサービスなどのアプリケーションに適しています。

本番環境では、AWS RDS や Google CloudSQL などのクラウドソリューションの使用をお勧めします。または、Kubernetes StatefulSets を使用してください。

PersistentVolumeClaim

Kubernetes の PersistentVolumeClaim(PVC)は、Pod が PV から特定のプロパティを指定して特定の量のストレージをリクエストするために使用するリソースオブジェクトです。 PVC は、アプリケーションが基盤となるストレージインフラストラクチャの詳細を認識しなくてもストレージリソースを要求できる手段として機能します。

Kubernetes は PVC を作成して使用することで、基盤となるストレージインフラストラクチャを抽象化しながら、アプリケーションのストレージリソースを動的に割り当てて管理する方法を提供し、コンテナー化された環境でのステートフルアプリケーションの操作と管理を容易にします。

PVC を作成して pvc.yml と命名しましょう。

PVC はストレージリソースをリクエストし、実際のストレージを提供する PV にバインドされます。

この YAML 構成は、django-app 名前空間内に postgres-pvc という PersistentVolumeClaim を定義しています。 ReadWriteOnce アクセスモードの 1 ギガバイトのストレージをリクエストし、manual StorageClass を明示的に指定しています。 この PVC は postgres-pv という名前の既存の PV にバインドされることが意図されています。これは事実上、この PVC を参照する django-app 名前空間内の Pod がそのボリュームを使用するように予約しています。

ConfigMap

Kubernetes の ConfigMap は、キー値ペアに構成データを格納するために使用される API オブジェクトです。 ConfigMap はアプリケーションコードと構成データを分離する手段を提供することで、コンテナーを変更してデプロイし直さずに構成の管理と更新を簡単に行えるようにします。 Kubernetes クラスター内のアプリケーション、マイクロサービス、およびその他のコンポーネントを構成する際に特に役立ちます。

ConfigMap を作成して cm.yml と命名しましょう。

このチュートリアルでは ConfigMap を使用していますが、機密上重要な資格情報はセキュリティを考慮して Kubernetes に格納してください。あるいは、Bitnami Sealed Secres、AWS Parameter Store、HashiCorp Vault などの別の手段を検討することをお勧めします。

Deployment

Kubernetes の Deployment は、アプリケーションのデプロイとスケーリングを管理するために使用されるリソースオブジェクトです。 Kubernetes API グループに属しており、アプリケーションの望ましい状態を宣言的に定義して管理する手法を提供します。

Deployment は、アプリケーション Pod の管理とスケーリングに使用されるより高レベルの Kubernetes リソースです。

この YAML 構成は、django-app 名前空間に postgres という Deployment を定義しています。 永続ストレージを備えた PostgreSQL データベース(バージョン 16.0)の単一のレプリカをデプロイします。 データベース Pod に app: postgresdb というラベルを設定し、ストレージは postgres-pvc という PVC によって提供されています。 PostgreSQL コンテナーの構成と資格情報は、db-secret-credentials という ConfigMap 経由で提供されています。

Service

Kubernetes の Service は、一連の Pod をネットワークサービスとして公開するために使用されるリソースオブジェクトです。 Service は Kubernetes クラスターで実行されているアプリケーションのさまざまな要素間のネットワーク通信を可能にし、クライアントがそれらの要素にアクセスするための安定したエンドポイントを提供します。 Service は基盤となるネットワークインフラストラクチャを抽象化するため、アプリケーションのコンポーネントの接続と検出が容易になります。

この YAML 構成は、django-app 名前空間内に postgres-service という NodePort Service を定義しています。 「app: postgresdb」とラベル付けされた Pod で実行中の PostgreSQL サービスをクラスター内のポート 5432 で公開しています。 外部クライアントはポート 30004 を使用し、任意のノードの IP アドレスの Service にアクセスすることができます。 この Service は、PostgreSQL データベースを Kubernetes クラスターの外部からアクセスする手段を提供しています。

Django アプリケーションの YAML 構成を作成する

PersistentVolume

この YAML は、1 GB のストレージ容量を持つ staticfiles-pv という PersistentVolume を定義し、複数の Pod が読み取りと書き込みを同時に行えるようにしています。 このストレージは、/data/static にあるローカルホストのパスで提供されます。 Django の静的ファイルはこの場所に格納されます。

PersistentVolumeClaim

この YAML は、django-app 名前空間に staticfiles-pvc という PVC を定義しています。 1 GB 以上の容量を持つストレージを 「manual」StorageClass を指定して PV からリクエストし、ReadWriteMany アクセスが必要であることを指定しています。 この要求はストレージのニーズを満たすため、staticfiles-pv という既存の PV に明示的にバインドされます。 こうすることで、django-app 名前空間の Pod がこの PVC を使用し、関連付けられた PV が提供するストレージにアクセスして使用できるようになります。

ConfigMap

この YAML は、django-app 名前空間内に app-cm という ConfigMap を定義し、構成データを格納するさまざまなキー値ペアが含まれています。 この ConfigMap は、django-app 名前空間内の Pod やその他のリソースがデータベース接続情報や静的ファイルパスなどの構成設定にアクセスするために使用されます。

Deployment

この YAML は、django-app 名前空間に django-app-deploy という Deployment を定義しています。 特定の Docker イメージと構成を持つコンテナーを実行する単一のレプリカ(Pod)を作成します。 Pod は PVC によって裏付けられている postgres-db-storagestaticfiles の 2 つのボリュームに関連付けられています。 コンテナーは、app-cm という ConfigMap の環境変数を使用してポート 8000 をリッスンするように構成されています。 データベースストレージと静的ファイルにアクセスできるようにするため、このボリュームはコンテナー内の特定のパスにマウントされます。 この Deployment は Kubernetes を使用して Django アプリケーションを実行する際によく使用されます。

非公開レジストリからイメージをプルしたい場合は、こちらをご覧ください。

Service

Service はポート 8000 をリッスンし、受信トラフィックを app: django-application というラベル付きの Pod に転送します。 これは、同じアプリケーションの複数のインスタンスが実行されている Kubernetes クラスターでウェブアプリケーションの公開と負荷分散を行うための一般的な構成です。 Service により、これらのインスタンス間でトラフィックが均等に分散されます。

NGINX

NGINX は、速度、信頼性、拡張性で知られる高パフォーマンスのウェブとリバースプロキシサーバーです。 ウェブトラフィック、負荷分散、コンテンツデリバリーを効率的に処理するため、ウェブサイトとアプリケーションの配信によく採用されています。

ConfigMap

この YAML は django-app 名前空間内に nginx-cm という Kubernetes ConfigMap を定義しており、キー値ペアを含んでいます。キーは default.conf で、値はリクエストをバックエンドサーバーにプロキシする複数行の NGINX 構成ファイルです。

Deployment

この YAML は、指定のボリュームと構成で NGINX コンテナーを実行する Pod を作成して管理する Deployment を定義しています。 この Deployment により、この Pod の単一のレプリカを常に django-app 名前空間で実行させることができます。 また、デフォルトの NGINX 構成を nginx-cm ConfigMap に置き換えてオーバーライドしています。

Service

この YAML 構成は、django-app 名前空間に nginx-service という Kubernetes Service を作成しています。 app:nginx というラベルを持つ Pod をクラスター内のポート 80 で公開し、各クラスターノードの Service に NodePort 30005 でアクセスできるようにしています。 これにより、外部トラフィックは NodePort サービスを通じて NGINX アプリケーションを実行している Pod に到達することができます。

Kubernetes ジョブでバッチワークロードを管理する

Kubernetes の Job は、単一の処理または有限のタスクを表現するリソースオブジェクトです。 Job はタスクを完了するまで指定された回数だけ実行するように設計されています。

データベースの移行

この YAML 構成は、django-app 名前空間内に django-db-migrations という Kubernetes Job を定義しています。 この Job は Django 移行用のカスタム Docker イメージを使用してコンテナーを実行し、データベース関連ファイルのストレージを提供するために PVC をマウントしています。 Job が失敗した場合は 15 回まで再試行され、完了から 100 秒間は Pod が保持されます。 この Job は PostgreSQL に新しいテーブルを作成します。

静的ファイル

この YAML 構成は、django-app 名前空間内に django-staticfiles という Kubernetes Job を定義しています。 この Job は Django アプリケーションの静的ファイルを収集するためのカスタム Docker イメージを使用してコンテナーを実行し、静的ファイルのストレージを提供するために PVC をマウントします。 Job が失敗した場合は 3 回まで再試行され、完了から 100 秒間はデバッグ目的で Pod が保持されます。 この Job は静的ファイルを monthPath に指定されている /data/static にコピーします。

アプリケーションを起動する

アプリケーションを起動するには、k8s ディレクトリに移動して以下のコマンドを実行します。

アプリケーションをデプロイしたら、以下のコマンドを使用して、実行中の Pod のステータスを確認します。

kubectl get pods -n django-app -w

Django で superuser を作成する

すべてのアプリケーションが実行されるようになったら、Django 管理にログインするための superuser を作成します。

以下のコマンドを実行し、実行中の Pod のリストを取得します。

kubectl get pods -n django-app

コンテナーのシェルに入るには、以下を実行します。

kubectl exec -it -n django-app -- sh

そして、以下を実行します。

python manage.py createsuperuser

superuser を作成できたら、http://127.0.0.1:30005 をブラウザーで開きます。 デフォルトのウェルカムページが開きます。

次に、http://127.0.0.1:30005/admin 経由で Django 管理にアクセスします。

先ほど作成したユーザー名とパスワードを入力します。

認証されると、Django の管理ページが開きます。

localhost:30005/admin からログインしようとすると、403 Forbidden(CSRF)エラーが発生する場合があります。

これは、settings.py ファイルの CSRF_TRUSTED_ORIGINS で解決できます。

CSRF_TRUSTED_ORIGINS は Django の設定で、クロスサイトリクエストフォージェリ(CSRF)対策用に信頼できるオリジンのリストを指定するために使用されます。 CSRF は攻撃者がユーザーを騙し、ウェブアプリケーションに不要なリクエストを無意識に送信させた場合に発生する可能性があるセキュリティ脆弱性です。 これを阻止するため、Django には CSRF 対策が組み込まれています。

CSRF_TRUSTED_ORIGINS を使用すると、CSRF 保護されたリクエストが許可されたオリジン(ウェブサイト)のリストを定義できます。 このリストにないオリジンから送信されたすべてのリクエストは、潜在的に悪意のあるリクエストと見なされ、適切にブロックされます。

この設定は CSRF 攻撃に対するセキュリティを維持しながら、Django アプリケーションへの特定のクロスオリジンリクエストを許可するために使用できます。 アプリケーションが異なるドメインでホストされている他のウェブサービスや API と対話する必要がある場合に特に役立ちます。

Kubernetes Dashboard などの GUI ツールを使用している場合は、実行中の Pod、デプロイ、永続ボリュームなどを簡単に可視化できます。

PyCharm での Kubernetes のサポート

PyCharm は Kubernetes 向けに強化されたエディターとランタイムのサポートを提供しており、Kubernetes の管理を合理化する以下のような一連の機能を備えています。

  • クラスターオブジェクトの閲覧、その構成の抽出と編集、およびその説明。
  • イベントの表示。
  • Pod ログの表示とダウンロード。
  • Pod コンソールのアタッチ。
  • Pod でのシェルの実行。
  • Pod へのポート転送。
  • エディターからのリソース YAML 構成の適用。
  • クラスターからのリソースの削除。
  • クラスターの ConfigMap と Secret の入力の補完。
  • kubectl のパスの構成。
  • グローバルおよびプロジェクト単位でのカスタム kubeconfig ファイルの構成。
  • コンテキストと名前空間の切り替え。
  • 有効なクラスターの API スキーマ(CRD を含む)を使用したリソースマニフェストの編集。

PyCharm Professional での Kubernetes の使用に関する詳細は、こちらの動画をご覧ください。

Kubernetes の業務に PyCharm を無料でお試しください!

参考情報

Kubernetes をしっかり理解できましたか? さまざまなクラウドソリューションを調査し、プログラミングの学習を次のステップに進めましょう。AWS EKSGoogle Kubernetes Engine に関するチュートリアルをご覧ください。

オリジナル(英語)ブログ記事の作者:

Mukul Mantosh

Mukul Mantosh

image description