当前位置:首页 > 服务端 > nacosk8s部署

nacosk8s部署

2022年08月06日 12:01:47服务端10

前言

最近几天完成了 Nacos 在Kubernetes 部署,顺便写篇文章记录下部署 过程,项目地址Nacos-K8s,有兴趣的可以去了解下,后续会提交到Nacos-Group 里面。

Kubernetes Nacos

本项目包含一个可构建的Nacos Docker Image,旨在利用StatefulSets在Kubernetes上部署Nacos

已知限制

暂时不支持动态增量扩容

必须使用持久卷,本项目实现NFS持久卷的例子,如果使用emptyDirs可能会导致数据丢失

Docker 镜像

在build目录中包含了已经打好包的Nacos(基于develop分支,已提PR,目前的release版本都不支持k8s集群)项目包,以及镜像制作文件,镜像基础环境Ubuntu 16.04、Open JDK 1.8(JDK 8u111).目前镜像已经提交到Docker Hub。

项目目录

目录

描述

build

构建Nacos镜像的项目包以及Dockerfile

deploy

k8s部署yaml文件

Initdb

Nacos 集群数据库初始化SQL脚本

使用指南

前提要求

本项目的使用,是基于你已经对Kubernetes有一定的认知,所以对如何搭建K8S集群,请自行google或者百度

NFS安装方面也不是本文的重点,请自行google或者百度

环境准备

机器配置(作者演示使用阿里云ECS)

机器内网IP

主机名

机器配置

172.17.79.3

k8s-master

CentOS Linux release 7.4.1708 (Core) 单核 内存4G 普通云盘40G

172.17.79.4

node01

CentOS Linux release 7.4.1708 (Core) 单核 内存4G 普通云盘40G

172.17.79.5

node02

CentOS Linux release 7.4.1708 (Core) 单核 内存4G 普通云盘40G

Kubernetes 版本:1.12.2 (如果你和我一样只使用了三台机器,那么记得开启master节点的部署功能)

NFS 版本:4.1 在k8s-master进行安装Server端,并且指定共享目录,本项目指定的/data/nfs-share

Git

搭建步骤

Clone项目

在每台机器上都Clone本工程,演示工程就是导入根目录,所以部署路径都是root/nacos-k8s

git clone https://github.com/paderlol/nacos-k8s.git

部署数据库

数据库是以指定节点的方式部署,主库部署在node01节点,从库部署在node02节点.

部署主库

#进入clone下来的工程根目录

cd nacos-k8s

# 在k8s上创建mysql主库

kubectl create -f deploy/mysql/mysql.yml

部署备库

#进入clone下来的工程根目录

cd nacos-k8s

# 在k8s上创建mysql备库

kubectl create -f deploy/mysql/mysql-bak.yml

注意:如果工程不是导入机器的根目录,那么同样需要修改mysql.yaml和mysql-bak.yaml中挂载路径,因为数据库PVC使用的是本地卷,请注意更改配置中的path路径如下所示

apiVersion: v1 kind: PersistentVolume metadata: name: mysql-pv-volume labels: type: local spec: storageClassName: manual capacity: storage: 20Gi accessModes: - ReadWriteOnce hostPath: path: "/root/nacos-k8s/mysql" --- ....其他配置 --- apiVersion: v1 kind: PersistentVolume metadata: name: mysql-init-pv-volume labels: type: local spec: storageClassName: initdb capacity: storage: 20Gi accessModes: - ReadWriteOnce hostPath: path: "/root/nacos-k8s/initdb"

部署后查看数据库是否已经正常运行

#查看主库是否正常运行

kubectl get pod -l app=mysql

NAME READY STATUS RESTARTS AGE

mysql-bak-5c5b5bd479-922zv 1/1 Running 0 2d23h

#查看备库是否正常运行

kubectl get pod -l app=mysql-bak

部署NFS

创建角色 K8S在1.6以后默认开启了RBAC

kubectl create -f deploy/nfs/rbac.yaml

提示:如果你的K8S命名空间不是默认"default",那么在创建RBAC之前先执行以下脚本

# Set the subject of the RBAC objects to the current namespace where the provisioner is being deployed $ NS=$(kubectl config get-contexts|grep -e "^\*" |awk '{print $5}') $ NAMESPACE=${NS:-default} $ sed -i'' "s/namespace:.*/namespace: $NAMESPACE/g" ./deploy/nfs/rbac.yaml

