摘要:一旦計(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
查看operator是否成功:
[root@dev-86-201 ~]# kubectl get pod -n rook-ceph-system NAME READY STATUS RESTARTS AGE rook-ceph-agent-5z6p7 1/1 Running 0 88m rook-ceph-agent-6rj7l 1/1 Running 0 88m rook-ceph-agent-8qfpj 1/1 Running 0 88m rook-ceph-agent-xbhzh 1/1 Running 0 88m rook-ceph-operator-67f4b8f67d-tsnf2 1/1 Running 0 88m rook-discover-5wghx 1/1 Running 0 88m rook-discover-lhwvf 1/1 Running 0 88m rook-discover-nl5m2 1/1 Running 0 88m rook-discover-qmbx7 1/1 Running 0 88m
然后創(chuàng)建ceph集群:
kubectl create -f cluster.yaml
查看ceph集群:
[root@dev-86-201 ~]# kubectl get pod -n rook-ceph NAME READY STATUS RESTARTS AGE rook-ceph-mgr-a-8649f78d9b-jklbv 1/1 Running 0 64m rook-ceph-mon-a-5d7fcfb6ff-2wq9l 1/1 Running 0 81m rook-ceph-mon-b-7cfcd567d8-lkqff 1/1 Running 0 80m rook-ceph-mon-d-65cd79df44-66rgz 1/1 Running 0 79m rook-ceph-osd-0-56bd7545bd-5k9xk 1/1 Running 0 63m rook-ceph-osd-1-77f56cd549-7rm4l 1/1 Running 0 63m rook-ceph-osd-2-6cf58ddb6f-wkwp6 1/1 Running 0 63m rook-ceph-osd-3-6f8b78c647-8xjzv 1/1 Running 0 63m
參數(shù)說(shuō)明:
apiVersion: ceph.rook.io/v1 kind: CephCluster metadata: name: rook-ceph namespace: rook-ceph spec: cephVersion: # For the latest ceph images, see https://hub.docker.com/r/ceph/ceph/tags image: ceph/ceph:v13.2.2-20181023 dataDirHostPath: /var/lib/rook # 數(shù)據(jù)盤(pán)目錄 mon: count: 3 allowMultiplePerNode: true dashboard: enabled: true storage: useAllNodes: true useAllDevices: false config: databaseSizeMB: "1024" journalSizeMB: "1024"
訪問(wèn)ceph dashboard:
[root@dev-86-201 ~]# kubectl get svc -n rook-ceph NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE rook-ceph-mgr ClusterIP 10.98.183.339283/TCP 66m rook-ceph-mgr-dashboard NodePort 10.103.84.48 8443:31631/TCP 66m # 把這個(gè)改成NodePort模式 rook-ceph-mon-a ClusterIP 10.99.71.227 6790/TCP 83m rook-ceph-mon-b ClusterIP 10.110.245.119 6790/TCP 82m rook-ceph-mon-d ClusterIP 10.101.79.159 6790/TCP 81m
然后訪問(wèn)https://10.1.86.201:31631 即可
管理賬戶admin,獲取登錄密碼:
kubectl -n rook-ceph get secret rook-ceph-dashboard-password -o yaml | grep "password:" | awk "{print $2}" | base64 --decode使用 創(chuàng)建pool
apiVersion: ceph.rook.io/v1 kind: CephBlockPool metadata: name: replicapool # operator會(huì)監(jiān)聽(tīng)并創(chuàng)建一個(gè)pool,執(zhí)行完后界面上也能看到對(duì)應(yīng)的pool namespace: rook-ceph spec: failureDomain: host replicated: size: 3 --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: rook-ceph-block # 這里創(chuàng)建一個(gè)storage class, 在pvc中指定這個(gè)storage class即可實(shí)現(xiàn)動(dòng)態(tài)創(chuàng)建PV provisioner: ceph.rook.io/block parameters: blockPool: replicapool # The value of "clusterNamespace" MUST be the same as the one in which your rook cluster exist clusterNamespace: rook-ceph # Specify the filesystem type of the volume. If not specified, it will use `ext4`. fstype: xfs # Optional, default reclaimPolicy is "Delete". Other options are: "Retain", "Recycle" as documented in https://kubernetes.io/docs/concepts/storage/storage-classes/ reclaimPolicy: Retain創(chuàng)建pvc
在cluster/examples/kubernetes 目錄下,官方給了個(gè)worldpress的例子,可以直接運(yùn)行一下:
kubectl create -f mysql.yaml kubectl create -f wordpress.yaml
查看PV PVC:
[root@dev-86-201 ~]# kubectl get pvc NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE mysql-pv-claim Bound pvc-a910f8c2-1ee9-11e9-84fc-becbfc415cde 20Gi RWO rook-ceph-block 144m wp-pv-claim Bound pvc-af2dfbd4-1ee9-11e9-84fc-becbfc415cde 20Gi RWO rook-ceph-block 144m [root@dev-86-201 ~]# kubectl get pv NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE pvc-a910f8c2-1ee9-11e9-84fc-becbfc415cde 20Gi RWO Retain Bound default/mysql-pv-claim rook-ceph-block 145m pvc-af2dfbd4-1ee9-11e9-84fc-becbfc415cde 20Gi RWO Retain Bound default/wp-pv-claim rook-ceph-block 145m
看下yaml文件:
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: mysql-pv-claim labels: app: wordpress spec: storageClassName: rook-ceph-block # 指定storage class accessModes: - ReadWriteOnce resources: requests: storage: 20Gi # 需要一個(gè)20G的盤(pán) ... volumeMounts: - name: mysql-persistent-storage mountPath: /var/lib/mysql volumes: - name: mysql-persistent-storage persistentVolumeClaim: claimName: mysql-pv-claim # 指定上面定義的PVC
是不是非常簡(jiǎn)單。
要訪問(wèn)wordpress的話請(qǐng)把service改成NodePort類(lèi)型,官方給的是loadbalance類(lèi)型:
kubectl edit svc wordpress [root@dev-86-201 kubernetes]# kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE wordpress NodePort 10.109.30.99總結(jié)80:30130/TCP 148m
分布式存儲(chǔ)在容器集群中充當(dāng)非常重要的角色,使用容器集群一個(gè)非常重要的理念就是把集群當(dāng)成一個(gè)整體使用,如果你在使用中還關(guān)心單個(gè)主機(jī),比如調(diào)度到某個(gè)節(jié)點(diǎn),
掛載某個(gè)節(jié)點(diǎn)目錄等,必然會(huì)導(dǎo)致不能把云的威力百分之百發(fā)揮出來(lái)。 一旦計(jì)算存儲(chǔ)分離后,就可真正實(shí)現(xiàn)隨意漂移,對(duì)集群維護(hù)來(lái)說(shuō)是個(gè)極大的福音。
比如集群機(jī)器過(guò)保了需要下架,那么我們?cè)苹募軜?gòu)因?yàn)樗袞|西無(wú)單點(diǎn),所以只需要簡(jiǎn)單驅(qū)逐改節(jié)點(diǎn),然后下架即可,不用關(guān)心上面跑的是什么業(yè)務(wù),不管是有狀態(tài)還是無(wú)
狀態(tài)的都可以自動(dòng)修復(fù)。 不過(guò)目前面臨最大的挑戰(zhàn)可能還是分布式存儲(chǔ)的性能問(wèn)題。 在性能要求不苛刻的場(chǎng)景下我是極推薦這種計(jì)算存儲(chǔ)分離架構(gòu)的。
探討可加QQ群:98488045
公眾號(hào): 微信群:文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/32863.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...
摘要:充當(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...
摘要:容器云將支持應(yīng)用的一鍵式部署交付,提供負(fù)載均衡,私有域名綁定,性能監(jiān)控等應(yīng)用生命周期管理服務(wù)。本容器云平臺(tái),對(duì)接持續(xù)集成發(fā)布系統(tǒng)。 前言 在移動(dòng)互聯(lián)網(wǎng)時(shí)代,新的技術(shù)需要新技術(shù)支持環(huán)境、新的軟件交付流程和IT架構(gòu),從而實(shí)現(xiàn)架構(gòu)平臺(tái)化,交付持續(xù)化,業(yè)務(wù)服務(wù)化。容器將成為新一代應(yīng)用的標(biāo)準(zhǔn)交付件,容器云將幫助企業(yè)用戶構(gòu)建研發(fā)流程和云平臺(tái)基礎(chǔ)設(shè)施。縮短應(yīng)用向云端交付的周期,降低運(yùn)營(yíng)門(mén)檻。加速向互...
摘要:容器云將支持應(yīng)用的一鍵式部署交付,提供負(fù)載均衡,私有域名綁定,性能監(jiān)控等應(yīng)用生命周期管理服務(wù)。本容器云平臺(tái),對(duì)接持續(xù)集成發(fā)布系統(tǒng)。 前言 在移動(dòng)互聯(lián)網(wǎng)時(shí)代,新的技術(shù)需要新技術(shù)支持環(huán)境、新的軟件交付流程和IT架構(gòu),從而實(shí)現(xiàn)架構(gòu)平臺(tái)化,交付持續(xù)化,業(yè)務(wù)服務(wù)化。容器將成為新一代應(yīng)用的標(biāo)準(zhǔn)交付件,容器云將幫助企業(yè)用戶構(gòu)建研發(fā)流程和云平臺(tái)基礎(chǔ)設(shè)施??s短應(yīng)用向云端交付的周期,降低運(yùn)營(yíng)門(mén)檻。加速向互...
閱讀 3629·2021-09-22 15:50
閱讀 3288·2019-08-30 15:54
閱讀 2815·2019-08-30 14:12
閱讀 3122·2019-08-30 11:22
閱讀 2145·2019-08-29 11:16
閱讀 3632·2019-08-26 13:43
閱讀 1263·2019-08-23 18:33
閱讀 977·2019-08-23 18:32