Kubernetes 開発の簡素化: Docker Desktop + Red Hat OpenShift

Red Hat Summit ウィークであり、これを機会に Docker と Red Hat のパートナーシップのいくつかの側面を強調したいと考えました。 この投稿では、Docker DesktopとRed Hat OpenShiftに焦点を当てます。 別の投稿では、 Docker HubでのRed Hatのユニバーサルベースイメージのプルが前年比で160%増加したことについて話します。

なぜ Docker Desktop + Red Hat OpenShift なのか?

Docker Desktop + Red Hat OpenShift を使用すると、Red Hat OpenShift に依存する 何千もの企業が 、2,000 万人以上のアクティブな開発者がすでに知っていて信頼している Docker Desktop プラットフォームを活用して、日々の摩擦を排除し、結果を出すことができます。

紫色の背景にオープンシフトという言葉を持つ赤い帽子のロゴ

それが解決する問題

スプリントのデモに比べてコーディングが簡単で、全員の承認を得て前進できるように感じる場合があります。 Docker Desktop は、Mac および Windows ローカル環境でのコンテナ化されたアプリケーションの開発、使用、テストを容易にするためにヤクシェービングを行い、Docker Desktop 用の Red Hat OpenShift 拡張機能は、ワンクリックで Red Hat のクラウドコンテナプラットフォームにプッシュします。

Docker Desktop 用の Red Hat OpenShift 拡張機能の特に便利な使用法の 1 つは、作業の迅速なプレビューや共有であり、アクセスのしやすさと CI を待たずにスムーズにデプロイすることで、開発プロセスの早い段階でサイクルタイムを短縮し、完全な CI と本番デプロイメントに至るまでの迅速なイテレーションが可能になります。

はじめ

Docker デスクトップをまだインストールしていない場合は、 Docker の使用開始に関するガイドを参照してください。

拡張機能のインストール

Red Hat OpenShift 拡張機能は、 Docker Extensions Marketplace にある多くの拡張機能の 1 つです。[ インストール ] を選択して拡張機能をインストールします。

オープンシフトの検索を示すドッカー拡張機能マーケットプレイスのスクリーンショット

👋 プロのヒント: マーケットプレイスにない拡張機能のアイデアがありますか? 自分で構築 して、 それについてお知らせください! または、それについて教えてくれず、内部使用のみのために保管してください—会社またはチーム固有のワークフロー用のプライベートプラグインも重要です。

拡張機能で OpenShift クラスターにサインインする

Red Hat OpenShift クラスター Web コンソール内で、ユーザーメニューから copy login コマンド を選択します。

ユーザーメニューで「ログインコマンドのコピー」が選択されているRed Hat openshift クラスター Web コンソールのスクリーンショット

👋 OpenShift クラスタをお持ちではありませんか? Red Hat は、クラスターへの即時アクセスやガイド付きチュートリアルなどを提供する開発者サンドボックスプログラムにより、OpenShift の探索と開発をサポートしています。 サインアップするには、 開発者サンドボックス ポータルにアクセスします。

これにより、Red Hat OpenShift 拡張機能などで使用できる Kubernetes コンテキスト を取得するために使用できる詳細が記載されたページが表示されます。

発行された API トークンのスクリーンショット

そこから、Docker Desktop の Red Hat OpenShift 拡張機能に戻ることができます。 [OpenShift へのデプロイ] 画面では、Kubernetes コンテキストを変更またはログインできます。ログイン画面で、前のトークンとサーバーURLを含む行全体を oc login 貼り付けます。

「オープンシフトにログイン」ダイアログボックスのスクリーンショット

最初のデプロイ

拡張機能の使用は、インストールするよりもさらに簡単です。必要なのはコンテナ化されたアプリだけです。 サンプルのレーシングゲームアプリは 、 Dockerfile(ドキュメント)と OpenShift マニフェスト ( ドキュメント ) を使用する準備ができており、プレイするのは楽しいことです。

開始するには、 https://github.com/container-demo/HexGL クローンを作成します。

👋 上級者向けのヒント: コンテナー化したいアプリはありますか? Docker に 新しく導入された docker init コマンドは 、Dockerfile、マニフェストの作成、および .dockerignore ファイル。

イメージをビルドする

サンプルのレーシングゲームアプリのローカルクローンを使用して、コマンドラインのリポジトリに入力し、cd そこでイメージをビルドします。

docker build --platform linux/amd64 -t sample-racing-game .

このフラグは --platform linux/amd64 、Apple Silicon/ARM CPU を搭載した Mac からビルドしている場合でも、x86 互換イメージを強制します。 -t sample-racing-game SHA256よりも認識しやすいもので画像に名前を付けてタグ付けします。最後に、末尾のドット (".") は、現在のディレクトリからビルドするように Docker に指示します。

Docker バージョン 23 以降では、 docker build BuildKit を活用して、パフォーマンスの向上、キャッシュの向上、 シークレットの構築 などのサポートにより、開発者としての生活をより簡単かつ安全にしています。

イメージをローカルでテストする

イメージをビルドしたので、ローカルでテストできます。 以下を使用してイメージを実行するだけです。

docker run -d -p 8080:8080 sample-racing-game

そして、ブラウザを開いて http://localhost:8080/ 結果を確認します。

OpenShift へのデプロイ

イメージがビルドされたら、クラスターでテストします。 最初にレジストリにプッシュする必要さえありません。

Docker Desktop の Red Hat OpenShift 拡張機能にアクセスし、新しいサンプルレーシングゲームイメージを選択して、アクションボタンのプルダウンから [OpenShift にプッシュしてデプロイ ] を選択します。

サンプルレーシングゲームがデプロイ用に選択されたopenshiftページへのデプロイのスクリーンショット

[OpenShift にプッシュしてデプロイ] アクションは、最初に別のレジストリにプッシュすることなく、イメージを OpenShift クラスターの内部プライベート レジストリにプッシュします。これはプライベート レジストリの代わりにはなりませんが、反復ビルドを保持する予定がない反復開発には便利です。

ボタンをクリックすると、拡張機能は意図したとおりに実行し、進行状況について最新の状態に保ちます。

サンプルレーシングゲームのデプロイの進行状況を示す openshift ページへのデプロイのスクリーンショット

最後に、拡張機能はアプリのURLを表示し、デフォルトのブラウザを開いてそれを披露しようとします。

青とオレンジのレーシンググラフィックを含むレーシングゲームデモアプリのスタートページのスクリーンショット

クリーンアップ

アプリを使い終わったら、または再デプロイを試みる前に、Web ターミナルを使用して、このワンライナーを使用してデプロイのすべてのトレースを行います。

oc get all -oname | grep sample-racing-game | xargs oc delete
削除されたファイルを示すWebターミナルコマンドのスクリーンショット

これにより、後で同じ名前空間に再デプロイしようとした場合に、リソースやエラーを不必要に使用するのを回避できます。

だから。。。わかったこと

Red Hat OpenShift 拡張機能を使用すると、Docker Desktop から OpenShift クラスターにワンクリックでデプロイできます。 イテレーションを加速する方法として、スプリントのデモと承認のために共有クラスターで反復作業をプレビューする場合に特に便利です。

上記の手順では、拡張機能をインストールして構成し、イメージをビルドして、最小限のクリックでクラスターにデプロイする方法を示しました。 DockerとRed Hatで次に構築するものを示し、 Twitterまたは meで@dockerタグを付けてください@ [メール保護] 共有してください!

詳細情報

ドッカーと接続する