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 つの主な違い

推薦する

1つの記事で理解する:製品コンセプトとカテゴリーの価値

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますマーケティ...

ウェブサイトのマーケティングアイデアの衝突: 大量のトラフィックか、実際のコンバージョンか?

これは最近友人と話し合っている話題です。トラフィックがあれば、コンバージョンは確実に増加すると多くの...

10.22 多数の医療ステーションが破壊された後、医療ステーションの管理者は何をすべきでしょうか?

今日は10月20日月曜日です。いつものように朝から会社に来ました。パソコンの電源を入れた後、まずウェ...

zvps: ロシアの VPS、Windows 内蔵、無制限のトラフィック

zvps は 2005 年に設立され、チェコ共和国に登録されています (会社登録番号: 290 37...

十分な利益を上げなくても企業は株式を公開できますか? 58とQunarの資金調達の道筋について

Qunarや58.comを含む一部の企業にとって、株式公開は明らかに投資を求め、発展を続けるための重...

Prometeus.com 16周年記念 VPS 50% オフ

クーポンコード SBK50OFF を使用すると、6 月末までサーバー バックアップ (R1soft/...

ウェブサイトへのフレンドリーリンクの重要性と注意すべき事項の詳細な説明

オンラインプロモーションを行う人は、一般的にフレンドリーリンクについて知っています。フレンドリーリン...

仮想化について語る - カーネルとIO

[[211645]]序文時間は流れる水のように、あっという間に過ぎていきます。自分が仮想環境にいるの...

DT時代の新技術と新アプリケーション:2018年不動産CIOがテンセントを訪問

不動産業界も後半に入り、各社は新たなチャンスを模索しています。インターネットの浸透はまるで稲妻のよう...

ロシアのホスティングプロバイダー:Hostlandの紹介、無制限のトラフィックVPS

hostland.ru は、10 年以上の運営歴を持つ老舗ホスティング会社です。ロシア市場では比較的...

6 人の e コマース界の大物: 彼らの特別なスキルは何ですか?

中国ではいくつかの電子商取引の巨大企業が出現しました。各社の戦略はそれぞれ異なりますが、いずれも独自...

テンセントニュースチャンネルを例に、情報サイトの内部リンク構造を分析する

私の友人の多くは、テンセントの QQ ニュース チャンネルをよく知っていると思います。毎日 QQ に...

九夷要がHao123にどのように含まれているかを知るのに半年かかりました

百度傘下のウェブサイトであるhao123は、1999年5月に設立され、中国で最も古いインターネットナ...

機密情報市場は新たな段階に突入、58.com はまだ長い道のり

58.com が米国で上場するというニュースが流れると、すぐにメディアの注目の的となった。残念ながら...