目次
序文
k8s kubeshere installstanacos 2.0.3、
1. 事前環境
nacos クラスター バージョンでは、データ ソースとして mysql が必要です。したがって、k8s に mysql データベースをインストールし、データベース テーブルを構築する必要があります。参照する
2、設定ファイルを編集します
kubeshere の構成センターに入ります。
新しい構成 application.properties を作成します。構成された値は、コピーされた nacos client/conf ディレクトリ内の application.properties です。
#
# Copyright 1999-2021 Alibaba Group Holding Ltd.
#
# Apache ライセンス バージョン 2.0 (「ライセンス」) に基づいてライセンスされています。
# ライセンスに準拠する場合を除き、このファイルを使用することはできません。# ライセンスのコピーは、 # # http://www.apache.org/licenses/LICENSE-2.0
で入手できます。# # 適用される法律で要求されたり、書面による同意がない限り、ライセンスに基づいて配布されるソフトウェア # は「現状のまま」で配布され、# 明示的か黙示的かを問わず、いかなる種類の保証や条件も付与されません。#ライセンスに基づく許可と制限を規定する特定の言語については、 # ライセンスを参照してください。##*************** Spring Boot 関連の構成 ***************#
### デフォルトの Web コンテキスト パス:
server.servlet.contextPath=/nacos
### デフォルトの Web サーバー ポート:
server.port=8848#*************** ネットワーク関連の構成 ****************#
###cluster.conf で Nacos サーバー アドレスに IP よりホスト名を優先する場合:
# nacos.inetutils.prefer-hostname-over-ip=false### ローカルサーバーの IP を指定します:
# nacos.inetutils.ip-address=
#*************** 構成モジュール関連の構成 ***************#
### MySQL をデータソースとして使用する場合:
spring.datasource.platform=mysql### DB の数:
db.num=1### DB の接続 URL:
db.url.0=jdbc:mysql://mysql-4ijiwm-headless.mall-swarm:3306/mall_nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC db.user.0=root db.password。 0
=
マネージャー### 接続プール設定: hikariCP
db.pool.config.connectionTimeout=30000
db.pool.config.validationTimeout=10000
db.pool.config.maximumPoolSize=20
db.pool.config.minimumIdle=2#*************** ネーミングモジュール関連の設定 ***************#
### データディスパッチタスクの実行期間 (ミリ秒): v2.1.X では削除され、nacos.core.protocol.distro.data.sync.layMs に置き換えられます
# nacos.naming.distro.taskDispatchPeriod=200### バッチ同期タスクのデータ数: v2.1.X では削除されます。非推奨
# nacos.naming.distro.batchSyncKeyCount=1000### 同期タスクが失敗した場合の再試行遅延 (ミリ秒単位): v2.1.X では削除され、nacos.core.protocol.distro.data.sync.retryDelayMs に置き換えられます
# nacos.naming.distro.syncRetryDelay=5000### データウォームアップを有効にする場合。false に設定すると、サーバーはローカル データの準備なしでリクエストを受け入れます:
# nacos.naming.data.warmup=true### インスタンスの自動有効期限を有効にすると、インスタンスのヘルスチェックのようなものになります:
# nacos.naming.expireInstance=true### は削除され、`nacos.naming.clean` プロパティに置き換えられます
nacos.naming.empty-service.auto-clean=true
nacos.naming.empty-service.clean.initial-delay-ms=50000
nacos.naming.empty-service.clean.period-time-ms=30000### 2.0.0 で追加
### 空のサービスをクリーンアップする間隔 (単位: ミリ秒)。
# nacos.naming.clean.empty-service.interval=60000### 空のサービスをクリーンアップするための期限切れ時間 (単位: ミリ秒)。
# nacos.naming.clean.empty-service.expired-time=60000### 期限切れのメタデータを消去する間隔 (単位: ミリ秒)。
# nacos.naming.clean.expired-metadata.interval=5000### メタデータを消去する期限切れ時間 (単位: ミリ秒)。
# nacos.naming.clean.expired-metadata.expired-time=60000### サービス変更からプッシュタスクが実行されるまでの遅延時間 (単位: ミリ秒)。
# nacos.naming.push.pushTaskDelay=500### プッシュタスク実行のタイムアウト (単位: ミリ秒)。
# nacos.naming.push.pushTaskTimeout=5000### 失敗したプッシュタスクを再試行するための遅延時間 (単位: ミリ秒)。
# nacos.naming.push.pushTaskRetryDelay=1000### 2.0.3 以降
### 非アクティブなクライアントの有効期限切れ時間 (単位: ミリ秒)。
# nacos.naming.client.expired.time=180000#*************** CMDB モジュール関連の設定 ***************#
### 外部 CMDB をダンプする間隔 (秒):
# nacos.cmdb.dumpTaskInterval=3600### データ変更イベントのポーリング間隔 (秒単位):
# nacos.cmdb.eventTaskInterval=10### ラベルをロードする間隔 (秒):
# nacos.cmdb.labelTaskInterval=300### データ読み込みタスクをオンにする場合:
# nacos.cmdb.loadDataAtStart=false
#*************** メトリクス関連の設定 ***************#
### prometheus のメトリクス
#management.endpoints.web.exposure.include=*### エラスティック検索のメトリクス
Management.metrics.export.elastic.enabled=false
#management.metrics.export.elastic.host=http://localhost:9200###流入のメトリクス
.metrics.export.influx.compressed = true#*************** アクセスログ関連の設定 ***************#
### アクセスログを有効にする場合:
server.tomcat.accesslog.enabled=true### アクセス ログ パターン:
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i %{Request-Source}i### アクセスログのディレクトリ:
server.tomcat.basedir=#*************** アクセス制御関連の構成 ***************#
### Spring Security を有効にする場合、このオプションは 1.2.0 で非推奨になります:
#spring.security.enabled=false### 認証の無視 URL は 1.2.0 で非推奨になりました:
nacos.security.ignore.urls=/,/error,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-ui/public/**,/v1/auth/** 、/v1/console/health/**、/actuator/**、/v1/console/server/**### 使用する認証システム。現在サポートされているのは「nacos」と「ldap」のみです:
nacos.core.auth.system.type=nacos### 認証システムをオンにする場合:
nacos.core.auth.enabled=false### nacos.core.auth.system.type=ldap、{0} がプレースホルダーの場合に機能し、ログイン ユーザー名を置き換えます
# nacos.core.auth.ldap.url=ldap://localhost:389
# nacos.core.auth.ldap.userdn=cn={0},ou=user,dc=company,dc=com### トークンの有効期限 (秒単位):
nacos.core.auth.default.token.expire.seconds=18000### デフォルトのトークン:
nacos.core.auth.default.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789### 認証情報のキャッシュをオン/オフにします。このスイッチをオンにすると、認証情報の更新に 15 秒の遅延が発生します。
nacos.core.auth.caching.enabled=true### 1.4.1 以降、古いバージョンからのアップグレードの場合にのみ、ユーザー エージェント: nacos-server のホワイト認証をオン/オフにします。
nacos.core.auth.enable.userAgentAuthWhite=false### 1.4.1 以降、nacos.core.auth.enabled=true および nacos.core.auth.enable.userAgentAuthWhite=false の場合に動作しました。
### 2 つのプロパティは認証用のホワイト リストであり、他のサーバーからのリクエストを識別するために使用されます。
nacos.core.auth.server.identity.key=serverIdentity
nacos.core.auth.server.identity.value=security#*************** Istio 関連の構成 ****************#
### MCP サーバーをオンにする場合:
nacos.istio.mcp.server.enabled=false#*************** コア関連の構成 ***************#
### WorkerID を手動で設定します
# nacos.core.snowflake.worker-id=### メンバーメタデータ
# nacos.core.member.meta.site=
# nacos.core.member.meta.adweight=
# nacos.core.member.meta.weight=### MemberLookup
### Addressing pattern category, If set, the priority is highest
# nacos.core.member.lookup.type=[file,address-server]
## Set the cluster list with a configuration file or command-line argument
# nacos.member.list=192.168.16.101:8847?raft_port=8807,192.168.16.101?raft_port=8808,192.168.16.101:8849?raft_port=8809
## for AddressServerMemberLookup
# Maximum number of retries to query the address server upon initialization
# nacos.core.address-server.retry=5
## Server domain name address of [address-server] mode
# address.server.domain=jmenv.tbsite.net
## Server port of [address-server] mode
# address.server.port=8080
## Request address of [address-server] mode
# address.server.url=/nacos/serverlist#*************** JRaft 関連の設定****************#
### Raft クラスター選択タイムアウトを設定します。デフォルト値は 5 秒です。
# nacos.core.protocol.raft.data.election_timeout_ms=5000
### Raft スナップショットが定期的に実行される時間を設定します。デフォルトは 30 分です。 #
nacos.core.protocol.raft.data.snapshot_interval_secs=30
### raft 内部ワーカースレッド
# nacos.core.protocol.raft.data .core_thread_num=8
### raft ビジネス リクエストの処理に必要なスレッドの数
# nacos.core.protocol.raft.data.cli_service_thread_num=4
### raft の線形読み取り戦略。安全な線形読み取りがデフォルトで使用されます。つまり、リーダーの在職期間はハートビートによって確認されます。
# nacos.core.protocol.raft.data.read_index_type=ReadOnlySafe
### rpc リクエストのタイムアウト、デフォルトは 5 秒
# nacos.core.protocol.raft.data.rpc_request_timeout_ms=5000#*************** ディストリビューション関連の構成 ***************#
### ディストリビューション データの同期遅延時間。同期タスクが遅延すると、タスクは同じデータ キーに対してマージされます。デフォルトは 1 秒です。
# nacos.core.protocol.distro.data.sync.layMs=1000### 1 つの同期データのディストリビューション データ同期タイムアウト、デフォルトは 3 秒です。
# nacos.core.protocol.distro.data.sync.timeoutMs=3000### データの同期が失敗またはタイムアウトした場合のディストリビューション データ同期の再試行遅延時間。DelayMs と同じ動作、デフォルトは 3 秒です。
# nacos.core.protocol.distro.data.sync.retryDelayMs=3000### ディストリビューション データは間隔時間を確認し、同期されたデータが一定間隔で期限切れになったかどうかを確認します。デフォルトは 5 秒です。
# nacos.core.protocol.distro.data.verify.intervalMs=5000### ディストリビューション データ検証の 1 回の検証タイムアウト、デフォルトは 3 秒です。
# nacos.core.protocol.distro.data.verify.timeoutMs=3000### スナップショット データのロードが失敗した場合のディストリビューション データのロード再試行の遅延、デフォルトは 30 秒です。
# nacos.core.protocol.distro.data.load.retryDelayMs=30000
設定項目の主な変更は、データソースを開いて、mysql のアドレスとデータ名を設定することです。mysql アドレスは k8s の mysql の DNS です
### MySQL をデータソースとして使用する場合:
spring.datasource.platform=mysql### DB の数:
db.num=1### DB の接続 URL:
db.url.0=jdbc:mysql://mysql-4ijiwm-headless.mall-swarm:3306/mall_nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC db.user.0=nacos db.pass word.0
=
ナコス
新しい設定項目「cluster.conf」を作成してクラスタ情報を設定します。同じ設定値は nacos /conf ディレクトリの「cluster.conf」です
#
# Copyright 1999-2018 Alibaba Group Holding Ltd.
#
# Apache ライセンス バージョン 2.0 (「ライセンス」) に基づいてライセンスされています。
# ライセンスに準拠する場合を除き、このファイルを使用することはできません。# ライセンスのコピーは、 # # http://www.apache.org/licenses/LICENSE-2.0
で入手できます。# # 適用される法律で要求されたり、書面による同意がない限り、ライセンスに基づいて配布されるソフトウェア # は「現状のまま」で配布され、# 明示的か黙示的かを問わず、いかなる種類の保証や条件も付与されません。#ライセンスに基づく許可と制限を規定する特定の言語については、 # ライセンスを参照してください。##it is is is is
is sample
s-nacos-v1-0.s-nacos.mall-swarm.svc.cluster.local:8848
s-nacos-v1-1.s-nacos.mall-swarm.svc.cluster.local:8848
S-NACOS-V1-2.S-NACOS.MALL-SWARM.SVC.CLUSTER.LUSTER.LOCAR
完全な構成、
注: ここで取得するのが難しいのは、3 つの nacos クラスター ノードのアドレスです。ノードのアドレスは次のとおりです。
サービス名 - コンテナのシリアル番号 - サービス DNS.svc.cluster.local:port
つまり、nacos サービスの名前を s-nacos にすることにまず同意する必要があります。
作成はステートフル サービスであるため、サービス ID は v1-0 v1-1 v1-2 ... のように固定されます。
サービス DNS の構成は、サービス名、プロジェクト名、およびサービス名です。
この規則に従って、3 つのノード アドレスが生成されます。
s-nacos-v1-0.s-nacos.mall-swarm.svc.cluster.local:8848
s-nacos-v1-1.s-nacos.mall-swarm.svc.cluster.local:8848
s-nacos-v1-2.s-nacos.mall-swarm.svc.cluster.local:8848
上記の方法が面倒だと思う場合は、気軽に nacos をインストールしてから bin/bash に接続し、nacos の DNS に ping を実行して返されたアドレスを確認することもできます。
2.nacosサービスを作成する
ステートフルなサービスを作成する
名前は上記のクラスター アドレスと同じである必要があります。この例では s-nacos です。
コピー数として 3 を選択し、コンテナとして nacos/nacos-server:2.0.3 を選択します。
リソースを CPU 1、メモリ 1G に制限します。マシン構成が良好であればさらに追加できます。公式のデフォルトは 2G です。ポートは 8848 に設定されています。
環境変数 JVM_XMS=1g JVM_XMX=1g JVM_XMN=512m を構成します。正式なデフォルトはそれぞれ 2G、2G、1G です。これ以上小さく調整することはできず、小さくするとOOMkillになります。
設定ファイルをマウントし、ディレクトリ /home/nacos/conf をマウントします。
前に入力した構成ファイルを選択します。ここでサブパスをマウントする必要があります。フォルダーを直接マウントすると、フォルダー内の他の構成が上書きされます。
両方のファイルがマウントされています
「次へ」をクリックし、「作成」をクリックします。ログを確認してください。
3. エクストラネット アクセスを作成する
サービスの作成 - ワークロードの指定
最初のアクセス タイプとして [仮想 IP] を選択し、ワークロードとして nacos を指定します。ポート8848を入力します
外部ネットワーク アクセス、NodePort モードを選択します。作成。
サービスのリストで、公開されているポート 31544 を確認します。
ここまでで、nacos クラスターが構築されました。任意のクラスター IP と公開された外部ネットワーク ポートを介して nacos バックグラウンドに入ることができます。