Rancher アプリケーション ストアに基づく K8s サービスのワンクリック アップグレード ソリューションの紹介

Rancher アプリケーション ストアに基づく K8s サービスのワンクリック アップグレード ソリューションの紹介

著者:郭 洋勇、所属:成都ビジネスサポートセンター、スマートホームオペレーションセンター

ラボガイド

クラウド コンピューティングが徐々にクラウド ネイティブへと移行するにつれて、従来のエンタープライズ アプリケーションがコンテナーに変換され、K8s クラスターに移植されるケースが増えています。クラウドネイティブの DevOps アプリケーション開発モデルにより、アジャイルなアプリケーション開発を実現し、ビジネスアプリケーションの反復速度を向上させ、ユーザーのニーズに効率的に対応することができます。従来のクラウド コンピューティング プラットフォームとは異なり、クラウド ネイティブ アプリケーションは、ssh やその他の方法を介してクラウド ホスト上で名前空間操作を直接実行することはできず、Jenkins や Gitlab-CI などの従来の継続的デリバリー ミドルウェアに接続するには、いくつかの変更が必要になります。

パート01 概要

K8s は、業界では Kubernetes の一般的な略語です。これは、Cloud Native Foundation (CNCF) の中核製品です。クラウド ネイティブ コンテナーを管理およびオーケストレーションするためのオープン ソース ソフトウェア システムのセットが含まれています。クラウド ネイティブのコンテナ化された展開、計画、更新、監視、メンテナンスのための完全な機能セットを提供します。 K8s 上に構築されたクラウド ネイティブ プラットフォームは、プロジェクトと名前空間に基づいて、アカウント権限とリソース構成の分離を適切に実現できます。 CNCF の最新の統計によると、世界のバックエンド開発者の 31%、つまり 560 万人以上が現在 K8s を使用しています。 K8s は、クラウド ネイティブ変換に最適なソリューションになりました。

