記得2019年3月初骆撇,阿里云小哥哥專程帶著Kubernetes架構(gòu)師來公司拜訪懒鉴,也給我們普及使用k8s的優(yōu)勢(shì)爬虱,阿里云也是加大力度在推薦使用Kubernetes容器服務(wù)拱燃,我?guī)讉€(gè)IT微信群秉溉,最近群里溝通火熱的技術(shù)也差不多都是k8s、istio和nacos等相關(guān)問題碗誉,所以我想有必要寫一篇在k8s中如何部署Nacos的文章召嘶。
1、Kubernetes的安裝
要安裝k8s哮缺,首先買兩臺(tái)阿里云服務(wù)器弄跌,或者推薦直接使用Kubernetes容器服務(wù),創(chuàng)建集群尝苇。
1)自己安裝
a铛只、購(gòu)買兩臺(tái)ECS
用于k8s的安裝淳玩,一臺(tái)Master節(jié)點(diǎn),一臺(tái)Node節(jié)點(diǎn)诵冒,兩臺(tái)內(nèi)網(wǎng)IP分別為:3.97和3.98
b凯肋、鏈接到機(jī)器,安裝docker并啟動(dòng)
yum install -y docker && systemctl start docker
c汽馋、下載?kubernetes 離線安裝包
wget?https://github.com/sealstore/cloud-kernel/releases/download/offline/kube1.14.1.tar.gz
d侮东、下載?最新版本sealos
wget?https://github.com/fanux/sealos/releases/download/v3.0.1/sealos
e、寫入sealos 執(zhí)行腳本豹芯,并執(zhí)行
vim init.sh
sh init.sh
f悄雅、查看k8s是否安裝正常
kubectl get node
kubectl get pod -n kube
2)強(qiáng)烈推薦使用阿里云?容器服務(wù) Kubernetes 版
關(guān)于k8s的安裝,大家有興趣的話可以參考視頻:http://mpvideo.qpic.cn/tjg_3867038196_50000_c859a4d5328446f8bd5fa8aadae56dce.f10002.mp4?dis_k=e6e33d4a2b49edb2e8399bf00abdee9c&dis_t=1575352248
2铁蹈、Nacos的安裝和部署
這里又分為兩種方式宽闲,一種是快速方式,一種是PVC持久化,需要先搭建NFS容诬。具體可以參考官網(wǎng)鏈接:https://nacos.io/zh-cn/docs/use-nacos-with-kubernetes.html
這里分享的是快速方式娩梨,NFS方式一樣的(步驟會(huì)做簡(jiǎn)單介紹,我自己就不實(shí)際操作了览徒,有問題的小伙伴可以加我V信聯(lián)系我 24606019)狈定,跟著文檔走,都比較簡(jiǎn)單习蓬,可以讓你們的運(yùn)維人員來完成??
1)快速安裝
a纽什、首先k8s上安裝git,有g(shù)it的可以跳過此步驟
b躲叼、直接克隆nacos-k8s
git clone https://github.com/nacos-group/nacos-k8s.git
c芦缰、克隆后,配置權(quán)限枫慷,執(zhí)行快速開始腳本让蕾,非常的方便,但是這種模式是沒有使用持久化卷的,可能存在數(shù)據(jù)丟失風(fēng)險(xiǎn)流礁,所以推薦的還是用NFS部署方式
cd nacos-k8s
chmod +x quick-startup.sh
./quick-startup.sh
d涕俗、查看nacos安裝情況,Running代表一切正常
kubectl get pod -l app=nacos
2)NFS方式
NFS的使用是為了保留數(shù)據(jù)神帅,數(shù)據(jù)庫(kù)的數(shù)據(jù)以及nacos的數(shù)據(jù)日志等。
該方式部署需要對(duì)官方的yaml進(jìn)行修改萌抵,下面列出實(shí)測(cè)可用的步驟及yaml文件
a找御、首先再買一臺(tái)阿里云ECS服務(wù)器,內(nèi)網(wǎng)和k8s通的绍填,在機(jī)器上部署nfs服務(wù)霎桅,選擇合適磁盤,作為共享目錄讨永。
b滔驶、k8s上部署nfs。
.創(chuàng)建rbac使用默認(rèn)的rbac.yaml 不用修改卿闹,采用的是default命名空間揭糕,如果需要部署到特定的命名空間,則修改其中的namespace锻霎。
kubectl create -f rbac.yaml
如果的K8S命名空間不是default著角,請(qǐng)?jiān)诓渴餜BAC之前執(zhí)行以下腳本:
.創(chuàng)建?ServiceAccount?和部署?NFS-Client Provisioner
kubectl create -f deploy/nfs/deployment.yaml
.創(chuàng)建 NFS StorageClass
kubectl create -f deploy/nfs/class.yaml
.驗(yàn)證NFS部署成功
kubectl get pod -l app=nfs-client-provisioner
c、部署數(shù)據(jù)庫(kù)
.部署主庫(kù):kubectl create -f deploy/mysql/mysql-master-nfs.yaml
.部署從庫(kù):kubectl create -f deploy/mysql/mysql-slave-nfs.yaml
.驗(yàn)證數(shù)據(jù)庫(kù)是否正常
d旋恼、部署Nacos
.修改?deploy/nacos/nacos-pvc-nfs.yaml
.創(chuàng)建 Nacos
kubectl create -f nacos-k8s/deploy/nacos/nacos-pvc-nfs.yaml
.驗(yàn)證Nacos節(jié)點(diǎn)啟動(dòng)成功
3吏口、k8s中配置Service,訪問Nacos 8848端口控制臺(tái)
1)修改nacos-headless service
2)訪問Nacos控制臺(tái)
另外也可以用Ingress方式來進(jìn)行暴露操作。
4产徊、總結(jié)
? ? ? ? 通過本文可以了解到k8s上Nacos的部署昂勒,現(xiàn)在很多公司都在用k8s了,而且也只有Nacos支持k8s舟铜,所以選擇Nacos戈盈,選擇阿里云的Kubernetes容器服務(wù)才是最正確的??。實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn)深滚,自己動(dòng)手多嘗試一下奕谭,踩過多少坑,才會(huì)積累多少經(jīng)驗(yàn)痴荐,加油血柳。