Kubernetes ベースの Nacos 高可用性クラスターを実行する方法

Kubernetes ベースの Nacos 高可用性クラスターを実行する方法

Nacos (Namings and Configuration Management) は、Alibaba のオープンソースの動的サービス検出、構成管理、およびサービス管理プラットフォームであり、クラウドネイティブ アプリケーションの構築を容易にします。

以下は、Nacos の主な機能と特徴の一部です。

  • サービス検出とサービスヘルスチェック: Nacos は、DNS と RPC に基づくサービス検出をサポートします。つまり、マイクロサービス アプリケーションは Nacos に自身を登録し、他のサービスを検出できるようになります。同時に、Nacos は登録されたサービスに対してヘルス チェックを実行し、サービスが利用可能であることを確認できます。
  • 動的構成サービス: マイクロサービス アーキテクチャでは、構成情報が頻繁に変更される可能性があります。 Nacos は、集中化された外部化された動的構成サービスを提供します。 Nacos では構成情報を動的に管理および変更できます。構成を使用するすべてのサービスにリアルタイムで通知され、再起動せずに新しい構成が適用されます。
  • ダイナミック DNS サービス: Nacos は DNS プロトコルに基づくサービス検出方法を提供し、クラスター間およびリージョン間のサービス検出要件をより適切にサポートできます。
  • サービスとメタデータの管理: Nacos は、統合されたサービス管理とメタデータ管理機能を提供します。 Nacos では、すべてのサービスの情報とステータス、およびサービスのメタデータ情報を管理できます。
  • 永続性のサポート: Nacos は MySQL データベースの永続性をサポートしており、登録サービスと構成情報のセキュリティを確保できます。
  • 統合と拡張が簡単: Nacos は豊富な API とプラグインを提供しており、他のシステムと簡単に統合でき、必要に応じて拡張することもできます。
  • 複数の環境をサポート: Nacos は、スタンドアロン環境、クラスター環境、Kubernetes や Docker などのクラウド環境で実行できます。一般的に、Nacos は、開発者がマイクロサービス アプリケーションをより適切に構築および管理するのに役立つ強力なサービス登録および構成管理プラットフォームです。

詳しいコンテンツはこちら:https://nacos.io/zh-cn/docs/architecture.html

Nacosデータベースを作成する

データベースのインストールと展開についてはここには書かれていません。

 # 下载初始化SQL文件$ wget https://raw.githubusercontent.com/alibaba/nacos/master/distribution/conf/mysql-schema.sql
 # 进去容器$ docker exec -it mysql bash # 进入数据库$ mysql -u root -pAdmin@1234 mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.7.44 MySQL Community Server (GPL) Copyright (c) 2000, 2023, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> # 创建数据库mysql> create database nacos; Query OK, 1 row affected (0.00 sec) mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | nacos | | performance_schema | | sys | +--------------------+ 5 rows in set (0.00 sec) # 初始化数据库mysql> use nacos; mysql> source mysql-schema.sql;

Nacos高可用性クラスタをインストールする

このケースでは、永続ストレージのデプロイメントとして MySQL を使用します。

 # 新建一个命名空间$ kubectl create ns dev # 拉取安装配置$ git clone https://github.com/nacos-group/nacos-k8s.git $ cd nacos-k8s/deploy/nacos

設定を変更します。

 # 修改数据库信息$ nacos-no-pvc-ingress.yaml ... apiVersion: v1 kind: ConfigMap metadata: name: nacos-cm data: mysql.host: "10.0.53.73" mysql.db.name: "nacos" mysql.port: "3306" mysql.user: "root" mysql.password: "Admin@1234" - name: NACOS_AUTH_ENABLE value: "true" - name: nacos.core.auth.server.identity.key value: "subM8MzvolJ+MWYVhgkOBC7EvkwOrYczDYOsAB/6KhA=" - name: nacos.core.auth.server.identity.value value: "7YlBYjd2HU+9DJpPRV4zcvvEkBqO8SxNpfJRDNqPH30=" - name: nacos.core.auth.plugin.nacos.token.secret.key value: "SecretKey012345678901234567890123456789012345678901234567890123456789" - name: NACOS_SERVERS value: "nacos-0.nacos-headless.dev.svc.cluster.local:8848 nacos-1.nacos-headless.dev.svc.cluster.local:8848 nacos-2.nacos-headless.dev.svc.cluster.local:8848" ...

