Podman Desktop を使った Kubernetes コンテナーのデプロイとテスト

Red Hatでソリューションアーキテクトをしている田中司恩(@tnk4on)です。

この記事は Red Hat DeveloperDeploy and test Kubernetes containers using Podman Desktop を、許可をうけて翻訳したものです。

本記事で紹介する Podman や Podman Desktop に関する情報を日本語で紹介するTwitter アカウントがあります。こちらもフォローして情報収集に活用ください。(ハッシュタグ #podmanjp)


https://developers.redhat.com/sites/default/files/styles/article_feature/public/intro_podman_2x.png?itok=6alfmwfn

Podman Desktop現在一般公開中)は、コンテナー化されたアプリケーションをローカルで構築、実行、管理するための素晴らしいツールですが、現実の環境では、Kubernetes などのコンテナーオーケストレーションプラットフォームにアプリケーションをデプロイすることが必要です。エンタープライズグレードの Kubernetes を探しているのであれば、Red Hat OpenShift をおいて他にないでしょう。

Podman Desktop の OpenShift 拡張機能を使って、デスクトップから Red Hat OpenShift の無償の Developer Sandboxにコンテナー化したアプリケーションをデプロイしてテストしてみましょう。

はじめに

Podman Desktop(図1)をまだインストールしていない場合は、podman-desktop.io にアクセスして、Windows、macOS、Linux に対応する最新リリースをお使いのマシンにダウンロードしてください。

https://developers.redhat.com/sites/default/files/podman-desktop.png

図1: Podman Desktop のダッシュボード

このチュートリアルでは、Developer Sandbox for Red Hat OpenShift の拡張機能を使い、コンテナー化されたアプリケーションを無料のクラウドベースの OpenShift クラスターに 30 日間デプロイすることができます。この拡張機能を使用すると、Developer Sandbox に簡単にサインアップでき、ローカルにインストールしたり Podman Desktop を離れたりすることなく、ホストされた OpenShift 環境に Pod や YAML を簡単にデプロイできます。

OpenShift 拡張機能をインストールする

Podman Desktop 用のDeveloper Sandbox 拡張機能 をインストールするには、Podman Desktop の左下にある Settings ボタンに移動します。次に、左側のメニューから Extentions を選択します。そこから、機能拡張のリストから Developer Sandbox 拡張機能をインストールします(図2)。Podman Desktop には、OCI イメージや Docker Desktop extensions から新しい拡張機能をインストールする機能もあります!

https://developers.redhat.com/sites/default/files/podman-desktop-extensions.png

図2:Desktop Extensions タブから Podman Desktop 用の OpenShift 拡張機能をインストールする

ボタンをクリックして Developer Sandbox 拡張機能をインストールすると、パネルの左側の Extensions セクションの下に新しいセクションがあることに気付きます。Red Hat Developer Sandbox 拡張機能(図3)をクリックすると、拡張機能のステータスに関連する情報 (拡張機能の起動、停止、または削除も可能) が表示されます。

https://developers.redhat.com/sites/default/files/podman-desktop-extension-status.png

図3: インストールされた Developer Sandbox 拡張機能の詳細を見る

Developer Sandbox に登録して接続する

このチュートリアルでは、Developer Sandbox for Red Hat OpenShift を使用して、アプリケーションをデプロイしてテストするための無料のOpenShift クラスターを 30 日間入手できます。始めるには、Settings の左側にある Resources セクションにアクセスしてください。ここで、OpenShift の認証トークンを使って Developer Sandbox 環境に接続することができます。とりあえず、図4のように、Sign up for the Developer Sandbox というリンクをクリックしてみましょう。(既に Developer Sandbox インスタンスを持っている場合は、次のセクションにスキップできます)。

https://developers.redhat.com/sites/default/files/podman-desktop-sandbox-signup.png

図4:Resources タブのリンクをクリックして、Developer Sandbox のサインアップページに移動する

Developer Sandbox for Red Hat OpenShift では、14 GB の RAM と 40 GB のストレージを備えた共有 OpenShift および Kubernetes クラスターに無料でアクセスできます。Red Hat アカウントを使ってログインし、電話認証プロセスを完了するだけです (図5)。

https://developers.redhat.com/sites/default/files/developer-sandbox-signup.png

図5: Red Hat OpenShift の Developer Sandbox にログインする

Developer Sandbox にログインしたら、Podman Desktop を OpenShift クラスターに接続します。OpenShift クラスターの右上で、Red Hat ユーザー名の下のドロップダウンメニューを選択し、Copy login command. をクリックします。Display token ボタンをクリックしてクラスターの URL とトークンを表示し、図6 に示すようにコマンド全体をコピーします。

https://developers.redhat.com/sites/default/files/developer-sandbox-authentication-token.png

図6: OpenShift Web コンソールから OpenShift 認証トークンを取得する。

Podman Desktop に戻り、Resources 設定ページで Create new Developer Sandbox を選択します。ここで、Podman Desktop 内で簡単に見つけられるように Developer Sandbox インスタンスのコンテキスト名を設定し、OpenShift Web コンソールから完全なログインコマンドを貼り付けます。準備ができたら、Create ボタンをクリックして Red Hat OpenShift クラスターに認証するだけです (図7)。

