Zidian クラウド ネイティブ KubeSphere 実装プロセス

著者: Spider Point Commercial Network Services Co., Ltd. のテクニカル ディレクターである Chi Xiaodong は、10 年以上ソフトウェアの開発と設計に従事しており、さまざまな新しいテクノロジを研究し、テクノロジを共有することが好きです。出典: この記事は、11 月 25 日の広州駅交流会の講師である Chi Xiaodong によって編集され、イベント内で Chi 先生が共有した同名の内容を編集したものです。

企業プラットフォームの紹介

Spider Point は 2016 年 4 月に設立され、コミュニティ e コマース ビジネスの構築 (最後の 3 キロメートルの配送問題の解決) に取り組んでいます。当初は、自社構築の直販チャネル、自社構築の倉庫、自社構築の大型コミュニティ倉庫、フランチャイズ倉庫の活用などにより、地域でのEC事業の展開と地域密着型の物流を実現してきました。多くても、全国のすべての省に支店と子会社があり、すべての省に省の倉庫があり、南北の主要都市に大規模な倉庫があります。

その後、電子商取引業界の終焉に伴い、同社は総合的なエンタープライズ デジタル ソリューション (産業用インターネットの方向) に転換しました。全体的な展開は次のとおりです。

プラットフォームの背景の紹介

同社はサーバを購入して社内クラウドを構築し、IDCコンピュータ室にホストし、VMwareの仮想化技術を利用して仮想マシンを管理してきた。ビジネスの拡大に伴い、プロジェクトは単一アーキテクチャから分散アーキテクチャに進化し、仮想マシンの数も増加するため、開発や運用保守管理には多くの課題が生じており、マイクロサービス技術の発展に伴い、コンテナ化アーキテクチャの採用が課題となっています。会社の基礎となるアーキテクチャに問題がある。

  • ビジネスは急速に発展しており、新しい仮想ホストはなく、環境のセットアップが複雑ですが、初期段階では仮想マシン テンプレートによって解決できます。
  • さまざまなプロジェクト チーム間のビジネス通話はすべて HTTP インターフェイスを通じて行われますが、これは効率的ではありません。
  • 導入は手動のコンパイル、パッケージ化、アップロード、テスト/オンラインに依存しており、CI/CD はなく、開発効率が低い。
  • 運用保守のプレッシャーが高く、運用保守のリソースが不足しており、さまざまなサービスやミドルウェアの監視が整っていない、Zabbix は利用可能ですが、管理ができず、統一された監視パネルがありません。
  • 仮想マシンのリソースを動的に割り当てて利用することは難しく、リソースは固定されています。
  • 専門の運用保守担当者が不足しており、環境のインストールと監視が完璧ではなく、リソースの使用状況を視覚化するのが困難です (運用保守担当者は 1 人しかいません)。
  • フロントエンド チームは、ローカルでパッケージ化する代わりにコンテナ化された展開を採用し、FTP 経由で静的ファイルをアップロードしたいとも考えています。
  • 運用保守担当者が仮想マシンの数を減らしたい場合、新しいオンライン サービス用に多数の仮想マシンを作成する必要はなく、少数のノードを追加するだけで済みます。

プラットフォームの選択

ビジネスの問題点

前回の紹介から、単一アーキテクチャから分散アーキテクチャへの進化の中で、ビジネスの迅速な発見と迅速な対応に伴い、基本モジュールとビジネス モジュールがますます増え、チームはパッケージ化と展開のプロセスで忙しくなっています。 。

  • バグを修正し、展開用のパッケージを作成します。
  • オンラインでのパッケージ化と導入。
  • チーム全体がオンラインになるたびに、夜遅くまで忙しくなります。
  • 非効率でバージョンが遅れている。

Jenkins の半自動デプロイメントの紹介

チームの効率性の問題を解決するために、最初に Jenkins が導入され、導入の問題のほとんどは Jenkins によって解決されました。

Kubernetes (K8s) の紹介

Jenkins の導入により効率は大幅に向上しましたが、まだいくつかの問題があります。

  • サービスが多すぎるため、各デプロイメントをキューに入れる必要があります。
  • 仮想マシンが多すぎるため、シェル スクリプトを維持するコストが高くなります。
  • リソースの使用率が低く、最大限に活用されていません。

自作のK8sクラスタを構築することで、面倒なシェルスクリプトの問題を解決でき、JenkinsのK8sプラグインと組み合わせて、Dockerfile + yamlでデプロイできます。

自作 K8 のメンテナンスの問題点:

  • クラスターの運用と保守が難しい、シンプルで便利な視覚化ツールが不足している、チームのほとんどが開発者であり、運用と保守の経験が限られている
  • K8s の操作はすべて純粋なスクリプトの形式であり、メンテナンスが困難です。ビジュアル ツールがないため、アプリケーションの展開と構成の変更はすべてコマンド スクリプトの手動実行に依存しています。
  • サーバーのアクセス許可を回復するという目的はまだ達成されていないため、問題のトラブルシューティングを行うには、リソースの監視とスケジューリングが欠如している K8s を使用する必要があります。

KubeSphereを選ぶ理由

K8sビジュアル管理ツールの研究過程で、外国のオープンソースKubernetes DashboardやRancherと比較すると、KubeSphereは企業に適していることが判明し、国内での使用にまだ適しています。

  • K8s のすべての機能を含む、ビジュアル K8s 管理ツール。
  • 統合された DevOps により、展開の複雑さとアプリケーションのライフサイクルが軽減されます。
  • マルチテナント管理は、さまざまな子会社のビジネス分離のニーズを満たします。
  • ロール権限管理機能を統合して、異なる担当者に異なる権限を割り当てるニーズに対応します。
  • オンラインログ閲覧機能により、サーバー利用者の管理を軽減します。
  • クラスターの視覚的な管理と監視の視覚化。
  • プラットフォーム内のすべての機能はプラグ可能かつ疎結合であり、ビジネス シナリオに応じて必要な機能コンポーネントをオプションでインストールできます。

