在当今的云计算时代,微服务架构已经成为构建复杂应用的主流模式。为了支持这一架构,我们需要一个强大而灵活的服务发现和配置管理平台。Nacos以其卓越的功能和易用性成为众多开发者的首选。同时,选择PostgreSQL作为其后端数据库,不仅保障了数据的安全性和持久性,还提升了系统的性能。本文将详细介绍如何在Kubernetes环境中部署Nacos,并将其数据存储集成到PostgreSQL中,帮助您快速搭建起一套高效稳定的微服务平台。
Nacos高可用架构图
01
先决条件
1、Kubernetes集群可用
2、StorageClass存储类可用
3、Ingress Controller可用
4、PostgreSQL集群可用
02
初始化nacos表结构
1、下载初始化脚本
$ sudo mkdir /etc/kubernetes/addons/nacos
$ sudo curl -L -o /etc/kubernetes/addons/nacos/nacos-pg.sql https://github.com/wuchubuzai2018/nacos-datasource-extend-plugins/raw/refs/heads/main/nacos-datasource-plugin-ext/nacos-postgresql-datasource-plugin-ext/src/main/resources/schema/nacos-pg.sql
2、postgresql创建库并授权
$ CREATE USER nacos WITH PASSWORD '123456';
$ CREATE DATABASE nacos_prod OWNER nacos;
3、导入数据
$ psql -h 172.139.20.188 -p 9999 -U nacos -W nacos_prod < /etc/kubernetes/addons/nacos/nacos-pg.sql
03
部署Nacos服务
1、创建命名空间
$ kubectl create ns nacos
2、创建Nacos配置文件
$ cat <<'EOF' | sudo tee /etc/kubernetes/addons/nacos/application.properties > /dev/null
#*************** Spring Boot Related Configurations ***************#
#server.servlet.contextPath=/nacos
server.error.include-message=ALWAYS
server.port=8848
#*************** Network Related Configurations ***************#
#*************** Config Module Related Configurations ***************#
spring.sql.init.platform=postgresql
db.num=1
db.url.0=jdbc:postgresql://172.139.20.188:9999/nacos_prod?tcpKeepAlive=true&reWriteBatchedInserts=true&ApplicationName=nacos_java
db.user.0=nacos
db.password.0=123456
db.pool.config.connectionTimeout=30000
db.pool.config.validationTimeout=10000
db.pool.config.maximumPoolSize=20
db.pool.config.minimumIdle=2
db.pool.config.driverClassName=org.postgresql.Driver
nacos.config.push.maxRetryTime=50
#*************** Naming Module Related Configurations ***************#
#*************** CMDB Module Related Configurations ***************#
#***********Metrics for tomcat *********