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 つのオープンソース ツール

推薦する

budgetnode-$7.99/VPS/7g メモリ/70g ハードディスク/4 コア/3T トラフィック

budgetnode はクリスマス期間中に多くの特別プロモーションを実施しました。これまでのところ、...

Pinduoduoのブレークスルーと進歩のための4つのモジュール

電子商取引大手の包囲網を突破したPinduoduoは、ユーザー数でAlibabaに次ぐ電子商取引プラ...

誰もが開発者になれる: SAP が一般開発者とプロの開発者向けにツール、組み込み AI、無料の学習体験を提供

SAP は、一般開発者とプロの開発者がデジタル変革を加速できるように支援する新しい製品とサービスを発...

2021 年のクラウド コンピューティングのトレンド予測

現在、クラウド コンピューティングは、COVID-19 危機に対する世界的な対応の中核となるテクノロ...

2015年最大の嘘: 私たちメディアは存在しなかった

セルフメディアという概念は2012年末頃に登場し、2014年に流行しました。今振り返ると、その年から...

ウールとギャング:インターネット クラウドソーシングをファッションに導入

「編み物」といえば、多くの人は次のような光景を思い浮かべるでしょう。庭のロッキングチェアに座り、老眼...

Dangdangはコミュニティマーケティングを模索し、Pinterestのようなプラットフォームを立ち上げる

Dangdangはコミュニティマーケティングを模索し、Pinterestのようなプラットフォームを立...

Exabytes VPS の簡単なレビュー、米国データセンター

私は exabytes.com で 1G メモリの VPS を入手しました。exabytes.com...

Baidu 検索 SEO 関連キーワードに新しいヒントがあります

先ほど Baidu で「SEO」を検索したところ、画像のように、Baidu が自然ランキングの下に親...

DigitalOceanがホスティングプロバイダー第7位に躍進

DigitalOceanは現在、世界で7番目に大きなホスティング会社です。6月も終わりに近づき、Ne...

国内初となる「クラウドデータベースの選択と満足度調査レポート」を公開!

ガートナーは、クラウドがデータベース市場の将来を支配し、2022 年までにデータベースの 75% が...

モバイル アプリケーション市場の爆発的成長: APP 開発アウトソーシングの新たなパイを獲得

編集者注/スマート端末の急速な普及により、アプリケーションのダウンロードが劇的に増加しました。モバイ...

コロナウイルスのパンデミックがクラウドコンピューティングの導入に及ぼす永続的な影響

調査によると、パブリッククラウドの導入はコロナウイルスの発生前からすでに増加していた。パンデミックは...

予測:2021年、クラウドコンピューティングは5つの新たなトレンドを示す

2020 年のコロナウイルスのパンデミックは、2021 年に対するほとんどの人々の予測を覆しました。...