K8S中部署 Nacos 集群

1. 準備

  • Git
  • K8S
  • kubectl
  • helm

咱也沒想到 K8S 部署系列能搞這么多次,我一個開發天天干運維的活,前端后端運維測試工程師實至名歸。
Snipaste_2024-07-05_09-06-05.png

2. 方案選擇

https://github.com/nacos-group/nacos-k8s

我替你們看了一下,有好幾種方式能部署,但我們選擇其中一種。

image.png

主要是其他的部署方式我也不想驗證啊,我只選了最簡單的 nacos-operator。跟著我部署,包跑起來的。

3. 利用 nacos-operator 搭建 Nacos 集群

先看看文檔:https://github.com/nacos-group/nacos-k8s/blob/master/operator/README-CN.md

3.1 先把倉庫拉到本地

git clone git@github.com:nacos-group/nacos-k8s.git

3.2 安裝nacos-operator

cd nacos-k8s/operatorhelm install nacos-operator ./chart/nacos-operator --namespace infrastructure

安裝完成之后提示:

NAME: nacos-operatorLAST DEPLOYED: Fri Jun 28 09:10:41 2024NAMESPACE: infrastructureSTATUS: deployedREVISION: 1

3.3 修改配置文件并生效

# 配置文件示例目錄
cd config/samples# 這個表示集群并使用MySQL進行持久化
vim nacos_cluster_mysql.yaml

nacos_cluster_mysql.yaml:

apiVersion: nacos.io/v1alpha1
kind: Nacos
metadata:name: nacos-devnamespace: infrastructure
spec:type: clusterimage: nacos/nacos-server:v2.2.3replicas: 1env:# 開啟鑒權- name: NACOS_AUTH_ENABLEvalue: "true"- name: NACOS_AUTH_TOKENvalue: "XXXXXXXXXX"- name: NACOS_AUTH_IDENTITY_KEYvalue: "XXXXXX"- name: NACOS_AUTH_IDENTITY_VALUEvalue: "XXXXXX"resources:requests:cpu: 100mmemory: 512Milimits:cpu: 500mmemory: 1GimysqlInitImage: "registry.cn-hangzhou.aliyuncs.com/choerodon-tools/mysql-client:10.2.15-r0"database:type: mysqlmysqlHost: <HOST>mysqlDb: <DB>mysqlUser: <USER>mysqlPort: <PORT>mysqlPassword: <PASSWROD>config: |management.endpoints.web.exposure.include=*

開啟鑒權:Nacos 提供了一個管理后臺,部署成功后通過 host:port/nacos 訪問。如果我們將這個路徑暴露到公網,那么任何人都能訪問。可怕的是, Nacos API 接口的 path 也是 /nacos
那么一旦開啟,配置中心API 將直接對外,配置中心里面的東西是什么就不用多說了。

也有同學說我保證它只能在內網訪問就行了吧?這當然可以,Nacos 也是這樣說的。

image.png

但我還是建議打開這個開關,因為一旦有人非常不小心暴露了出去,那你就得提桶。我們應該做的是把鑒權打開,然后把管理員權限給老板,如果他沒改默認密碼,我們還要提醒他修改默認。懂我意思了吧?

image.png

mysqlInitImage:這是 initContainer 的鏡像,initContainer 是 k8s中的概念,表示服務啟動之前先做一些操作。在這個場景中是連接上MySQL,然后創建庫表這些操作。我實測沒有生效,會報錯 No Datasource set,所以需要我們自己先初始化好庫表以及插入必要的記錄。
執行這個MySQL初始化腳本

No Datasource set 有很多的原因,有可能是我剛剛的這種情況,也有可能MySQL用戶沒有權限等等。遇到問題可以在 issue 看看其他大佬的騷操作。
Issues · nacos-group/nacos-k8s (github.com)

3.4 驗證集群是否可用

根據剛剛的配置文件,我們可以訪問這個路徑來查看Nacos的管理后臺,當然,這是通過內網訪問的。http://nacos-dev-headless.infrastructure:8848/nacos,訪問能看見管理后臺就大功告成了。可以使用默認的賬戶密碼登錄:nacos/nacos

image.png

3.5 在Springboot程序中集成Nacos

先在管理后臺創建好命名空間和dataId 配置文件等

了解Springboot 的配置讀取機制,想裝x的(bushi)看這個:21.?Externalized Configuration (spring.io)英語看不懂就看這個:Felo搜索 - 你的免費AI智能搜索引擎,不是把中文的內容給你了你都能挑出毛病?好吧!

image.png

太長不看就讓我給你嚼一下,然后喂給你:

工作目錄下的 config 目錄中的配置文件先加載,配置文件 bootstrap 比 application 先加載。所以我們只要把配置文件掛載到工作目錄下的config中就行了。

老規矩,先整理好配置 bootstrap.properties

