KubeGems启用Nacos配置中心
KubeGems 是一款以围绕 Kubernetes 通过自研和集成云原生项目而构建的通用性开源 PaaS 云管理平台。经过我们内部近一年的持续迭代,当前 KubeGems 的核心功能已经初步具备多云多租户场景下的统一管理。并通过插件化的方式,在用户界面中灵活控制包括 监控系统 、 日志系统 、 微服务治理 等众多插件的启用和关闭。 Nacos 介绍
Nacos 是阿里云开源一款在微服务场景下用于处理应用配置发布管理和服务注册管理的服务平台。其主要提供了如下几个特性: 服务发现和服务健康监测 基于 DNS 和 RPC 的服务发现。服务提供者使用 原生SDK、OpenAPI、或一个独立的Agent TODO注册 Service 后,服务消费者可以使用DNS TODO 或HTTP&API查找和发现服务。 动态配置服务 动态配置服务可以让您以中心化、外部化和动态化的方式管理所有环境的应用配置和服务配置。 动态 DNS 服务 动态 DNS 服务支持权重路由,让您更容易地实现中间层负载均衡、更灵活的路由策略、流量控制以及数据中心内网的简单DNS解析服务。 服务及其元数据管理 Nacos 从微服务平台建设的视角管理数据中心的所有服务及元数据,包括管理服务的描述、生命周期、服务的静态依赖分析、服务的健康状态、服务的流量管理、路由及安全策略、服务的 SLA 以及最首要的 metrics 统计数据。 KubeGems 中的 Nacos KubeGems 自v1.21版本之后开启了对 Nacos 配置中心的支持,并利用了内置 Plugins CRD 实现了对 Nacos 的快速启动。
KubeGems 中的 Nacos 安装源来至官方社区提供https://github.com/nacos-group/nacos-k8s,并在 plugin crd 中来管理部署的版本。用过 Nacos 的同学可能知道,其内部的数据模型主要围绕 dataid 、group 和namespace 这 3 个进行操作。由于 KubeGems 的设计是一个支持多租户的平台,所以在应用 nacos 数据模型时,按照了 tenant + project 来区分内部的命名空间。
启用和配置插件
KubeGems 启用 Nacos 需要具备系统管理员的权限进行操作。管理员进入管理后台的"插件管理",点击"启用"按钮"即可开启Nacos。
直到出现如下状态,代表插件运行正常
此时,我们就可以在租户的环境中开始使用 Nacos 服务
个性化配置
Nacos插件的配置以 CRD 的形式存放在 nacos 命名空间中,我们可以通过命令kubectl edit plugin nacos -n nacos 对插件进行个性化配置。apiVersion: plugins.kubegems.io/v1beta1 kind: Plugin metadata: finalizers: - plugins.kubegems.io/finalizer generation: 1 name: nacos namespace: nacos spec: kind: helm path: helm url: https://github.com/nacos-group/nacos-k8s.git values: namespace: nacos global: mode: cluster nacos: replicaCount: 1 image: repository: registry.cn-beijing.aliyuncs.com/kubegems/nacos-server tag: v2.1.1 plugin: image: repository: registry.cn-beijing.aliyuncs.com/kubegems/nacos-peer-finder-plugin persistence: data: storageClassName: local-path enabled: true service: type: ClusterIP version: master
提示:KubeGems的插件 CRD 由 https://github.com/kubegems/bundle-controller提供支持,我们也可以直接使用 bundle-controller 在非 kubegems 集群中管理插件。
集群部署
Nacos集群由社区提供支持部署,kubegems 默认将 nacos 的全局运行模式设置为"cluster",如果您需要扩展成多集群,只需修改 replicaCount 的副本数为 3 即可。
开放集群外访问
Nacos 插件默认运行在 Kubernetes 内部,如果需要在集群外访问 Nacos 需借助网关实现。管理员可以在后台创建一条基于默认网关的 ingress 来代理 nacos api。过程如下:
第一步:进入路由功能页面,选择 nacos 命名空间
第二步:创建并提交一条路由规则,用于 nacos 的代理
第三步:获取访问地址
提示:Nacos2.0版本相比1.X新增了gRPC的通信方式,因此需要增加2个端口。新增端口是在配置的主端口(server.port)基础上,进行一定偏移量自动生成 使用配置中心
进入应用环境下的"应用配置",可以点击右上角的"获取访问信息"查看当前环境下的 nacos sdk 所需的配置信息
配置管理
点击"创建配置项"就可以创建配置
配置历史与回滚
监听列表
运行测试
我们用 nacos-sdk-go/v1 来做一个简单的认证package main import ( "fmt" "time" "github.com/nacos-group/nacos-sdk-go/clients" "github.com/nacos-group/nacos-sdk-go/common/constant" "github.com/nacos-group/nacos-sdk-go/vo" ) func main() { sc := []constant.ServerConfig{ { IpAddr: "nacos.kubegems.io", Port: 31956, }, } cc := constant.ClientConfig{ NamespaceId: "69f7325702bc396a8773f9a0a94eea310b21ec39", //namespace id TimeoutMs: 5000, NotLoadCacheAtStart: true, LogDir: "/tmp/nacos/log", CacheDir: "/tmp/nacos/cache", LogLevel: "debug", } client, err := clients.NewConfigClient( vo.NacosClientParam{ ClientConfig: &cc, ServerConfigs: sc, }, ) if err != nil { panic(err) } content, err := client.GetConfig(vo.ConfigParam{ DataId: "test", Group: "e3", }) fmt.Println("GetConfig,config :" + content) err = client.ListenConfig(vo.ConfigParam{ DataId: "test", Group: "e3", OnChange: func(namespace, group, dataId, data string) { fmt.Println("config changed group:" + group + ", dataId:" + dataId + ", content:" + data) }, }) time.Sleep(300 * time.Second) }
以下是运行情况
总结
本文主要介绍了在 KubeGems 中启用并使用Nacos插件作为应用的配置中心的基本管理功能。Nacos 是一个非常棒的应用配置管理平台,KubeGems 团队将持续关注此项目,并为用户在 Kubernetes 集群提供更友好的支持。
诸葛亮北伐时的3个对手,一个司马懿一个曹真,还有一个是谁建安七年(202年)刘备第三次前往隆中拜访诸葛亮三顾茅庐后请出诸葛亮,诸葛亮出山没多久,建安十三年(208年)刘表病逝,其二子刘琮继位,听到曹操南下的消息,遣使投降。刘备在樊城知道
假如清朝十二帝开会,你猜皇太极最想骂谁?清朝,是中国历史上最后一个封建王朝,共传十二帝,统治者为满洲爱新觉罗氏。从努尔哈赤建立后金起,总计296年。从皇太极改国号为清起,国祚276年。从清兵入关,建立全国性政权算起为26
蜀国灭亡后,为何张飞一家无人敢动,关羽却满门被杀?公元263年,三国时代末期,魏国独大,蜀国式微。司马昭见时机已到,派大将邓艾出兵伐蜀。邓艾不愧为魏国名将,一路领兵打仗势如破竹,仅仅三个月就直逼成都城下。蜀后主刘禅见抵抗无用,遂率
周姓是如何来的?历史又有过哪些名人呢?一周姓来源1周姓的最早出现,可追溯到远古的黄帝轩辕氏。据姓氏考略所载,相传黄帝时就有一位叫周昌的大将,至商代又有一名叫周任的太史,这两个人的后代都以周为姓氏。2出自姬姓,其始祖为周
被当成红颜祸水典例的妹喜妲己褒姒中,谁是最无辜的?我国古代朝代更迭是一件几乎可以说成是司空见惯的事,在漫长的历史当中,许多朝代建立崛起又最终走向灭亡,而大大小小的割据政权更是不计其数。值得一提的是,我国最早的三个朝代夏商西周的灭亡
闹剧般的萧宝夤之乱973不过,怀疑归怀疑,不满归不满,风起云涌的叛乱还得平定,而且,萧宝夤毕竟还没真正露出叛乱的迹象,北魏朝廷也担心真的逼迫下去,反而彻底逼反了萧宝夤,因而,不久之后,北魏朝廷又任命萧宝夤
女匪首被擒获,上将李达不知道该咋处决,毛主席一锤定音不能杀说到土匪这个群体,不少人都会表现得深恶痛绝。若是被问到该怎么处置被抓的土匪时,群众们一定会不约而同地回答一定要剿干净,不然他们又来抢怎么办?图1纵观中国上下五千年的历史,政府的剿匪
1949年,傅作义职权被架空,周恩来大怒谁能把20万人撤到北平?1949年新中国成立后,中央下达任命书,由傅作义担任中华人民共和国第一任水利部长。任命一下来就有很多人认为这事不公平,怎么能够让一个曾经的国军将领担任这么重的职位?所以,在傅作义上
秦始皇统一之战灭韩一直以来,在神州大地上同时存在七个王国。七也许是很多人的吉祥数字,但绝不是嬴政的。这时的嬴政的他的吉祥数字只能是一,独一无二的一,一统天下的一。灭亡六国先从哪家开始呢?嬴政在思考这
邓小平如何评价自己?引言2006年9月14日晚上,20世纪最著名的新闻工作者意大利著名女记者奥利阿娜法拉奇在医院去世,身为知名记者,她曾成功采访过基辛格西哈努尔甘地等政要人物,但是对于她而言,职业生涯
康熙口误叫错一水果名后人却跟着念错300年,你知道它吗?水果的种类有上千种,而哈密瓜只是水果中的一类。而且还是热带性的水果之一,其甜蜜的程度,让许多的人们所热爱。那么你知道哈密瓜为啥会有这么好听的名字吗?说出来你可能不信。它可是康熙叫错