创建ServiceAccount 以及部署NFS-Client Provisioner

kubectl create -f deploy/nfs/deployment.yaml

创建NFS StorageClass

kubectl create -f deploy/nfs/class.yaml

查看NFS是否运行正常

kubectl get pod -l app=nfs-client-provisioner

部署Nacos

获取主库从库在K8S的地址

# 查看主库和从库的cluster ip

kubectl get svc

mysql NodePort 10.105.42.247 3306:31833/TCP 2d23h

mysql-bak NodePort 10.105.35.138 3306:31522/TCP 2d23h

修改配置文件depoly/nacos/nacos-pvc-nfs.yaml,找到如下配置,填入上一步查到的主库和从库地址

db.host.zero: "主库地址"

db.name.zero: "nacos_devtest"

db.port.zero: "3306"

db.host.one: "备库地址"

db.name.one: "nacos_devtest"

db.port.one: "3306"

db.user: "nacos"

db.password: "nacos"

创建并运行Nacos集群

kubectl create -f nacos-k8s/deploy/nacos/nacos-pvc-nfs.yaml

查看是否运行正常

kubectl get pod -l app=nacos

AME READY STATUS RESTARTS AGE

nacos-0 1/1 Running 0 19h

nacos-1 1/1 Running 0 19h

nacos-2 1/1 Running 0 19h

测试

服务注册

curl -X PUT 'http://集群地址:8848/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080'

服务发现

curl -X GET 'http://集群地址:8848/nacos/v1/ns/instances?serviceName=nacos.naming.serviceName'

配置推送

curl -X POST "http://集群地址:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test&content=helloWorld"

配置获取

curl -X GET "http://集群地址:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test"本文转自SegmentFault-Kubernetes Nacos集群

作者:致力于
来源链接:https://blog.csdn.net/weixin_29432421/article/details/111896383

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/server/18435.html

标签: Nacos
分享给朋友:

“nacosk8s部署” 的相关文章

nacos启动教程

nacos启动教程

1、下载nacos压缩包 链接:https://pan.baidu.com/s/1PE6D73rIuOhnfvKVqvDwhA  提取码:oj9y 2、解压  3、修改conf里的配置文件(application.properties...

windows下安装nacos

windows下安装nacos

1、下载 下载地址:https://github.com/alibaba/nacos/releases/tag/1.1.0 选择这个zip下载。 下载完毕后我们可以看看目录结构: 这里的bin目录里面有windows启动文件startup.cmd,...

配置中心 Nacos 原理 Nacos如何加载远程配置?

配置中心 Nacos 原理 Nacos如何加载远程配置?

文章目录 前言 Nacos如何加载远程配置? wireshark抓包分析 原理分析...

nacos LINUX 启动

nacos  sh startup.sh -m standalone 作者:cai_code 来源链接:https://blog.csdn.net/gaoduicai/article/details/122742762...

Nacos修改默认密码

1.添加依赖 <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-s...

ubuntu安装nacos

ubuntu安装nacos

1.下载nacos,github下载地址:https://github.com/alibaba/nacos/releases 选用目前最新的版本:1.3.0,这个版本直接在页面就可以修改nacos登录密码,并且还可以创建其他的登录用户,之前用过1.0.0版本如果修改naco...

Nginx配置Nacos反向代理

Nginx配置Nacos反向代理

修改nginx.conf文件 找到nginx安装位置,在conf文件夹中,编辑nginx.conf文件,将nacos服务信息配置后重启即可。 # nacos proxy upstream nacoscluster {...

国内nacos下载

https://gitee.com/liguohui123/nacos-1.1.4-linux 我的码云地址里有,下载完成解压即可 作者:西北King 来源链接:https://blog.csdn.net/weixin_45967375/article/deta...

Nacos快速入门(一):Nacos初探

Nacos快速入门(一):Nacos初探

1、简介 Nacos官网:https://nacos.io/zh-cn/index.html 1.1、概览 Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服...

Nacos的简单使用

Nacos的简单使用

一、Nacos简介 Nacos是阿里系开发的兼容Spring Cloud的服务注册中心组件,是微服务国产化的先驱。Nacos作为与Eureka的对比,不仅具有Eureka固有的集群化、注册中心等功能,还具有配置中心的功能,并且更加简单使用,拆箱即用,也支持二次开发...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。