Kubernetes ネイティブ CI/CD パイプラインの使用を開始する

Kubernetes ネイティブ CI/CD パイプラインの使用を開始する
Kubernetes 用の CI/CD を設定するのは困難です。このブログでは、著者が Devtron を使用して k8s ネイティブ CI/CD パイプラインを作成するプロセスについて説明します。

Kubernetes 用の CI/CD パイプラインの設定は複雑です。一度設定すると、チームとインフラストラクチャが急速に拡大すると、CI/CD の管理が非常に困難になる可能性があります。効率的で完全に自動化された CI/CD は、機能をより早く提供するために重要な役割を果たします。 CI/CD を活用することで、アプリケーション チームはコード ベースのベスト プラクティスを確保しながら、より迅速に機能を提供できるようになります。

このブログ記事では、Devtron を使用して CI/CD パイプラインを簡単に作成および管理する方法について説明しますが、その前に CI/CD について簡単に確認しましょう。

CI/CD とは何ですか?

CI は「継続的インテグレーション」の略で、開発者がプッシュした変更を検証およびテストするフェーズです。ここで、すべてのテスト ケース (単体テストや統合テストなど) を実行します。コードベースを検証してテストした後、このステップでソフトウェア成果物を構築できます。たとえば、コンテナ イメージをビルドすることも、バイナリ実行可能ファイルをビルドすることもできます。

CD は「継続的デリバリー」の略で、自動化されたプロセスでソフトウェア成果物を本番環境/ステージング環境にプッシュすることを意味します。この場合、コンテナ イメージをビルドしてコンテナ レジストリにプッシュした後、Devtron の助けを借りて同じイメージを Kubernetes クラスターにデプロイします。

Kubernetes ネイティブ CI/CD とは何ですか?

Kubernetes ネイティブ CI/CD は、Kubernetes クラスターの一部になることでソフトウェア配信ワークフローを活用します。 Kubernetes ネイティブの CI/CD を使用する利点は、ビルド手順がポッド内で実行され、CI 用に外部で他のコンピューティング リソースを構成したり接続したりする必要がないことです。すべてのシークレットと外部認証情報がクラスター内にあるため、セキュリティの観点からこのアプローチが推奨されます。

Kubernetes ネイティブ CI/CD と Devtron

YAML を使用してパイプラインを管理する場合は、ワークフローを記述して繰り返し更新する必要があります。 YAML を理解し、ビルド プロセスを調べ、さまざまな Linux コマンドを学習し、コードを手動でデプロイし、Kubernetes を学習することは、すべて開発者にとって困難です。彼らが求めているのは、直感的でシンプルで、ドメインの専門知識を必要としないものなのです。 Kubernetes についてあまり詳しくなくても、ビルドとデプロイメントを開発、実行、トリガーできるはずです。

これが私たちが Devtron で解決しようとしている問題です。 Kubernetes 上で CI/CD パイプラインをすばやくセットアップおよび管理するのに役立つ直感的なダッシュボードを提供します。 Devtron をインストールし、アプリケーション用の CI/CD パイプラインをいくつか設定しましょう。

Devtron のインストールについては、インストール ドキュメントを参照してください。 Devtron をインストールした後、ローカル マシンにインストールしたダッシュボード URL を取得するために Devtron サービスをポート転送します。

 kubectl -n devtroncd port-forward service/devtron-service 8000:80 &

その後、ローカルホストのポート 8080 で Devtron ダッシュボードにアクセスできるようになります。

CI/CD パイプラインをデモンストレーションするために、GitHub リポジトリで Devtron が提供する nodejs デモ アプリケーションを使用しましょう。

これが完了したら、アプリケーションのグローバル構成を設定する必要があります。グローバル設定を設定するには、ドキュメントを参照してください。

ステップ1: GitOpsを有効にする

GitOps を有効にするには、グローバル構成に移動し、任意の Git プロバイダーで認証します。私たちの場合は、GitHub を使用しました。すべての GitOps 構成に対して新しい GitHub 組織を作成することをお勧めします。

ステップ2: アプリケーションを作成する

それでは、Devtron で最初のアプリケーションの作成に移りましょう。アプリケーション名 (例: demo-application) を入力し、プロジェクト (例: devtron-demo) を割り当てて、「アプリの作成」をクリックします。

ステップ3: GitHubリポジトリとビルド構成を追加する

