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

推薦する

みんなが話題にしているこの分散システムとは、いったい何なのでしょうか?

[[227273]]大規模な Web サイトにおける高同時アクセスや大量のデータ処理シナリオの増加に...

2019 年のデータセンターとクラウド コンピューティングに関する 10 の予測

2019 年、データ センター、パブリック クラウド、プライベート クラウドにはどのような変化が起こ...

SEO 作業において入札はどのような指導的意味を持つのでしょうか?

SEO を行う人は、ただ SEO を行うだけではダメだというのが私の考えです。もちろん、これは中小企...

クラウドレイヤーはデジタルコラボレーション設計イノベーション機能を実現します

近年、伝統的な製造業の変革と向上は常に中国政府の取り組みの焦点となってきた。今年の政府活動報告は、「...

中心からエッジへ: クラウド コンピューティングの分散化は避けられないのでしょうか?

調査会社IDCも、企業がIoTのメリットを活用したいという意欲が高まるにつれて、IoTが驚異的な成長...

ソソが20億近い損失を被る:ペンギンにも弱点があるのか​​?

起業家は、自分たちの世界がこの境界線の向こう側にあるため、それを概説しようとします。投資家はこの問題...

インターネット検索の分野における公平性と正義を積極的に追求する

私がこの記事を書こうと思った主な理由は、インターネット関連従事者の労働強度が絶えず高まっており、国内...

ビジネス革新に欠かせないクラウドネイティブアーキテクチャへの道

[51CTO.comより引用] 2020年、多くの不確定要素の影響により、世界経済は大きな打撃を受け...

現在のコメント: 企業はパブリック クラウドに移行することで本当にコストを節約できるのでしょうか?

現在、中国のクラウドコンピューティング市場は急速な発展期にあり、伝統的な業界の企業はクラウドサービス...

Omdia: ハイブリッドおよびマルチクラウドの市場規模は2026年までに380億ドルを超える

最近、国際的に権威のある研究機関であるOmdiaは「Omdia Universe:ハイブリッドおよび...

なぜますます多くの企業が Kubernetes をホストしているのでしょうか?

Kubernetes クラスターをマネージド サービス プロバイダーに引き渡すのは、子供を大学に送る...

インターネット企業はどのようにフェスティバル運営を行っているのでしょうか?ストロベリーミュージックフェスティバルでインターネット企業を評価する

テキスト/楊苗山寨会議創設者昨日のストロベリー音楽祭で忙しい一日を過ごした後、ミャオおじさんはいくつ...

中国政府クラウド市場シェアレポートが発表されました。統合運用は何に依存しますか?

[[350641]]近年では、ビッグデータ、クラウドコンピューティング、新しいインフラストラクチャが...

prometeus-6.5 USD/512M/XEN/12g SSD/2T トラフィック

PrometeusのシカゴデータセンターVPSはSSDハードドライブを使用しており、openvzとX...