spring.application.name=<app-name>
server.port=8080
spring.profiles.active=<profile>spring.cloud.nacos.config.server-addr=nacos-dev-0.nacos-dev-headless.infrastructure.svc.cluster.local:8848
spring.cloud.nacos.config.enabled=true
spring.cloud.nacos.config.refresh-enabled=true
spring.cloud.nacos.config.file-extension=properties
spring.cloud.nacos.username=<username>
spring.cloud.nacos.password=<password>
spring.cloud.nacos.config.namespace=74a2a3bc-cded-4090-b326-993dba2871e6
spring.cloud.nacos.config.group=DEFAULT_GROUPspring.cloud.nacos.config.shared-configs[0].data-id=redis-dev.properties
spring.cloud.nacos.config.shared-configs[1].data-id=kafka-dev.properties
spring.cloud.nacos.config.shared-configs[2].data-id=xxl-job-dev.properties
spring.cloud.nacos.config.shared-configs[3].data-id=druid-dev.properties

然后,在 k8s 配置文件中掛載配置文件:ConfigMaps | Kubernetes 或者這個 k8s deployment掛載配置文件-Felo搜索

最后當然是在應用中引入 Nacos 的依賴,因為我只使用配置中心,我只引入了

<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId><version>2.2.10-RC1</version>
</dependency>

啟動服務,查看監聽查詢

image.png

elegant!

Ref

集群模式部署 | Nacos 官網

nacos-operator方式部署

Nacos API 接口

屬性配置列表

MySQL初始化腳本

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/43415.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/43415.shtml
英文地址,請注明出處:http://en.pswp.cn/web/43415.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

華為機考真題 -- 求字符串中所有整數

題目描述&#xff1a; 輸入字符串s&#xff0c;輸出s中包含所有整數的最小和。 說明&#xff1a;字符串s&#xff0c;只包含 a-z A-Z &#xff1b; 合法的整數包括&#xff1a; 1&#xff09; 正整數 一個或者多個0-9組成&#xff0c;如 0 2 3 002 102 2&#xff09;負整數…

【RHCE】基于用戶認證和TLS加密的HTTP服務(HTTPS)

目錄 一、創建用戶賬號 二、TLS加密 三、配置http服務子配置文件 四、創建訪問http服務的文件夾以及輸入重定向到文件 五、配置Linux本地倉庫以及Windows下的本地倉庫 六、基礎操作 七、測試 一、創建用戶賬號 用戶認證 # 創建兩個賬戶 [rootlocalhost ~]# htpasswd -…

交叉熵損失函數的使用目的(很膚淺的理解)

第一種使用方法 import torch from torch import nn # Example of target with class indices loss nn.CrossEntropyLoss() input torch.randn(3, 5, requires_gradTrue) target torch.empty(3, dtypetorch.long).random_(5) output loss(input, target) output.backward(…

可控學習綜述:信息檢索中的方法、應用和挑戰

每周跟蹤AI熱點新聞動向和震撼發展 想要探索生成式人工智能的前沿進展嗎&#xff1f;訂閱我們的簡報&#xff0c;深入解析最新的技術突破、實際應用案例和未來的趨勢。與全球數同行一同&#xff0c;從行業內部的深度分析和實用指南中受益。不要錯過這個機會&#xff0c;成為AI領…

10. 啤酒和飲料

啤酒和飲料 題目描述 本題為填空題&#xff0c;只需要算出結果后&#xff0c;在代碼中使用輸出語句將所填結果輸出即可。 啤酒每罐 2.32.3 元&#xff0c;飲料每罐 1.91.9 元。小明買了若干啤酒和飲料&#xff0c;一共花了 82.382.3 元。 我們還知道他買的啤酒比飲料的數量…

js逆向第24例:FastMoss數據分析網站Fm-Sign加密字段破解

文章目錄 一、前言二、定位關鍵參數三、代碼實現一、前言 破解:FastMoss數據分析網站Fm-Sign加密字段 二、定位關鍵參數 先看一下網站加密字段是長什么樣,如下圖,老手估計一下子就能發現字段Fm-Sign:的密文類似md5加密后的結果。 直接全局搜索Fm-Sign:看來key也沒有做混…

韋爾股份:深蹲起跳?

利潤大增7倍&#xff0c;是反轉信號還是回光返照&#xff1f; 今天我們聊聊光學半導體龍頭——韋爾股份。 上周末&#xff0c;韋爾股份發布半年業績預告&#xff0c;預計上半年凈利潤13至14億&#xff0c;同比增幅高達 754%至 819%。 然而&#xff0c;回首 2023 年它的凈利僅 …

Linux--DHCP原理與配置

目錄 一、DHCP 1、DHCP 服務是什么 2、DHCP 優點 3、為什么使用DHCP 二、DHCP的模式與分配方式 1、DHCP 模式 2、DHCP 分配方式 3、工作原理 3.1 租約過程(四步) 3.2 更新租約 三、DHCP 服務器的配置 3.1 配置DHCP 3.2 dhcpd.conf 的內容構成 3.3 全局設置,作…

RedisTemplate使用