次のステップは、ソース コードがホストされている Git リポジトリ URL を追加することです。プライベート リポジトリからアプリケーションをデプロイする場合は、Git アカウントのドキュメントを参照してください。

リポジトリの設定が完了したら、ビルド構成を設定する必要があります。コンテナ イメージをプルおよびプッシュするには、ビルド構成が必要です。レジストリを変更して、docker、ECR、GCR などを使用できます。これは、グローバル構成のコンテナ レジストリから構成できます。

Buildpacks が統合されたので、コードから直接 OCI 準拠のコンテナ イメージを構築できるようになりました。

プラットフォーム固有のイメージをビルドする場合は、ビルド構成で行うことができます。

ステップ4: 基本展開テンプレートを構成する

基本デプロイメント テンプレートは、すべての魔法が起こる場所です。 Devtron は、Kubernetes 構成の複雑さをすべて抽象化し、テンプレートを Helm チャートにパッケージ化することで、きめ細かい構成を公開します。デプロイメント テンプレートには、本番環境レベルのマイクロサービスに必要なほぼすべての主要な構成が含まれており、基本 (GUI モード) と詳細 (YAML 構成) の 2 つの表示オプションが用意されています。

ContainerPort を構成したり、リクエストと制限のデプロイメントを設定したり、環境変数を提供したりできます。また、Devtron がデプロイメント中に使用および上書きする詳細な YAML 構成を取得できる高度なオプションもあります。以下はデプロイメント テンプレートの概要です。

事前定義されたテンプレートを少し調整するだけで、Horizo​​ntal Pod Autoscaling、Ingress、Security Context、Keda Autoscaling、ボリュームマウント、その他の Kubernetes 構成を構成できます。 Devtron のデプロイメント テンプレートを使用すると、Kubernetes 構成用の大規模な YAML ファイルを作成する必要がなくなります。

ステップ5: CI/CDパイプラインを作成してトリガーする

デプロイメント テンプレートを構成したら、CI/CD ワークフローを構築できます。継続的インテグレーションの構成に移りましょう。パイプラインを作成するさまざまな方法の詳細については、ワークフロー エディターのドキュメントをお読みください。この例では、Devtron Dashbからビルドしてデプロイします。

それでは、CI ビルド パイプラインを作成し、パイプラインの詳細を構成しましょう。 CI パイプラインでは、脆弱性スキャン、ビルド前/後のステージ、ソース タイプ用のビルド イメージ、ブランチの固定、正規表現、プル リクエストまたはタグの作成などを構成できます。

ビルド パイプラインを作成したら、デプロイメント パイプラインを作成しましょう。同じページの + アイコンを使用して、デプロイメント パイプラインを追加します。 Devtron を使用すると、シーケンシャル パイプラインでも、同じビルドから複数の環境にデプロイする場合でも、必要な数のパイプラインを作成できます。

デプロイメント パイプラインデプロイメント前/後の段階で、ローリング、再作成、ブルーグリーン、カナリアなど、すぐに使用できる統合デプロイメント戦略を構成できます。また、同じアプリケーション内の異なる環境に対して異なるデプロイメント戦略を選択することもできます。デフォルトのデプロイメント戦略「ローリング」を次の図に示します。

このブログでは、ブルーグリーン展開戦略について引き続き説明します。デプロイメント戦略の構成を確認し、ユースケースに基づいて変更を加えることができます。この構成の変更は、他のすべての展開戦略に適用されます。

CI パイプラインと CD パイプラインを構成すると、パイプライン全体は次のようになります。同じアプリケーション内で、さまざまな環境やビルド タイプに対して、異なる構成を持つ複数のワークフローを作成できます。

面白いですね! !

パイプラインが作成されたので、パイプラインをトリガーする必要があります。そのためには、[ビルドとデプロイ] セクションに移動する必要があります。

イメージをビルドするには、「マテリアルの選択」をクリックし、ビルドするイメージを選択して、「ビルドの開始」をクリックします。

ビルドが開始されると、ビルド プロセスのログをチェックでき、ビルドが成功すると、アーティファクト セクションでビルドされたイメージを確認できます。また、次の画像に示すように、ダッシュボードで必要なすべての監査情報とともに以前のビルドを確認することもできます。

