天天看點

阿裡巴巴NACOS(6)- 在k8s上部署Nacos

作者:阿裡雲 MVP郦強

1、Kubernetes的安裝

要安裝k8s,首先買兩台阿裡雲伺服器,或者推薦直接使用Kubernetes容器服務,建立叢集。

1)自己安裝

a、購買兩台ECS

阿裡巴巴NACOS(6)- 在k8s上部署Nacos

用于k8s,一台Master,一台Node

用于k8s的安裝,一台Master節點,一台Node節點,兩台内網IP分别為:3.97和3.98

b、連結到機器,安裝docker并啟動

yum install -y docker && systemctl start docker

阿裡巴巴NACOS(6)- 在k8s上部署Nacos

安裝Docker環境并啟動

c、下載下傳 kubernetes 離線安裝包

wget 

https://github.com/sealstore/cloud-kernel/releases/download/offline/kube1.14.1.tar.gz
阿裡巴巴NACOS(6)- 在k8s上部署Nacos

下載下傳k8s

d、下載下傳 最新版本sealos

wget

https://github.com/fanux/sealos/releases/download/v3.0.1/sealos
阿裡巴巴NACOS(6)- 在k8s上部署Nacos

下載下傳sealos

e、寫入sealos 執行腳本,并執行

vim init.sh

阿裡巴巴NACOS(6)- 在k8s上部署Nacos

配置sealos腳本

sh init.sh

阿裡巴巴NACOS(6)- 在k8s上部署Nacos

執行初始化腳本

f、檢視k8s是否安裝正常

kubectl get node

kubectl get pod -n kube

阿裡巴巴NACOS(6)- 在k8s上部署Nacos

檢查安裝是否正常

2)強烈推薦使用阿裡雲 容器服務 Kubernetes 版

阿裡巴巴NACOS(6)- 在k8s上部署Nacos

建立k8s容器服務

阿裡巴巴NACOS(6)- 在k8s上部署Nacos

k8s建立過程

阿裡巴巴NACOS(6)- 在k8s上部署Nacos

建立成功

關于k8s的安裝,大家有興趣的話可以參考視訊:

http://mpvideo.qpic.cn/tjg_3867038196_50000_c859a4d5328446f8bd5fa8aadae56dce.f10002.mp4?dis_k=e6e33d4a2b49edb2e8399bf00abdee9c&dis_t=1575352248

2、Nacos的安裝和部署

這裡又分為兩種方式,一種是快速方式,一種是PVC持久化,需要先搭建NFS。具體可以參考官網連結:

https://nacos.io/zh-cn/docs/use-nacos-with-kubernetes.html

這裡分享的是快速方式,NFS方式一樣的(步驟會做簡單介紹,我自己就不實際操作了,有問題的小夥伴可以加我V信聯系我 24606019),跟着文檔走,都比較簡單,可以讓你們的運維人員來完成😄

1)快速安裝

a、首先k8s上安裝git,有git的可以跳過此步驟

阿裡巴巴NACOS(6)- 在k8s上部署Nacos

安裝git

b、直接克隆nacos-k8s

git clone

https://github.com/nacos-group/nacos-k8s.git
阿裡巴巴NACOS(6)- 在k8s上部署Nacos

克隆nacos-k8s

c、克隆後,配置權限,執行快速開始腳本,非常的友善,但是這種模式是沒有使用持久化卷的,可能存在資料丢失風險,是以推薦的還是用NFS部署方式

cd nacos-k8s

chmod +x quick-startup.sh

./quick-startup.sh

阿裡巴巴NACOS(6)- 在k8s上部署Nacos

執行快速啟動腳本

d、檢視nacos安裝情況,Running代表一切正常

kubectl get pod -l app=nacos

阿裡巴巴NACOS(6)- 在k8s上部署Nacos

nacos節點情況

2)NFS方式

NFS的使用是為了保留資料,資料庫的資料以及nacos的資料日志等。

該方式部署需要對官方的yaml進行修改,下面列出實測可用的步驟及yaml檔案

a、首先再買一台阿裡雲ECS伺服器,内網和k8s通的,在機器上部署nfs服務,選擇合适磁盤,作為共享目錄。

b、k8s上部署nfs。

.建立rbac使用預設的rbac.yaml 不用修改,采用的是default命名空間,如果需要部署到特定的命名空間,則修改其中的namespace。

kubectl create -f rbac.yaml

如果的K8S命名空間不是default,請在部署RBAC之前執行以下腳本:

阿裡巴巴NACOS(6)- 在k8s上部署Nacos

修改命名空間

.建立 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

c、部署資料庫

.部署主庫:kubectl create -f deploy/mysql/mysql-master-nfs.yaml

.部署從庫:kubectl create -f deploy/mysql/mysql-slave-nfs.yaml

.驗證資料庫是否正常

阿裡巴巴NACOS(6)- 在k8s上部署Nacos

驗證資料庫是否正常工作

d、部署Nacos

.修改 deploy/nacos/nacos-pvc-nfs.yaml

阿裡巴巴NACOS(6)- 在k8s上部署Nacos

修改配置檔案

.建立 Nacos

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

.驗證Nacos節點啟動成功

阿裡巴巴NACOS(6)- 在k8s上部署Nacos

驗證節點是否成功

3、k8s中配置Service,通路Nacos 8848端口控制台

1)修改nacos-headless service

阿裡巴巴NACOS(6)- 在k8s上部署Nacos

修改nacos-headless

2)通路Nacos控制台

阿裡巴巴NACOS(6)- 在k8s上部署Nacos

Nacos控制台

另外也可以用Ingress方式來進行暴露操作。

4、總結

  通過本文可以了解到k8s上Nacos的部署,現在很多公司都在用k8s了,而且也隻有Nacos支援k8s,是以選擇Nacos,選擇阿裡雲的Kubernetes容器服務才是最正确的😄。實踐是檢驗真理的唯一标準,自己動手多嘗試一下,踩過多少坑,才會積累多少經驗,加油。

首發簡書。