https://developers.redhat.com/sites/default/files/podman-desktop-new-sandbox.png

図 7: OpenShift クラスターに認証します。

OpenShift クラスターにアプリケーションをデプロイする

Podman Desktop の Developer Sandbox 拡張機能を使って OpenShift クラスターに接続できたら、いよいよコンテナー化されたアプリケーションをデプロイしましょう。このガイドでは、Containerfile からコンテナーイメージをビルドすることは取り上げませんが、Podman Desktop を使って、Developer Sandbox にデプロイする前にコンテナーレジストリからイメージをプルダウンすることができます。

コンテナーレジストリーからイメージを Pull する

Docker Hub に似たオープンソースのパブリック・コンテナー・レジストリである Quay.io からイメージのサンプルを Pull しましょう。Podman Desktop の左側のパネルから Images タブを選択します。ここで、Podman Desktop の右上にある Pull an image を選択します。

Pull する画像には、quay.io/rhdevelopers/quarkus-demo:v1 というタグが付いた基本的な Quarkus のデモアプリケーションを使用できます。Pull image を選択して、ダウンロードを開始します(図8)。

https://developers.redhat.com/sites/default/files/podman-desktop-quarkus-image.png

図8:Podman Desktop を使って画像を Pull する

イメージを Podman Desktop に Pull すると、イメージをコンテナーとして実行したり、イメージを削除したり、イメージの履歴を表示したりできるようになります。Developer Sandbox にデプロイする前に、このコンテナーをローカルでチェックしてみましょう。ローカルでテストすることで、デプロイする前に Kubernetes や OpenShift 環境でアプリケーションがスムーズに動作することを確認できます。

左メニューの Images セクションに戻って、新しくダウンロードしたイメージを選択し、図9 に示すように、Run Image アイコンをクリックします。ここでは、デフォルトの構成を選択し、Start を選択する。次に、Containers セクションから新しいコンテナーを選択すると、ログ、ターミナルを使用したコンテナーのシェルへのアクセス、さらにはコンテナーのクラスター上に実行中のポッドを作成するために必要な Kubernetes YAML など、実行中のコンテナーに関するさまざまな情報を表示できます。

https://developers.redhat.com/sites/default/files/podman-desktop-run-container.png

図 9: 実行中のコンテナーのテストと詳細表示

Developer Sandbox にコンテナーをデプロイする

コンテナーの実行または停止が完了したら、ローカルの kubeconfig ファイルに登録されているクラスター情報を使用して、Developer Sandbox にデプロイします。その前に、まず Podman Desktop Tray をクリックして Kubernetes を選択し、Developer Sandbox コンテキスト(または別のカスタム名)を選択して、正しい Kubernetes ネームスペースを選択したことを確認しましょう。図10 を参照してください。Podman Desktop に戻って、Deploy ボタン(ロケットの絵文字)を選択し、クラスター上に Kubernetes Pod を生成します。

https://developers.redhat.com/sites/default/files/podman-desktop-deploy-kubernetes_0.png

図 10: Kubernetes コンテキストの切り替えと Pod のデプロイ

デフォルトで生成された Pod 名を使用し、Kubernetes YAML を確認し、Create OpenShift routes を選択し、Deploy を再度クリックすると、Developer Sandbox 上で Pod の作成プロセスが開始されます(図11)。Developer Sandbox 拡張機能は、このコンテナーをクラスターにデプロイする際のDeployment、Service と Route の作成を処理します。

https://developers.redhat.com/sites/default/files/podman-desktop-deploy-button.png

図 11: Deploy をクリックすると、Developer Sandbox に Pod が作成される

OpenShift ウェブコンソールを使ってデプロイ状況を確認する

Podman Desktop 用の Developer Sandbox 拡張機能を使用してコンテナーがクラスターにデプロイされたので、OpenShift ウェブコンソールを見て、すべてが正しく見えることを確認してみましょう。

Developer Sandboxに戻って、Developer ビューに向かい、左側のメニューから Topology タブを選択します。ここには、新しい Quarkus アプリケーションのデプロイメント、作成されたばかりのサービス、実行中の Pod 、アプリケーションにアクセスするために作成された Route へのリンクに関する詳細が表示されます(図12)。リンクを選択して、ブラウザでアプリケーションを表示します。

https://developers.redhat.com/sites/default/files/developer-sandbox-verify-deplopyment.png

図12:ブラウザでアプリケーションを表示する。

さらに、Podman Desktopを使ったときと同じように、Pod名を選択してメトリクスやログなどの関連する詳細を表示したり、ターミナルを使ったりすることもできます(図13)。

https://developers.redhat.com/sites/default/files/developer-sandbox-pod-logs.png

図 13: OpenShift ウェブコンソールで Pod の詳細を表示する。

まとめ

おめでとうございます!Developer Sandbox 拡張機能を使って Podman Desktop から直接、無償の Developer Sandbox for Red Hat OpenShift にコンテナーイメージをデプロイする方法を学びました。詳しくは Podman Desktop documentation をご覧ください。

Red Hat Developer のその他の Podman とコンテナーのリソースも参照してください。

関連の記事

関連のコンテンツ

* 各記事は著者の見解によるものでありその所属組織を代表する公式なものではありません。その内容については非公式見解を含みます。