デプロイメント パイプラインをトリガーしましょう。イメージ ビルド パイプラインが正常に選択されると、ページに [ビルドとデプロイ] オプションが表示されます。イメージを選択し、「デプロイ」をクリックします。デプロイメントが開始されたコミットとセキュリティの詳細を検査することもできます。デプロイメントが開始されると、Devtron は各デプロイメントのすべてのステージと K8s 構成の詳細を提供します。また、CD パイプラインでは、次の図に示すように、デプロイメントに関するすべての監査情報を取得します。

ステップ6: アプリケーションの詳細

アプリケーションをデプロイすると、アプリの詳細で表示できるようになります。ワークロードとアプリケーション メトリックに関するすべての正常性関連情報は、[アプリの詳細] タブから簡単に監視できます。

アプリケーションを正常にデプロイすると、アプリケーションに関するすべての情報を 360 度表示し、ログの表示、ターミナルでの実行、マニフェストやイベントの確認など、さまざまなポッド操作を実行できるようになります。また、複数のコンテナ ログを grep できる Logs Analyzer も付属しています。また、特定のアプリケーションに関連付けられているすべての Kubernetes リソースをグループ化して表示するので、デバッグや監視に非常に便利です。

結論は

このブログでは、Kubernetes CI/CD について学び、Devtron を使用してわずか 3 分ですべてのベスト プラクティスと GitOps を簡単に設定する方法を学びました。 Kubernetes CI/CD をすばやくセットアップする主な利点の 1 つは、コードベースの構築と継続的なテストを自動化することで、リリース プロセス全体を高速化できることです。開発者は手動でビルドやテストを行う必要がありません。高速で信頼性が高く、効率的な Kubernetes CI/CD により、より優れた製品とユーザーの満足度が向上します。

<<:  急速に台頭するクラウドデータアーキテクチャ

>>:  AWS ECS と AWS Lambda: 5 つの主な違い

推薦する

ウェブサイトが格下げされた理由は、外部リンクの大量投稿に関連している可能性がある。

Baidu は外部リンク、バックリンク、リンクの不正行為を繰り返し取り締まってきたため、最近多くのウ...

バイラルマーケティングを簡単にマスターする方法

Xiang Yancong は、バイラル マーケティングについて話すとき、誰もが私と同じように興奮す...

SEO実践日記: キーワードの3Wインデックスを突破する方法

私は長い間 SEO 業界に携わってきたわけではないので、SEO に関する理解は特に深いわけではありま...

ウェブサイトをタイムリーなウェブサイトにする方法を教える3つのステップ

みなさんこんにちは。私はMuzi Chengzhouです。タイムリーなウェブサイトは常に注目されてき...

GPU クラウド サーバーを AI インフラストラクチャに統合するにはどうすればよいでしょうか?

GPU クラウド サーバーは、グラフィック プロセッシング ユニットを利用して高性能タスクを処理する...

広州:大学生がオンラインショッピングモールを立ち上げ、半年で売上高が20万近く

卒業シーズンがまた近づいてきた。卒業生の大半が就職に苦労する中、華南理工大学を2010年に卒業した張...

gcoreはどうですか? gcore 韓国 VPS 簡単評価、データ共有

gcoreはどうですか? gcore Koreaはどうですか? gcore 韓国 VPS はどうです...

Yecao Cloud: 香港 VPS は年間 138 元 (50M 帯域幅)、香港専用サーバーは月額 299 元 (30M 帯域幅) から

Yecaoyun は、古いものに別れを告げ、新しいものを歓迎するために、香港の VPS と香港の独立...

ハイパースケールクラウドコンピューティングプロバイダーはAIクラウドサービスへの投資に注力している

今日、AI クラウド サービスは、データ サイエンティストや開発者を惹きつけ、自社のプラットフォーム...

Techmeme はどのようにしてテクノロジー業界にとって必読のニュース ウェブサイトになったのでしょうか?

[概要]Techmeme は、多数のテクノロジー企業の幹部やベンチャーキャピタリストを引き付けていま...

Dreamweaver のドキュメント アンカー テキスト リンクの数に対する解決策

Dedecms ドキュメントのキーワードメンテナンスにおける頻度とは何を意味しますか? インターネッ...

新時代のブランドマーケティング戦略!

はじめに:需要がある限り、関連ビジネスが次々と生まれます。今日の消費時代は、消費シーンが活況を呈して...

新しいブランドマーケティングのための3つのコミュニケーション手法!

インターネット時代では、消費者の意思決定パターンは大きく変化しており、実際にどのコミュニケーション方...