注意: NACOS_SERVERS 構成で指定された名前空間は、Nacos によって展開された名前空間と一致している必要があります。

作成を実行します:

 $ kubectl apply -f nacos-pvc-nfs.yaml -n dev service/nacos-headless created configmap/nacos-cm created statefulset.apps/nacos created

ポッドのステータスを確認します。

 $ kubectl get pods -n dev NAME READY STATUS RESTARTS AGE nacos-0 1/1 Running 0 4m35s nacos-1 1/1 Running 0 4m19s nacos-2 1/1 Running 0 4m4s

アクセス検証

今回は、最も単純な転送ポートが公開およびアクセスのために転送されます (Ingress 経由で公開およびアクセスすることもできます)。

 $ kubectl port-forward -n dev nacos-0 8848:8848 --address 0.0.0.0

http://転送マシン IP:8848 デフォルトアカウント/パスワード: nacos/nacos:

クラスターのステータスを確認します。

これまでに、Nacos クラスターが展開されました。

SpringCloud マイクロサービス コンテナのデプロイメント: https://www.processon.com/view/link/656850b84b191f7e7e04d4f5

<<:  独自の ES クラスターをクラウドに移行するための完全なガイド

>>:  2024 年に統合データ ストレージを推進する 4 つの要因

推薦する

ラリー・エリソンがクラウド開発の未来を語る

Oracle OpenWorld のオープニング基調講演で、Oracle 会長兼 CTO の Lar...

ウェブサイトで優れたユーザーエクスペリエンスを実現するための 5 つのヒント

Appleのおかげで、今日の製品やアプリケーションはますますユーザーエクスペリエンスに重点を置くよう...

人生を心配することなくSEO外部リンクで良い仕事をし、学習体験はとてもシンプルです

外部リンクは、SEO 最適化のための最も基本的な作業にすぎません。千里の道も一歩から始まり、大地の上...

テンセントVS今日頭条、戦いの末にユーザーは何を得たのか?

実際、テンセントと今日頭条の間で起こったユーザーのアバターとニックネームに関する事件は、より明確に整...

分析: VMware はサーバー仮想化の優位性を失うのでしょうか?

仮想化市場について考えると、いくつかの調査結果から、仮想化市場は微妙な変化を遂げてきたことがわかりま...

電子商取引ウェブサイトのマーケティングのための実践的な戦略(パート 1)

5 か月前、私はマイクロブログを投稿しました。「マーケティング業界の権威であるケロッグの統合マーケテ...

鄧亜平、ジケソウについて語る:重要なのは金儲けではなく国家の責任を果たすことだ

「我々は国家を代表している。あなた方(百度)は我々を倒す必要はない。我々をもっと助け、もっと助言をす...

ntup: ウクライナの無制限トラフィックサーバー、1Gbps、月額料金は 26 ドルから

ntup はウクライナの会社で、ウクライナのドニプロに独自のデータセンターを持っています。現在の主な...

AWSはマイクロソフトを大きく上回り、Googleはクラウド市場の優位性を維持

Synergy Research Group の新しいデータによると、Amazon Web Serv...

美容ウェブサイトの短命な人気の背景には、プライバシー紛争と創造性の欠如がある

武漢大学の「美人コンテスト」ウェブサイトwhuface.comのスクリーンショット(写真提供:Sin...

#推奨# hostwinds: 優れたVPSプロバイダー。ウェブサイト構築など、さまざまな需要の高いプロジェクトに適しています。

ホスティング業界の新星である Hostwinds は、2010 年に設立されました。Hostwind...

ウェブマスターが高品質のフレンドリーリンクを取得するための4つの方法について簡単に説明します。

インターネットでは、多くのウェブマスターがフレンドリーリンクを作成することでウェブサイトのトラフィッ...

クラウドの近代化は総合的なアプローチになる

変化する市場の需要に適応する必要性は、いくら強調してもし過ぎることはありません。クラウドネイティブ ...

クラウドネイティブの可観測性データに溺れないようにする方法

従来のアプリケーション パフォーマンス監視 (APM) は、規模とデータ量に根本的な違いがあるため、...

仮想マシンを Istio サービス メッシュに統合するにはどうすればよいですか?

[[350264]] [51CTO.com クイック翻訳] Istio は、サービスを接続、保護、制...