您当前的位置:首页 > 电脑百科 > 程序开发 > 架构

如何基于Kubernetes运行Nacos高可用集群

时间:2023-12-18 14:13:48  来源:微信公众号  作者:云原生运维圈

Nacos(Namings and Configuration Management)是阿里巴巴开源的一个易于构建云原生应用的动态服务发现、配置管理和服务管理平台。

以下是Nacos的一些主要功能和特点:

  • 服务发现和服务健康检查:Nacos 支持基于 DNS 和 RPC 的服务发现。这意味着,您的微服务应用可以在 Nacos 中注册自己,并发现其他服务。同时,Nacos 可以对注册的服务进行健康检查,以确保服务可用。
  • 动态配置服务:在微服务架构中,配置信息可能会频繁变动,Nacos 提供了一个中心化的、外部化的动态配置服务,您可以在 Nacos 中动态地管理和修改配置信息,所有使用该配置的服务都会实时得到通知并应用新配置,而无需重启。
  • 动态 DNS 服务:Nacos 提供了一种基于 DNS 协议的服务发现方式,可以更好地支持跨集群、跨地区的服务发现需求。
  • 服务和元数据管理:Nacos 提供了统一的服务管理和元数据管理功能,您可以在 Nacos 中管理所有服务的信息和状态,以及服务的元数据信息。
  • 支持持久化:Nacos 支持 MySQL 数据库持久化,可以保证注册服务和配置信息的安全性。
  • 易于集成和扩展:Nacos 提供了丰富的 API 和插件,可以方便地与其他系统集成,也可以根据需要进行扩展。
  • 支持多种环境:Nacos 可以运行在单机环境、集群环境,也可以运行在云环境如 Kube.NETes 和 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"
  ...

如何基于Kubernetes运行Nacos高可用集群

注意:NACOS_SERVERS配置指定的命名空间一定要与Nacos部署的命名空间一致

执行创建:

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

查看Pod状态:

$ 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

访问验证

本次通过最简单的forward端口转发进行暴露进行访问(也可以通过Ingress进行暴露访问):

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

http://转发机器IP:8848 默认帐号/密码:nacos/nacos:

如何基于Kubernetes运行Nacos高可用集群

如何基于Kubernetes运行Nacos高可用集群

查看集群状态:

如何基于Kubernetes运行Nacos高可用集群

到此为止,Nacos集群就完成部署了!

SpringCloud微服务容器化部署:https://www.processon.com/view/link/656850b84b191f7e7e04d4f5



