摘要:充當(dāng)在的業(yè)務(wù)流程層,將和流程部署為副本集。來(lái)自的文件將存儲(chǔ)軟件轉(zhuǎn)變?yōu)樽晕夜芾碜晕覕U(kuò)展和自我修復(fù)的存儲(chǔ)服務(wù)。由于請(qǐng)求使用文件系統(tǒng)格式化的卷,因此我需要在所有節(jié)點(diǎn)上安裝工具。如果沒(méi)有指定特定的存儲(chǔ)類(lèi),我安裝的任何應(yīng)用程序都將使用進(jìn)行數(shù)據(jù)存儲(chǔ)。
作者:Earl C. Ruby III
我想在新的Kubernetes集群上安裝Prometheus和Grafana,但為了使這些軟件包能夠工作,他們需要一些地方來(lái)存儲(chǔ)持久數(shù)據(jù)。當(dāng)我在Seagate擔(dān)任云架構(gòu)師時(shí),我已經(jīng)對(duì)Ceph進(jìn)行了性能和規(guī)模測(cè)試,并且在過(guò)去的一年里玩過(guò)Rook,所以我決定安裝Rook+Ceph,并將其用于Kubernetes集群的數(shù)據(jù)存儲(chǔ)。
Ceph是一個(gè)分布式存儲(chǔ)系統(tǒng),提供對(duì)象、文件和塊存儲(chǔ)。在每個(gè)存儲(chǔ)節(jié)點(diǎn)上,您將找到Ceph存儲(chǔ)對(duì)象的文件系統(tǒng)和Ceph OSD(對(duì)象存儲(chǔ)守護(hù)程序)進(jìn)程。在Ceph集群上,您還可以找到Ceph MON(監(jiān)控)守護(hù)程序,它們確保Ceph集群保持高可用性。
Rook充當(dāng)Ceph在Kubernetes的業(yè)務(wù)流程層,將OSD和MON流程部署為POD副本集。來(lái)自Rook的README文件:
Rook將存儲(chǔ)軟件轉(zhuǎn)變?yōu)樽晕夜芾?、自我擴(kuò)展和自我修復(fù)的存儲(chǔ)服務(wù)。它通過(guò)自動(dòng)化部署,引導(dǎo),準(zhǔn)備,配置,擴(kuò)展,升級(jí),遷移,災(zāi)難恢復(fù),監(jiān)控和資源管理來(lái)實(shí)現(xiàn)此目的。 Rook使用底層云原生容器管理,調(diào)度和編排平臺(tái)提供的工具來(lái)執(zhí)行其職責(zé)。https://github.com/rook/rook/...
當(dāng)我創(chuàng)建集群時(shí),我構(gòu)建了具有40GB硬盤(pán)的VM,所以使用5個(gè)Kubernetes節(jié)點(diǎn),在我的集群上提供了大約200GB的存儲(chǔ)空間,其中大部分都將用于Ceph。
安裝Rook+Ceph安裝Rook+Ceph非常簡(jiǎn)單。在我的個(gè)人群集上,我按照以下步驟安裝了Rook+Ceph v0.9.0:
git clone git@github.com:rook/rook.git cd rook git checkout v0.9.0 cd cluster/examples/kubernetes/ceph kubectl create -f operator.yaml kubectl create -f cluster.yaml
Rook將POD部署在兩個(gè)命名空間中,即rook-ceph-system和rook-ceph。 在我的群集上,POD花了大約2分鐘來(lái)部署,初始化并進(jìn)入運(yùn)行狀態(tài)。當(dāng)我等待一切都完成時(shí),我檢查了POD狀態(tài):
$ kubectl -n rook-ceph-system get pod NAME READY STATUS RESTARTS AGE rook-ceph-agent-8tsq7 1/1 Running 0 2d20h rook-ceph-agent-b6mgs 1/1 Running 0 2d20h rook-ceph-agent-nff8n 1/1 Running 0 2d20h rook-ceph-agent-vl4zf 1/1 Running 0 2d20h rook-ceph-agent-vtpbj 1/1 Running 0 2d20h rook-ceph-agent-xq5dv 1/1 Running 0 2d20h rook-ceph-operator-85d64cfb99-hrnbs 1/1 Running 0 2d20h rook-discover-9nqrp 1/1 Running 0 2d20h rook-discover-b62ds 1/1 Running 0 2d20h rook-discover-k77gw 1/1 Running 0 2d20h rook-discover-kqknr 1/1 Running 0 2d20h rook-discover-v2hhb 1/1 Running 0 2d20h rook-discover-wbkkq 1/1 Running 0 2d20h
$ kubectl -n rook-ceph get pod NAME READY STATUS RESTARTS AGE rook-ceph-mgr-a-7d884ddc8b-kfxt9 1/1 Running 0 2d20h rook-ceph-mon-a-77cbd865b8-ncg67 1/1 Running 0 2d20h rook-ceph-mon-b-7cd4b9774f-js8n9 1/1 Running 0 2d20h rook-ceph-mon-c-86778859c7-x2qg9 1/1 Running 0 2d20h rook-ceph-osd-0-67fff79666-fcrss 1/1 Running 0 35h rook-ceph-osd-1-58bd4ccbbf-lsxj9 1/1 Running 1 2d20h rook-ceph-osd-2-bf99864b5-n4q7v 1/1 Running 0 2d20h rook-ceph-osd-3-577466c968-j8gjr 1/1 Running 0 2d20h rook-ceph-osd-4-6856c5c6c9-92tb6 1/1 Running 0 2d20h rook-ceph-osd-5-8669577f6b-zqrq9 1/1 Running 0 2d20h rook-ceph-osd-prepare-node1-xfbs7 0/2 Completed 0 2d20h rook-ceph-osd-prepare-node2-c9f55 0/2 Completed 0 2d20h rook-ceph-osd-prepare-node3-5g4nc 0/2 Completed 0 2d20h rook-ceph-osd-prepare-node4-wj475 0/2 Completed 0 2d20h rook-ceph-osd-prepare-node5-tf5bt 0/2 Completed 0 2d20h最后工作
現(xiàn)在我需要再做兩件事,才能安裝Prometheus和Grafana:
我需要讓Rook成為我的集群的默認(rèn)存儲(chǔ)提供程序。
由于Prometheus Helm chart請(qǐng)求使用XFS文件系統(tǒng)格式化的卷,因此我需要在所有Ubuntu Kubernetes節(jié)點(diǎn)上安裝XFS工具。(默認(rèn)情況下,Kubespray尚未安裝XFS,盡管目前有一個(gè)PR解決這個(gè)問(wèn)題。)
要使Rook成為默認(rèn)存儲(chǔ)提供程序,我只需運(yùn)行kubectl命令:
kubectl patch storageclass rook-ceph-block -p "{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}"
這會(huì)更新rook-ceph-block存儲(chǔ)類(lèi),并使其成為群集上存儲(chǔ)的默認(rèn)值。如果沒(méi)有指定特定的存儲(chǔ)類(lèi),我安裝的任何應(yīng)用程序都將使用Rook+Ceph進(jìn)行數(shù)據(jù)存儲(chǔ)。
由于我使用Kubespray構(gòu)建集群,而Kubespray使用Ansible,因此在所有主機(jī)上安裝XFS工具的最簡(jiǎn)單方法之一,是使用Ansible“在所有主機(jī)上運(yùn)行單個(gè)命令”功能:
cd kubespray export ANSIBLE_REMOTE_USER=ansible ansible kube-node -i inventory/mycluster/hosts.ini --become --become-user root -a "apt-get install -y xfsprogs"
現(xiàn)在已經(jīng)安裝了XFS,我可以使用Helm成功部署Prometheus和Grafana:
helm install --name prometheus stable/prometheus helm install --name grafana stable/grafana
Helm chart安裝Prometheus和Grafana,并在Rook+Ceph上為Prometheus Server和Prometheus Alert Manager(使用XFS格式化)創(chuàng)建持久存儲(chǔ)卷。
Prometheus儀表板 Grafana儀表板 Rook給Prometheus服務(wù)器的持久存儲(chǔ)希望您覺(jué)得這個(gè)有幫助。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/32801.html
摘要:充當(dāng)在的業(yè)務(wù)流程層,將和流程部署為副本集。來(lái)自的文件將存儲(chǔ)軟件轉(zhuǎn)變?yōu)樽晕夜芾碜晕覕U(kuò)展和自我修復(fù)的存儲(chǔ)服務(wù)。由于請(qǐng)求使用文件系統(tǒng)格式化的卷,因此我需要在所有節(jié)點(diǎn)上安裝工具。如果沒(méi)有指定特定的存儲(chǔ)類(lèi),我安裝的任何應(yīng)用程序都將使用進(jìn)行數(shù)據(jù)存儲(chǔ)。 作者:Earl C. Ruby III showImg(https://segmentfault.com/img/bVbljHL?w=300&h=1...
摘要:一旦計(jì)算存儲(chǔ)分離后,就可真正實(shí)現(xiàn)隨意漂移,對(duì)集群維護(hù)來(lái)說(shuō)是個(gè)極大的福音。不過(guò)目前面臨最大的挑戰(zhàn)可能還是分布式存儲(chǔ)的性能問(wèn)題。 kubernetes集群三步安裝 安裝 git clone https://github.com/rook/rook cd cluster/examples/kubernetes/ceph kubectl create -f operator.yaml 查看...
摘要:二總結(jié)使用的和的,能夠很好的支持這樣的有狀態(tài)服務(wù)部署到集群上。部署方式有待優(yōu)化本次試驗(yàn)中使用靜態(tài)方式部署集群,如果節(jié)點(diǎn)變遷時(shí),需要執(zhí)行等命令手動(dòng)配置集群,嚴(yán)重限制了集群自動(dòng)故障恢復(fù)擴(kuò)容縮容的能力。 一. 概述 kubernetes通過(guò)statefulset為zookeeper、etcd等這類(lèi)有狀態(tài)的應(yīng)用程序提供完善支持,statefulset具備以下特性: 為pod提供穩(wěn)定的唯一的...
摘要:二總結(jié)使用的和的,能夠很好的支持這樣的有狀態(tài)服務(wù)部署到集群上。部署方式有待優(yōu)化本次試驗(yàn)中使用靜態(tài)方式部署集群,如果節(jié)點(diǎn)變遷時(shí),需要執(zhí)行等命令手動(dòng)配置集群,嚴(yán)重限制了集群自動(dòng)故障恢復(fù)擴(kuò)容縮容的能力。 一. 概述 kubernetes通過(guò)statefulset為zookeeper、etcd等這類(lèi)有狀態(tài)的應(yīng)用程序提供完善支持,statefulset具備以下特性: 為pod提供穩(wěn)定的唯一的...
閱讀 2380·2021-11-18 10:07
閱讀 2335·2021-09-22 15:59
閱讀 3092·2021-08-23 09:42
閱讀 2294·2019-08-30 15:44
閱讀 1205·2019-08-29 15:06
閱讀 2331·2019-08-29 13:27
閱讀 1226·2019-08-29 13:21
閱讀 1428·2019-08-29 13:13