文章目錄 RedisTemplate使用String類型Hash類型List類型Set類型Zset類型 RedisTemplate使用 String類型 Overridepublic void testString() {// t11();String key "k1";String currentNum;// 用法1&#xff1a;key是否存在Boolean value client.hasKey(key);log.i…

持續進化的難題:解析Transformer模型在增量學習中的挑戰

持續進化的難題&#xff1a;解析Transformer模型在增量學習中的挑戰 Transformer模型自問世以來&#xff0c;以其卓越的性能在自然語言處理&#xff08;NLP&#xff09;領域大放異彩。然而&#xff0c;當應用于增量學習場景時&#xff0c;即便是這一強大的模型也面臨著一系列挑…

Qt:15.布局管理器(QVBoxLayout-垂直布局、QHBoxLayout-水平布局、QGridLayout-網格布局、拉伸系數,控制控件顯示的大小)

目錄 一、QVBoxLayout-垂直布局&#xff1a; 1.1QVBoxLayout介紹&#xff1a; 1.2 屬性介紹&#xff1a; 1.3細節理解&#xff1a; 二、QHBoxLayout-水平布局&#xff1a; 三、QGridLayout-網格布局&#xff1a; 3.1QGridLayout介紹&#xff1a; 3.2常用方法&#xff1a…

如何在 Windows 10 上恢復未保存的 Word 文檔

您是否整晚都在處理一個重要的 word 文件&#xff0c;但忘記保存它了&#xff1f;本文適合您。在這里&#xff0c;我們將解釋如何恢復未保存的 word 文檔。除此之外&#xff0c;您還將學習如何恢復已刪除的 word 文檔。 從專業人士到高中生&#xff0c;每個人都了解丟失重要 W…

three完全開源擴展案例01-三角形漸變

演示地址 import * as THREE from three import { OrbitControls } from three/examples/jsm/controls/OrbitControls.jsconst box document.getElementById(box)const scene new THREE.Scene()const camera new THREE.PerspectiveCamera(75, box.clientWidth / box.client…

SQL Server鏡像與日志:數據保護的雙重保障

SQL Server鏡像與日志&#xff1a;數據保護的雙重保障 在SQL Server的高可用性解決方案中&#xff0c;數據庫鏡像和日志傳送是兩種重要的技術&#xff0c;它們都旨在提供數據的安全性和業務連續性。然而&#xff0c;這兩種技術在實現方式和使用場景上有著明顯的區別。本文將深…

時間序列分析方法匯總對比及優缺點和適用情況(上)--1. 移動平均 2. 指數平滑 3. 自回歸模型 4. 移動平均模型 5. 自回歸移動平均模型

目錄 1. 移動平均&#xff08;Moving Average&#xff09; 2. 指數平滑&#xff08;Exponential Smoothing&#xff09; 3. 自回歸模型&#xff08;Autoregressive Model, AR&#xff09; 4. 移動平均模型&#xff08;Moving Average Model, MA&#xff09; 5. 自回歸移動…

杜比全景聲——空間音頻技術

什么是杜比&#xff1f;是否是標清、高清、超清之上的更清晰的格式&#xff1f;杜比全景聲 和傳統多聲道立體聲的差別&#xff1f;杜比全景聲音頻的渲染方式&#xff1f;車載平臺上杜比技術的應用&#xff1f; 杜比技術的起源 杜比實驗室&#xff08;Dolby Laboratories&…

大數據基礎:Hadoop之MapReduce重點架構原理

文章目錄 Hadoop之MapReduce重點架構原理 一、MapReduce概念 二、MapReduce 編程思想 2.1、Map階段 2.2、Reduce階段 三、MapReduce處理數據流程 四、MapReduce Shuffle 五、MapReduce注意點 六、MapReduce的三次排序 Hadoop之MapReduce重點架構原理 一、MapReduce概…

ORACLE重裝之后恢復數據庫,相當于sqlserver的附加數據庫

在開發機器上經常會遇到重裝系統的問題,重裝之前如果ORACLE沒有及時備份的話重裝之后就糾結了,數據還原很頭疼。 只能找到一些ORACLE安裝與重裝系統前目錄相同的解決辦法,目錄不同就沒招了。 我用的是oracle11G。老版的應該相似。 經過我的嘗試,找到了幾個關鍵點,現在分…

講講 JVM 的內存結構(附上Demo講解)

講講 JVM 的內存結構 什么是 JVM 內存結構&#xff1f;線程私有程序計數器?虛擬機棧本地方法棧 線程共享堆?方法區?注意永久代?元空間?運行時常量池?直接內存? 代碼詳解 什么是 JVM 內存結構&#xff1f; JVM內存結構分為5大區域&#xff0c;程序計數器、虛擬機棧、本地…

C# 泛型

泛型 泛型不是語法糖&#xff0c;而是由框架提供的一種便捷語法&#xff0c;首次出現在.NET 2.0中。 1. 泛型定義 泛型&#xff1a;是一種程序特性&#xff0c;定義時不對類型做出明確的規定&#xff0c;使用時規定且不能改變。一般應用&#xff1a;泛型集合、泛型方法、泛型…