前言

          最近幾天完成了 Nacos
          <https://yq.aliyun.com/go/articleRenderRedirect?url=https%3A%2F%2Fnacos.io%2F>
          在Kubernetes 部署,順便寫篇文章記錄下部署 過程,項(xiàng)目地址Nacos-K8s
          <https://yq.aliyun.com/go/articleRenderRedirect?url=https%3A%2F%2Fgithub.com%2Fpaderlol%2Fnacos-k8s.git>
          ,有興趣的可以去了解下,后續(xù)會(huì)提交到Nacos-Group
          <https://yq.aliyun.com/go/articleRenderRedirect?url=https%3A%2F%2Fgithub.com%2Fnacos-group>
          里面。

          Kubernetes Nacos

          本項(xiàng)目包含一個(gè)可構(gòu)建的Nacos Docker Image,旨在利用StatefulSets在Kubernetes
          <https://yq.aliyun.com/go/articleRenderRedirect?url=https%3A%2F%2Fkubernetes.io%2F>
          上部署Nacos
          <https://yq.aliyun.com/go/articleRenderRedirect?url=https%3A%2F%2Fnacos.io%2F>

          已知限制

          * 暫時(shí)不支持動(dòng)態(tài)增量擴(kuò)容
          * 必須使用持久卷,本項(xiàng)目實(shí)現(xiàn)NFS持久卷的例子,如果使用emptyDirs可能會(huì)導(dǎo)致數(shù)據(jù)丟失
          Docker 鏡像

          在build
          <https://yq.aliyun.com/go/articleRenderRedirect?url=https%3A%2F%2Fgithub.com%2Fpaderlol%2Fnacos-k8s%2Ftree%2Fmaster%2Fbuild>
          目錄中包含了已經(jīng)打好包的Nacos(基于develop
          分支,已提PR,目前的release版本都不支持k8s集群)項(xiàng)目包,以及鏡像制作文件,鏡像基礎(chǔ)環(huán)境Ubuntu 16.04、Open JDK 1.8(JDK
          8u111).目前鏡像已經(jīng)提交到Docker Hub
          <https://yq.aliyun.com/go/articleRenderRedirect?url=https%3A%2F%2Fhub.docker.com%2F>


          項(xiàng)目目錄

          目錄 描述
          build 構(gòu)建Nacos鏡像的項(xiàng)目包以及Dockerfile
          deploy k8s部署yaml文件
          Initdb Nacos 集群數(shù)據(jù)庫初始化SQL腳本
          使用指南

          前提要求

          * 本項(xiàng)目的使用,是基于你已經(jīng)對(duì)Kubernetes有一定的認(rèn)知,所以對(duì)如何搭建K8S集群,請自行g(shù)oogle或者百度
          * NFS安裝方面也不是本文的重點(diǎn),請自行g(shù)oogle或者百度
          環(huán)境準(zhǔn)備

          * 機(jī)器配置(作者演示使用阿里云ECS)
          機(jī)器內(nèi)網(wǎng)IP 主機(jī)名 機(jī)器配置
          172.17.79.3 k8s-master CentOS Linux release 7.4.1708 (Core) 單核 內(nèi)存4G 普通云盤40G
          172.17.79.4 node01 CentOS Linux release 7.4.1708 (Core) 單核 內(nèi)存4G 普通云盤40G
          172.17.79.5 node02 CentOS Linux release 7.4.1708 (Core) 單核 內(nèi)存4G 普通云盤40G
          * Kubernetes 版本:1.12.2 (如果你和我一樣只使用了三臺(tái)機(jī)器,那么記得開啟master節(jié)點(diǎn)的部署功能)
          * NFS 版本:4.1 在k8s-master進(jìn)行安裝Server端,并且指定共享目錄,本項(xiàng)目指定的/data/nfs-share
          * Git
          搭建步驟

          Clone項(xiàng)目

          在每臺(tái)機(jī)器上都Clone本工程,演示工程就是導(dǎo)入根目錄,所以部署路徑都是root/nacos-k8s
          git clone https://github.com/paderlol/nacos-k8s.git
          部署數(shù)據(jù)庫

          數(shù)據(jù)庫是以指定節(jié)點(diǎn)的方式部署,主庫部署在node01節(jié)點(diǎn),從庫部署在node02節(jié)點(diǎn).

          * 部署主庫 #進(jìn)入clone下來的工程根目錄 cd nacos-k8s # 在k8s上創(chuàng)建mysql主庫 kubectl create -f
          deploy/mysql/mysql.yml
          * 部署備庫 #進(jìn)入clone下來的工程根目錄 cd nacos-k8s # 在k8s上創(chuàng)建mysql備庫 kubectl create -f
          deploy/mysql/mysql-bak.yml
          注意
          :如果工程不是導(dǎo)入機(jī)器的根目錄,那么同樣需要修改mysql.yaml和mysql-bak.yaml中掛載路徑,因?yàn)閿?shù)據(jù)庫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"
          * 部署后查看數(shù)據(jù)庫是否已經(jīng)正常運(yùn)行 #查看主庫是否正常運(yùn)行 kubectl get pod -l app=mysql NAME READY STATUS
          RESTARTS AGE mysql-bak-5c5b5bd479-922zv 1/1 Running 0 2d23h#查看備庫是否正常運(yùn)行 kubectl
          get pod -l app=mysql-bak
          部署NFS

          * 創(chuàng)建角色 K8S在1.6以后默認(rèn)開啟了RBAC kubectl create -f deploy/nfs/rbac.yaml
          提示:如果你的K8S命名空間不是默認(rèn)"default",那么在創(chuàng)建RBAC之前先執(zhí)行以下腳本
          # 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
          * 創(chuàng)建ServiceAccount 以及部署NFS-Client Provisioner kubectl create -f
          deploy/nfs/deployment.yaml
          * 創(chuàng)建NFS StorageClass kubectl create -f deploy/nfs/class.yaml
          * 查看NFS是否運(yùn)行正常 kubectl get pod -l app=nfs-client-provisioner
          部署Nacos

          * 獲取主庫從庫在K8S的地址 # 查看主庫和從庫的cluster ip kubectl get svc mysql NodePort
          10.105.42.247 <none> 3306:31833/TCP 2d23h mysql-bak NodePort 10.105.35.138
          <none> 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"
          * 創(chuàng)建并運(yùn)行Nacos集群 kubectl create -f nacos-k8s/deploy/nacos/nacos-pvc-nfs.yaml
          * 查看是否運(yùn)行正常 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
          測試

          服務(wù)注冊
          curl -X PUT
          'http://集群地址:8848/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080'
          服務(wù)發(fā)現(xiàn)
          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"
          本文轉(zhuǎn)自SegmentFault-Kubernetes Nacos集群
          <https://yq.aliyun.com/go/articleRenderRedirect?url=https%3A%2F%2Fsegmentfault.com%2Fa%2F1190000016976990>

          友情鏈接
          ioDraw流程圖
          API參考文檔
          OK工具箱
          云服務(wù)器優(yōu)惠
          阿里云優(yōu)惠券
          騰訊云優(yōu)惠券
          京東云優(yōu)惠券
          站點(diǎn)信息
          問題反饋
          郵箱:[email protected]
          QQ群:637538335
          關(guān)注微信

                国产激情久久 | 国产伦精品一区二区三区视频网站 | 黄色毛片在线 | 影音先锋在线三级 | 欧美日韩一区视频 |