关注分享主机优惠活动
国内外VPS云服务器

Kubernetes Nacos 集群

总结:简介:这几天完成了一次部署,写了一篇文章记录部署过程。 如果您对项目地址感兴趣,可以稍后查找并提交。

简介

最近,我完成了 Nacos 在 Kubernetes 上的部署。 对了,我会写一篇文章来记录一下实现过程。 项目地址为Nacos-K8s。 如果您有兴趣,请查看一下。 后来发送到Nacos-Group。

Kubernetes Nacos

该项目包含一个可构建的 Nacos Docker 镜像,旨在使用 StatefulSets 将 Nacos 部署到 Kubernetes。

已知限制

目前不支持动态增量扩展。

您必须使用持久卷。 该项目实现了一个 NFS 持久卷示例。 使用emptyDirs可能会导致数据丢失

Docker镜像

b>

构建目录包含打包好的Nacos(开发者已经根据分支提交了PR,当前release版本不支持k8s集群)项目包、镜像制作文件。 基本镜像环境为Ubuntu 16.04,Open JDK 1.8(JDK 8u111)。 当前镜像正在发送到 Docker Hub。

项目目录

目录 描述
build 构建Nacos镜像和Dockerfile的项目包
deploy k8s部署yaml文件
Initdb Nacos集群数据库初始化SQL脚本

使用指南前提条件

该项目的使用是基于已经使用 Kube 的基础上。由于对rnetes有一些了解,关于如何搭建K8S集群的信息请自行参考谷歌或百度。

安装NFS不是本文的重点。 请自行Google或百度参考。

环境准备

机器配置(笔者使用阿里云ECS进行演示)

机器配置内网IP 主机名 机器配置
172.17.79.3 k8s[ k4]master CentOS Linux Release 7.4 .1708(核心)单核内存4G普通云盘40G
172.17.79.4 node01 CentOS Linux Release 7.4 .1708(核心)单核内存4G普通云盘40G
172.17.79.5 node02 CentOS Linux Release 7.4 .1708(核心)单核内存4G普通云盘40G

Kubernetes版本:1.12 .2(如果你像我一样只使用3台机器,那么不要忘记启用主节点部署功能)

NFS版本:4.1在k8s-master上安装服务器端并指定共享目录。 该项目是 /data/nfs-share

Git

构建说明克隆项目

在每台计算机上克隆此项目。 demo工程导入根目录,因此部署路径为root/nacos-k8s。

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

部署数据库

指定数据库的节点被部署。 主库部署在node01节点上,从库部署在node02节点上。

部署主库

#进入克隆项目根目录 cd nacos[k4 ]k8s # 在k8s上创建mysql主库 kubectl create -fdeploy/mysql/ mysql.yml

部署备库

#进入克隆项目根目录 cd nacos -k8s # 在k8s上创建mysql备库 kubectl create - fdeploy/mysql/mysql-bak.yml

注意:项目导入到机器根目录下,如果没有,也是一样的。 数据库PVC使用本地卷,因此需要更改mysql.yaml和mysql-bak.yaml的挂载路径。 请注意,配置中的path路径将更改为:

api版本:v1kind:持久卷元数据:名称:mysql-pv-卷标:类型:localspec:storageClassName:手动容量:存储:20Gi accessModes:- ReadWriteOnce hostPath:路径:“ /root/nacos[k4 ]k8s/mysql"---....其他配置 -- ]-apiVersion: v1kind: Per持久卷元数据:名称:mysql-init-pv- 卷标签:类型:localspec:storageClassName:initdb 容量:存储:20Gi 访问模式:- ReadWriteOnce 主机路径:路径:“/root/nacos-k8s /initdb"

部署完成后,检查数据库是否运行正常。

#检查主库是否运行成功 kubectl get pod -l app=mysqlNAME READY STATUS RESTARTS AGEmysql -bak -5c5b5bd479-922zv 1 /1 Running 0 2d23h# Check如果备库运行成功 kubectl get pod -l app=mysql-bak

部署 NFS

创建角色 K8S 从 1.6 开始默认启用 RBAC

kubectl create -fdeploy/nfs/rbac.yaml

提示:K8S 名称如果空间不是默认的“default”,请在创建 RBAC 之前运行以下脚本。

# 将 RBAC 对象的主题设置为当前 将其设置为 $NS=$(kubectl config get -context|grep -e "^*" |a 的命名空间wk "{print $5}")$ NAMESPACE=${NS:-default}$ sed -i"" "s/命名空间:.*/命名空间: $NAMESPACE/g" ./deploy/nfs/rbac .yaml

创建 ServiceAccount 并部署 NFS-Client Provisioner

kubectl create -fdeploy/nfs/deployment.yaml

NFS 创建 StorageClass

kubectl create -fdeploy/nfs/class.yaml

检查NFS是否运行成功

kubectl get pod -l app=nfs[ k4 ]client-provisioner

部署Nacos

获取主从库的K8S地址

# 显示主从库集群 ipkubectl get svcmysql NodePort 10.105.42.247  3306:31833/TCP 2d23hmysql-bak NodePort 10.105.3522/TCP 2d23h

配置修改文件depoli/nacos/ nacos[k4 ]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=nacosAME READY STATUS RESTARTS AGEnacos-0 1/1 Running 0 19hnacos- 1 1/1 Running 0 19hnacos [k4 ]2 1/1 运行 0 19h

测试服务注册

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

服务发现

curl [ k4]X GET "http:// /集群地址:8848/nacos/v1/ns/instances?serviceName=nacos.naming.serviceName"

配置推送

curl - X POST "http://cluster地址: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"

常见问题

问:如果我不想构建NFS,但想体验nacos-k8s怎么办?常见问题解答

p>

答:部署 nfs 的步骤是可选的,当您最终创建并运行 nfs 时,请使用以下方法:

kubectl。创建 -f nacos-k8s/deploy/nacos/nacos-quick -start.yaml

未经允许不得转载:主机频道 » Kubernetes Nacos 集群

评论 抢沙发

评论前必须登录!

 

本站不销售/不代购主机产品,不提供技术支持,仅出于个人爱好分享优惠信息,请遵纪守法文明上网

Copyright © 主机频道 - ZHUJIPINDAO.COM ,本站托管于国外主机商

© 2021-2024   主机频道   网站地图 琼ICP备2022006744号