Tags:Kubernetes   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
Kubernetes 究竟有没有 LTS?
从一个有趣的问题引出很多人都在关注的 Kubernetes LTS 的问题。有趣的问题2019 年,一个名为 apiserver LoopbackClient Server cert expired after 1 year[1] 的 issue 中提...【详细内容】
2024-03-15  Search: Kubernetes  点击:(5)  评论:(0)  加入收藏
Kubernetes 集群 CPU 使用率只有 13% :这下大家该知道如何省钱了
作者 | THE STACK译者 | 刘雅梦策划 | Tina根据 CAST AI 对 4000 个 Kubernetes 集群的分析,Kubernetes 集群通常只使用 13% 的 CPU 和平均 20% 的内存,这表明存在严重的过度...【详细内容】
2024-03-08  Search: Kubernetes  点击:(12)  评论:(0)  加入收藏
聊聊 Kubernetes 网络模型综合指南
这篇详细的博文探讨了 Kubernetes 网络的复杂性,提供了关于如何在容器化环境中确保高效和安全通信的见解。译自Navigating the Network: A Comprehensive Guide to Kubernete...【详细内容】
2024-02-19  Search: Kubernetes  点击:(37)  评论:(0)  加入收藏
Kubernetes是什么?主要特点是什么?
Kubernetes是什么?Kubernetes,也称为K8s,是一个开源的容器编排系统,由Google首次开发和维护。它允许容器化的应用程序在集群中自动部署、扩展和管理。Kubernetes提供了一种容器...【详细内容】
2024-02-01  Search: Kubernetes  点击:(153)  评论:(0)  加入收藏
开发者的Kubernetes懒人指南
你可以将本文作为开发者快速了解 Kubernetes 的指南。从基础知识到更高级的主题,如 Helm Chart,以及所有这些如何影响你作为开发者。译自Kubernetes for Lazy Developers。作...【详细内容】
2024-02-01  Search: Kubernetes  点击:(50)  评论:(0)  加入收藏
Kubernetes Informer基本原理,你明白了吗?
本文分析 k8s controller 中 informer 启动的基本流程不论是 k8s 自身组件,还是自己编写 controller,都需要通过 apiserver 监听 etcd 事件来完成自己的控制循环逻辑。如何高...【详细内容】
2024-01-30  Search: Kubernetes  点击:(37)  评论:(0)  加入收藏
Kubernetes 100个常用命令!
这篇文章是关于使用 Kubectl 进行 Kubernetes 诊断的指南。列出了 100 个 Kubectl 命令,这些命令对于诊断 Kubernetes 集群中的问题非常有用。这些问题包括但不限于:• 集...【详细内容】
2024-01-03  Search: Kubernetes  点击:(76)  评论:(0)  加入收藏
一文读懂Kubernetes部署策略
在这篇文章中,我们将深入研究 Kubernetes 部署概念和一些常见策略,了解每种策略的优缺点。合适的部署策略使我们能够在发布应用程序时最大限度地减少停机时间、增强客户体验并...【详细内容】
2024-01-03  Search: Kubernetes  点击:(58)  评论:(0)  加入收藏
从Kubernetes的探针到DevOps
今天在群里又看有人问如何设置 Kubernetes 的探针,感觉要补充的话太多了,结合我们在一些 DevOps 项目中痛苦的体验,今天一劳永逸的全部说完,此外,也为大家展现一下为什么 DevOps...【详细内容】
2023-12-27  Search: Kubernetes  点击:(113)  评论:(0)  加入收藏
如何基于Kubernetes运行Nacos高可用集群
Nacos(Namings and Configuration Management)是阿里巴巴开源的一个易于构建云原生应用的动态服务发现、配置管理和服务管理平台。以下是Nacos的一些主要功能和特点: 服务发现...【详细内容】
2023-12-18  Search: Kubernetes  点击:(68)  评论:(0)  加入收藏
▌简易百科推荐
对于微服务架构监控应该遵守的原则
随着软件交付方式的变革,微服务架构的兴起使得软件开发变得更加快速和灵活。在这种情况下,监控系统成为了微服务控制系统的核心组成部分。随着软件的复杂性不断增加,了解系统的...【详细内容】
2024-04-03  步步运维步步坑    Tags:架构   点击:(4)  评论:(0)  加入收藏
大模型应用的 10 种架构模式
作者 | 曹洪伟在塑造新领域的过程中,我们往往依赖于一些经过实践验证的策略、方法和模式。这种观念对于软件工程领域的专业人士来说,已经司空见惯,设计模式已成为程序员们的重...【详细内容】
2024-03-27    InfoQ  Tags:架构模式   点击:(13)  评论:(0)  加入收藏
哈啰云原生架构落地实践
一、弹性伸缩技术实践1.全网容器化后一线研发的使用问题全网容器化后一线研发会面临一系列使用问题,包括时机、容量、效率和成本问题,弹性伸缩是云原生容器化后的必然技术选择...【详细内容】
2024-03-27  哈啰技术  微信公众号  Tags:架构   点击:(10)  评论:(0)  加入收藏
DDD 与 CQRS 才是黄金组合
在日常工作中,你是否也遇到过下面几种情况: 使用一个已有接口进行业务开发,上线后出现严重的性能问题,被老板当众质疑:“你为什么不使用缓存接口,这个接口全部走数据库,这怎么能扛...【详细内容】
2024-03-27  dbaplus社群    Tags:DDD   点击:(11)  评论:(0)  加入收藏
高并发架构设计(三大利器:缓存、限流和降级)
软件系统有三个追求:高性能、高并发、高可用,俗称三高。本篇讨论高并发,从高并发是什么到高并发应对的策略、缓存、限流、降级等。引言1.高并发背景互联网行业迅速发展,用户量剧...【详细内容】
2024-03-13    阿里云开发者  Tags:高并发   点击:(5)  评论:(0)  加入收藏
如何判断架构设计的优劣?
架构设计的基本准则是非常重要的,它们指导着我们如何构建可靠、可维护、可测试的系统。下面是这些准则的转换表达方式:简单即美(KISS):KISS原则的核心思想是保持简单。在设计系统...【详细内容】
2024-02-20  二进制跳动  微信公众号  Tags:架构设计   点击:(36)  评论:(0)  加入收藏
详解基于SpringBoot的WebSocket应用开发
在现代Web应用中,实时交互和数据推送的需求日益增长。WebSocket协议作为一种全双工通信协议,允许服务端与客户端之间建立持久性的连接,实现实时、双向的数据传输,极大地提升了用...【详细内容】
2024-01-30  ijunfu  今日头条  Tags:SpringBoot   点击:(8)  评论:(0)  加入收藏
PHP+Go 开发仿简书,实战高并发高可用微服务架构
来百度APP畅享高清图片//下栽のke:chaoxingit.com/2105/PHP和Go语言结合,可以开发出高效且稳定的仿简书应用。在实现高并发和高可用微服务架构时,我们可以采用一些关键技术。首...【详细内容】
2024-01-14  547蓝色星球    Tags:架构   点击:(114)  评论:(0)  加入收藏
GraalVM与Spring Boot 3.0:加速应用性能的完美融合
在2023年,SpringBoot3.0的发布标志着Spring框架对GraalVM的全面支持,这一支持是对Spring技术栈的重要补充。GraalVM是一个高性能的多语言虚拟机,它提供了Ahead-of-Time(AOT)编...【详细内容】
2024-01-11    王建立  Tags:Spring Boot   点击:(124)  评论:(0)  加入收藏
Spring Boot虚拟线程的性能还不如Webflux?
早上看到一篇关于Spring Boot虚拟线程和Webflux性能对比的文章,觉得还不错。内容较长,抓重点给大家介绍一下这篇文章的核心内容,方便大家快速阅读。测试场景作者采用了一个尽可...【详细内容】
2024-01-10  互联网架构小马哥    Tags:Spring Boot   点击:(115)  评论:(0)  加入收藏
站内最新
站内热门
站内头条