摘要:本文將演示如何使用創(chuàng)建集群。本次將使用,和企業(yè)版進行測試。默認情況下服務僅在集群內可見,但我們會將該服務作為一個負載均衡器暴露出去。等待分鐘左右讓負載均衡器啟動。
編者按:本文由Couchbase 的VP Arun Gupta 編寫,展示了如何用Kubernetes 設置 Couchbase 集群。
Couchbase Server是一個開源的、分布式的文檔型NoSQL數(shù)據(jù)庫。它有低于毫秒級的快速鍵值對存儲,為快速查詢設計的專用索引和執(zhí)行SQL語句的引擎。對于移動應用和物聯(lián)網(wǎng)(IOT)環(huán)境,Couchbase Lite在能本地設備上運行并與Couchbase Server進行同步。
最近剛剛發(fā)布的Couchbase Server 4.5加入了許多新功能,包括對Docker的生產認證支持。Couchbase 支持Docker容器的各種編排框架,如Kubernetes,Docker Swarm 和 Mesos,詳情訪問這個頁面(http://www.couchbase.com/cont...)。
本文將演示如何使用Kubernetes 創(chuàng)建 Couchbase 集群。本次將使用Kubernetes 1.3.3 ,AWS和Couchbase 4.5企業(yè)版進行測試。
像所有美好的東西一樣,本篇文章站在巨人的肩膀上。這篇文章的結構是saturnism在一個周五下午確定的,配置文件則由r_schmiddy貢獻。
Couchbase集群Couchbase 服務的集群通常部署在商用服務器上。Couchbase Server 有一個對等的拓撲結構,在該拓撲結構上所有節(jié)點是平等的并能按需通信。
沒有主節(jié)點,從節(jié)點,配置節(jié)點,名稱節(jié)點,頭節(jié)點等概念,所有節(jié)點上的軟件都是相同的。它允許在不考慮他們“類型”的情況下添加或刪除節(jié)點。
該模式通常能在云基礎設施模型上工作的特別好。對于 kubernetes,這意味著我們可以為所有Couchbase 節(jié)點使用完全相同的容器鏡像。
一個典型的Couchbase 集群創(chuàng)建過程如下:
● 啟動Couchbase:啟動n個 Couchbase 服務器
● 創(chuàng)建集群:選擇任一服務器,并添加所有其他服務器來創(chuàng)建集群
● 再平衡集群:重新平衡集群,使數(shù)據(jù)跨集群分布
為了使用Kubernetes,集群創(chuàng)建分為“master” 和 “worker”的Replication Controller(RC)。
master RC 只有一個副本并作為一個服務(service)發(fā)布。這樣提供了一個單一的入口來開始集群創(chuàng)建。
默認情況下服務僅在集群內可見,但我們會將該服務作為一個負載均衡器暴露出去。這使得可從集群外部訪問Couchbase Web控制臺。
worker RC 跟master RC使用完全相同的鏡像。這將保持集群的同質化,使得伸縮集群更加自如。
配置文件請查看這里(https://github.com/arun-gupta...)。讓我們從創(chuàng)建 Kubernetes資源開始來創(chuàng)建Couchbase集群。
創(chuàng)建Couchbase master RC :Couchbase master RC 可以使用以下配置文件來創(chuàng)建:
apiVersion: v1 kind: ReplicationController metadata: name: couchbase-master-rc spec: replicas: 1 selector: app: couchbase-master-pod template: metadata: labels: app: couchbase-master-pod spec: containers: - name: couchbase-master image: arungupta/couchbase:k8s env: - name: TYPE value: MASTER ports: - containerPort: 8091
apiVersion: v1 kind: Service metadata: name: couchbase-master-service labels: app: couchbase-master-service spec: ports: - port: 8091 selector: app: couchbase-master-pod type: LoadBalancer
該配置文件創(chuàng)建一個名為 couchbase-master-rc 的Replication Controller。這個RC使用arungupta/couchbase:k8s 鏡像(https://github.com/arun-gupta...)創(chuàng)建了1個 pod 的副本。
該 Dockerfile使用配置腳本配置基礎 Couchbase Docker 鏡像。首先,它使用Couchbase REST API設置存儲配額,設置索引、數(shù)據(jù)和查詢服務,安全憑據(jù),并加載樣本數(shù)據(jù)桶(sample data bucket)。
然后,調用Couchbase CLI命令把Couchbase 節(jié)點添加到集群或添加節(jié)點并平衡集群。這是基于以下三個環(huán)境變量:
● TYPE:定義加入的 pod是worker還是 master
● AUTO_REBALANCE:定義集群是否需要重新平衡
● COUCHBASE_MASTER: master 服務的名稱
第一個配置文件中,只將TYPE環(huán)境變量設置為MASTER。
讓我們創(chuàng)建并驗證。
創(chuàng)建 Couchbase master RC:
列出所有服務:
輸出顯示,couchbase-master-service 被創(chuàng)建。
列出所有pod:
配置文件中指定的Pod創(chuàng)建成功
查看 RC:
RC中 pod 指定的數(shù)量和實際的數(shù)量相同。
查看服務:
kubectl describe svc couchbase-master-service Name: couchbase-master-service Namespace: default Labels: app=couchbase-master-service Selector: app=couchbase-master-pod Type: LoadBalancer IP: 10.0.57.201 LoadBalancer Ingress: a94f1f286590c11e68e100283628 cd6c-1110696566.us-west-2.elb.amazonaws.com Port:8091/TCP NodePort: 30019/TCP Endpoints: 10.244.2.3:8091 Session Affinity: None Events: FirstSeen LastSeen Count From SubobjectPath Type Reason Message --------- -------- ----- ---- ------------- -------- ------ ------- 2m 2m 1 {service-controller } Normal CreatingLoadBalancer Creating load balancer 2m 2m 1 {service-controller } Normal CreatedLoadBalancer Created load balancer
記下kubectl describe命令輸出中LoadBalancer Ingress 的值。通過這個地址來訪問 Couchbase Web控制臺。
等待3 分鐘左右讓負載均衡器啟動。然后通過
配置文件指定的用戶名是Administrator,密碼是password,登錄后頁面如下:
點擊Server Nodes,查看集群中有多少Couchbase節(jié)點。正如預期的那樣,當前只顯示一個節(jié)點:
點擊 Data Buckets,查看作為鏡像一部分的示例Bucket :
上圖表明 travel-sample bucket被成功創(chuàng)建并有31591個 JSON文件。
創(chuàng)建一個Couchbase worker RC:現(xiàn)在我們可以使用配置文件創(chuàng)建一個worker RC:
apiVersion: v1 kind: ReplicationController metadata: name: couchbase-worker-rc spec: replicas: 1 selector: app: couchbase-worker-pod template: metadata: labels: app: couchbase-worker-pod spec: containers: - name: couchbase-worker image: arungupta/couchbase:k8s env: - name: TYPE value: "WORKER" - name: COUCHBASE_MASTER value: "couchbase-master-service" - name: AUTO_REBALANCE value: "false" ports: - containerPort: 8091
該 RC使用相同的arungupta/couchbase:k8s鏡像創(chuàng)建Couchbase 的單個副本。這里的主要區(qū)別是:
● TYPE 環(huán)境變量設置為WORKER。向集群中添加了一個 worker Couchbase 節(jié)點 。
● COUCHBASE_MASTER 環(huán)境變量設置為couchbase-master-service。它使用了Kubernetes 內置的服務發(fā)現(xiàn)機制來使 worker 和master中的pod進行通信。
● AUTO_REBALANCE 環(huán)境變量設置為false。該環(huán)境變量確保了節(jié)點只添加到集群而集群本身不重新平衡。集群的再平衡用來在集群中的節(jié)點中重新分布數(shù)據(jù)。當多個節(jié)點首次被添加時推薦使用這種方式,之后集群可以使用Web 控制臺來手動進行再平衡。
讓我們創(chuàng)建 一個worker:
查看RC:
一個新的 couchbase-worker-rc 被創(chuàng)建,并且指定的pod數(shù)量與實際數(shù)量相同。
查看所有的pod:
worker的pod也創(chuàng)建成功。每個 pod 的名稱前綴是了相應RC名稱。例如,worker pod的名字前綴是couchbase-worker-rc。
刷新Couchbase Web控制臺,能夠看到一個新的Couchbase節(jié)點添加成功。在Pending Rebalance 標簽能夠看到一個明顯的標記。
單擊該標簽查看需要重新平衡的節(jié)點IP地址:
伸縮 Couchbase 集群現(xiàn)在,讓我們通過調整worker RC的副本數(shù)量伸縮Couchbase 集群:
查看RC狀態(tài),發(fā)現(xiàn)pod數(shù)量修改為3個:
通過查看pod列表再次驗證:
Couchbase Web控制臺的Pending Rebalance 標簽顯示有3個服務被添加到集群并且需要重新平衡。
重新平衡 Couchbase 集群最后,點擊“Rebalance”按鈕重新平衡集群。消息窗口顯示重新平衡的當前狀態(tài):
一旦所有的節(jié)點重新平衡完成,Couchbase 集群將會隨時響應請求:
除了創(chuàng)建集群, Couchbase Server 支持一系列高可用性和災難恢復(HA / DR)策略。大多數(shù)的HA/DR 策略依賴于最大可用性,增加冗余,跨數(shù)據(jù)中心,定期備份等多種方法。
現(xiàn)在Couchbase 集群已就緒,你可以開始使用了。
更多信息請查看 Couchbase Developer Portal 和 Forums,或查看Stack Overflow上的問題。
本文由時速云翻譯,如若轉載,需注明轉載自“時速云”
原文鏈接: http://blog.kubernetes.io/201...
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://systransis.cn/yun/32495.html
摘要:與分布式應用捆綁包分布式應用捆綁包,或者簡稱,是一種多服務可分發(fā)鏡像格式。而當中新推出的分布式應用捆綁包,或者簡稱,則屬于一種新的概念,其專門面向多套容器的遷移需求。利用創(chuàng)建一個分布式應用捆綁包添加了一條新的命令。 在本文中數(shù)人云將帶大家了解如何利用Docker Compose創(chuàng)建一套分布式應用捆綁包,并將其作為Docker Stack在Docker Swarm Mode中進行部署。 ...
摘要:是什么最初由于年推出,并已被和社區(qū)用作打包部署和管理原生應用程序的方法。原生應用程序是一個部署在上的應用程序,使用和眾所周知的工具進行管理,如。的協(xié)調循環(huán)將選擇這些,并執(zhí)行所需的操作以實現(xiàn)所需的狀態(tài)。目前在上列出的的一些示例包括和。 作者:Diane Mueller,紅帽云平臺社區(qū)發(fā)展總監(jiān) showImg(https://segmentfault.com/img/bVbpg7E?w=1...
摘要:此時,可以構建映像,并將其部署為容器。從執(zhí)行以下操作以上命令將使用文件中定義的端口,構建對應鏡像和部署成為容器。 showImg(https://segmentfault.com/img/remote/1460000010122752); 數(shù)人云之前分享了《如何用Docker實現(xiàn)PHP命令行程序的CI/CD》,詳細地介紹了整體過程中的思路以及以及注意事項,今天帶來的文章將闡述怎樣部署一...
摘要:的集群設計對等網(wǎng)群集所有點都是對等的,只是在創(chuàng)建群或者加入集群時需要指定一個主節(jié)點,一旦結點成功加入集群,所有的結點對等。對等網(wǎng)的優(yōu)點是,集群中的任何節(jié)點失效,集群對外提供服務完全不會中斷,只是集群的容量受影響。 在移動互聯(lián)網(wǎng)時代,我們面對的是更多的客戶端,更低的請求延遲,這當然需要對數(shù)據(jù)做大量的 Cache 以提高讀寫速度。 術語 節(jié)點:指集群里的一臺服務器。 現(xiàn)有 Cache 系統(tǒng)...
閱讀 4012·2021-11-18 13:22
閱讀 1829·2021-11-17 09:33
閱讀 2886·2021-09-26 09:46
閱讀 1220·2021-08-21 14:11
閱讀 2896·2019-08-30 15:53
閱讀 2717·2019-08-30 15:52
閱讀 1914·2019-08-30 10:52
閱讀 1528·2019-08-29 15:30