Rancher は、ハイブリッド クラウド + ローカル データ センターでの K8s クラスターの集中的な展開と管理を可能にする、オープン ソースのエンタープライズ レベルのマルチ クラスター K8s 管理プラットフォームです。コンテナを使用するチームに完全なソフトウェア スタックを提供し、あらゆるインフラストラクチャ アーキテクチャにわたって複数の K8s クラスターを管理する際の運用上およびセキュリティ上の課題を解決します。 Rancher は、統合された K8s クラスター管理ページを提供することに加えて、ユーザーが継続的デリバリー プラットフォームに接続できるようにするための非常に完全な API も提供します。 Rancher 管理ページは、K8s オープンソース コミュニティのもう 1 つの重要なツールである Helm と組み合わせて、K8s アプリケーションのワンクリック自動アップグレードを実現できます。 Helm は Kubernetes (https://v2.helm.sh) を管理するためのアプリケーション管理ツールであり、centos の yum、python の pip、node の npm に相当します。

パート02 実装方法

以下では、Rancher2.6.3を例に、RancherのAPIを介してK8sアプリケーションのワンクリックアップグレードを実装する方法を段階的に紹介します。まず、API ドッキングの前に、アプリ ストアに基づいた初期化操作を完了する必要があります。初期化操作には以下が含まれます。

1. オーケストレーションされた Helm 構成ファイル パッケージを統合 Helm アプリケーション ストアにプッシュし、 「アプリケーション ストア => アプリケーション ストアの追加」を通じて Helm アプリケーション ストア構成を Rancher のストア設定に追加します。

2. アプリストア設定を追加した後、 「App Store =》起動」からアプリリストを表示または更新し、起動するアプリを選択し、名前空間を指定してインストールすることができます。

次に、Rancher 管理ページからアプリケーション リストの更新、アプリケーションのアップグレード、アプリケーションのロールバックに関連する API インターフェイス URL を表示して確認し、API インターフェイス呼び出しに必要な認証トークンを作成する必要があります。詳細な操作は次のとおりです。

1. Rancher の機能メニュー => API とキーから、 API キーを作成し、API キーのスコープを指定します。

2. Rancher 管理ページに移動し、「App Store => 管理 => API ビュー => 更新」をクリックして、 App Store リストを更新するための API をチェックして確認します。

ストア リストを更新するための API は比較的シンプルで、具体的な形式は次のとおりです。

 curl -H"認証:ベアラー {API_KEY}" \
-X ポスト \
-k --接続タイムアウト 20 -m 30 --再試行遅延 2 --再試行 3 \
{Rancher_Domain}/v3/projectCatalogs/{Project_ID}:{APP_Store}?action=refresh

変数フィールドでは、API_KEY は最初の手順で作成された API キー、Rancher_Domain は Rancher ページのドメイン名、Project_ID はアプリケーション ストアが動作するプロジェクトの ID、APP_Store は更新する必要があるアプリケーション ストアの名前です。

3. 「App Store => アプリリスト => API ビュー => アップグレード/ロールバック」に移動して、アプリに関連する API インターフェース情報を確認します。

アプリケーション更新 API は少し複雑ですが、いくつかの重要な変数フィールドを変更するだけで済みます。具体的な形式は次のとおりです。

 curl -H "認証:ベアラー {API_KEY}" \
-d "{"externalId":"catalog://?catalog='{APP_Store}'&template='{APP_Name}'&version='{APP_Version}'", "forceUpgrade":true, "valuesYaml":""}'"\
-X POST -k --接続タイムアウト 20 -m 30 --再試行遅延 2 --再試行 3 \
{Rancher_Domain}/v3/project/local:{プロジェクトID}/apps/{プロジェクトID}

変数フィールドでは、API_KEY は最初の手順で作成された API キー、Rancher_Domain は Rancher ページのドメイン名、Project_ID はアプリケーション ストアが適用されるプロジェクトの ID、APP_Store は更新する必要があるアプリケーション ストアの名前、APP_Name はアップグレードする必要があるアプリケーションの名前、APP_Version はアップグレードのターゲット バージョン番号です。

最後に、アプリケーション関連の API URL と API キーに基づいて、アプリケーション リストの更新とアプリケーションのアップグレード/ロールバックのスクリプトを記述できます。スクリプトには以下が含まれます。

- アプリケーションリスト更新スクリプト

 curl -H"認証:ベアラートークン-pggq6:zlr95srxvb88vqdtctrt8h2d5k79k94h964x2vxvmhf7zk754ltskz" \
-X ポスト \
-k --接続タイムアウト 20 -m 30 --再試行遅延 2 --再試行 3 \
https://rancher.5gvr.komect.com/v3/projectCatalogs/p-6rt82:vr-chartmuseum?action=refresh

- アプリケーションアップグレードスクリプト

 curl -H "認証:ベアラートークン-pggq6:zlr95srxvb88vqdtctrt8h2d5k79k94h964x2vxvmhf7zk754ltskz" \
-d "{"externalId":"catalog://?catalog='vr-chartmusem'&template='cmvr-ingress'&version='1.0.0.beta'", "forceUpgrade":true, "valuesYaml":""}'"\
-X POST -k --接続タイムアウト 20 -m 30 --再試行遅延 2 --再試行 3 \
https://rancher.5gvr.komect.com/v3/project/local:p-6rt82/apps/p-6rt82

この時点で、Rancher がアプリケーション リストとアプリケーションのアップグレードに必要な API 呼び出しを自動的に更新するためのスクリプトの作成が完了しました。 K8s アプリケーションの自動グレースケール アップグレードを実現するには、Jenkins や Gitlab-ci などの継続的リリース ミドルウェアのジョブに関連スクリプトを統合するだけで済みます。従来の ssh スクリプト操作と比較して、より安全で効率的です。

もちろん、アプリケーション リストの更新とアプリケーションのアップグレードのための上記の 2 つの API に加えて、必要に応じて、Rancher 管理ページを通じて Deployment、Statefulset、または特定の Pod 専用の API インターフェースを学習し、より自動化された運用および保守機能を拡張することもできます。

参考文献

[1]100枚未満のスライドでKubernetesをわかりやすく解説 https://collabnix.com/demystifying-kubernetes-in-less-than-100-slides/

[2]CNCFランドスケープガイド https://landscape.cncf.io/guide#orchestration-management--scheduling-orchestration

[3] Rancher中国語ドキュメント https://docs.rancher.cn/​

<<:  IDC: 世界のパブリッククラウドサービスの収益は2021年に29%増加し、4,000億ドルを超える

>>:  クラウドネイティブ環境で仮想マシンを実行するための 4 つのオープンソース ツール

推薦する

PTC、受賞歴のあるCADプラットフォームの新バージョンを発表し、デザインのルネッサンスを始動

PTC (NASDAQ: PTC) は本日、エンジニアが革新的な設計機能と製造機能を単一の環境で活用...

A5トピック:プロのオンラインショッピングの悪いレビューが横行し、タオバオの商店主が打撃を受ける

Taobao には数百万のオンライン ストアがあり、各ストアはこのオンライン取引プラットフォームで生...

Kafka のプロデューサーとコンシューマーのメカニズム + パーティショニング戦略、これ理解できないんですか?

[[442535]]この記事はWeChat公式アカウント「ポスト00年代プログラマーXiaosan」...

ファーウェイがGood Vision Cloud Serviceを正式に開始、包括的なマシンビジョンの時代を先導

人工知能技術の台頭とエッジデバイスのコンピューティング能力の向上により、マシンビジョンの応用シナリオ...

共同購入業界の再編が加速、重慶の共同購入サイトの約40%は名ばかりの存在

ビジネスデイリーの研修記者、孫瓊英重慶ビジネスデイリーは、最近、Tuan800が「2012年上半期の...

インターネット企業は中秋節をマーケティングにどのように活用しているのでしょうか?

月収10万元の起業の夢を実現するミニプログラム起業支援プラン中秋節が予定通りやって来ます。家族との再...

ウェブマスターに優れたブログプロモーションサイトの構築方法を教える2つの注意事項

個人ブログは今日では世界中で人気があり、ほぼすべての人がブログを持っているほどです。大手ウェブマスタ...

SEO最適化のための画像詳細の説明

優れた Web サイトには、魅力的なテキスト コンテンツに加えて、画像の表示も必要です。いわゆる画像...

広告チャネルのコスト、最適化、テクニック!

広告に関しては、参考までにいくつかの経験談をシェアさせていただきました。今日はいくつかのポイントを皆...

SAP HANA Cloud 会長: これら 3 つのトレンドがクラウド コンピューティングの次の段階を定義する

新世紀の第 2 の 10 年で、クラウド コンピューティングは成熟した信頼性の高いテクノロジーになり...

シンガポールで仕事を見つけるための重要なスキルとして、IoT、5G、クラウドコンピューティングが挙げられている

シンガポールでは、モノのインターネット(IoT)、5G、クラウドコンピューティング、人工知能が、今後...

SEO 引用の解釈: 詳細が成功と失敗を決定する方法

SEO 業界には、「コンテンツは王、外部リンクは皇帝」や「良質なコンテンツ、幅広い外部リンク」、「実...

微博一全初から学ぶべき小紅書マーケティングのポイント:セレブ+KOLのヒット商品のルール

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