導入の実践と結果

プラットフォーム マイクロサービス アーキテクチャの導入

KubeSphere 実稼働環境の計画とインストール

本番リングの構成計画は次のとおりです: マスター ノード 3 台: 8C 16G 100G ディスク、10 台以上のワーカー ノード (初期)、20 台以上のワーカー ノード (増加の可能性あり)。

Eureka、Redis、および製品、注文、メンバーシップなどの電子商取引プラットフォーム マイクロサービスを含む SpringCloud のマイクロサービス スイートをデプロイします。ToB マイクロサービス、10 以上のエンタープライズ デジタル化プロジェクト。

KubeSphereの使用ルール

チームとプロジェクトの部門

  • 子会社およびさまざまな端末に基づいて、さまざまな企業スペース (企業スペース) を確立します。
  • プロジェクト管理では、さまざまな事業分野に応じてさまざまなプロジェクト ポートフォリオが確立されます。
  • プラットフォームの通常のロールを持つユーザーを作成します。
  • エンタープライズ スペース、プロジェクト管理、パイプラインにメンバーを追加します。

ノードの管理と展開

  • ノード ラベル。各ノードのラベルを設定します。yml と組み合わせて使用​​します。
  • ホストネットワークモードは使用しません。
  • 重要なデータ ファイルはホスト ディレクトリにマウントされます。
  • 外部サービスは NodePort 構成を提供する必要があります。

KubeSphere クラスター

KubeSphere アプリケーションのデプロイメントとパイプライン

KubeSphere の使用効果

  • フルプロセスの DevOps では、開発の頻繁なパッケージ化と展開の作業が解放され、研究開発に重点が置かれます。
  • 視覚的なリソース監視をアラームやその他の手段と組み合わせることで、運用および保守の機能が向上します。
  • マルチテナンシー、マルチスペース、プロジェクトの分離、ユーザー権限の分割により、ビジネスを超えたチーム管理がより正確になります。
  • 元の仮想ホスト (4C 8G) を削減して、より大きなリソースを持つノードを形成し、リソースの使用率を向上させます。
  • オンラインでの動的拡張に対応しており、操作も簡単で、インスタンスを追加・削減したい場合も1回の操作で行えます。
  • フロントエンドはコンテナ化されたデプロイメントも実装し、手動のパッケージ化とアップロードのワークロードを解放します。

問題と解決策

当時正式に提供されていたMavenのバージョンはバージョン3.6ではありませんでした。

解決策: 3.6 Maven ベース イメージを自分で作成し、クラスター構成で Maven イメージを見つけて変更します。

nexusを自分で構築しましたが、mavenのsetting.xmlを変更するにはどうすればよいですか?

解決策: CRD で kubesphere-devops-system をフィルターし、ks-install を見つけて、その中の Maven settings.xml を変更し、変更後、Jenkins にログインして構成をリロードします。

ジェンキンスにアクセスするにはどうすればよいですか?

解決策: マスターの IP + 30180、ログイン アカウントのパスワード、および KubeSphere 管理者。ファイルを参照できます: https://juejin.cn/post/7124589639536476190

コンテナ内の共有ファイルにアクセスするにはどうすればよいですか?

解決策: NFS システムをマウントしてアクセスします。

コンテナが破壊されると、コンテナ内のファイルが消えてしまいます。ファイルを長期間保存したいですか?

解決策: ホストのファイル/ディスクをマウントします。

ローリング デプロイメント プロセス中にコンテナーは破棄されますか? 他のサービス呼び出しには引き続き古い IP 404 を介してアクセスされますか?

解決策: Kubernetes のサービスを介して (SVC) を呼び出します。

DevOps はセルフビルドの Gitlab とどのように連携してビルドをトリガーしますか?

解決策: Jenkins を入力し、パイプラインでユニバーサル フック トリガーを使用します。

これからの計画

KubeSphere ミドルウェア管理プラットフォームを導入することで、全体的な配信効率が大幅に向上し、導入プロセスの時間が節約され、ツールを通じて CI/CD がより適切に実現され、視覚的なリソース インターフェイスが提供されて各サーバーをより明確に理解できるようになります。しっかり監視できます。

プラットフォームの使用が成熟するにつれて、フロントエンド、.net、またはその他の補助ビジネスを含め、ますます多くのビジネスがプラットフォームに移行することになります。KubeSphere の機能が増えると、ビジネス開発の優れた基盤が提供されます。

この記事は、複数の記事を公開するブログOpenWriteによって公開されています。

SenseTime創設者Tang Xiaoou氏死去、55歳 2023年、PHP停滞 紅蒙システム独立間近、多くの大学が「紅蒙授業」開設 Quark BrowserのPC版が内部テスト開始. ByteDanceはOpenAIによって「禁止」された. Zhihuijunの新興企業は借り換え、金額は6億元以上、事前評価額は35億元. AIコードアシスタントは非常に人気があるため、プログラミングで競争することさえできません言語ランキング. Mate 60 Proの5Gモデムと無線周波数技術ははるかに先を行っている No Star, No Fix MariaDBがSkySQLをスピンオフし、独立した会社として設立
{{名前}}
{{名前}}

おすすめ

転載: my.oschina.net/u/4197945/blog/10322584