檢測到您已登錄華為云國際站賬號,為了您更好的體驗(yàn),建議您訪問國際站服務(wù)網(wǎng)站 http://www.cqfng.cn/intl/zh-cn
不再顯示此消息
此華為云解決方案有何用途?
此解決方案能幫您快速在華為云上部署高可用的ClickHouse集群。ClickHouse是一款用于聯(lián)機(jī)分析(OLAP)的列式數(shù)據(jù)庫管理系統(tǒng)(DBMS)。它可以被用于多種場景,如電子商務(wù)中用戶行為數(shù)據(jù)的記錄和分析,廣告網(wǎng)絡(luò)及電信行業(yè)中數(shù)據(jù)的存儲和統(tǒng)計(jì),信息安全中的日志分析,遙感中的信息挖掘,商業(yè)智能、網(wǎng)絡(luò)游戲以及物聯(lián)網(wǎng)中的數(shù)據(jù)處理和價(jià)值數(shù)據(jù)分析等。關(guān)于詳細(xì)的特性信息,請見ClickHouse網(wǎng)站。
為了便于您的測試及使用部署好的ClickHouse集群,該解決方案以XX數(shù)據(jù)集為例,對數(shù)據(jù)基于Grafana工具進(jìn)行了可視化,并提供了統(tǒng)計(jì)分析報(bào)告。
對于數(shù)據(jù)庫等需要持久化存儲數(shù)據(jù)的容器應(yīng)用,建議您使用有狀態(tài)工作負(fù)載,請參見創(chuàng)建有狀態(tài)負(fù)載(StatefulSet)。 如果您希望工作負(fù)載實(shí)例調(diào)度到指定的節(jié)點(diǎn)上,請參見工作負(fù)載調(diào)度策略概述。 如果創(chuàng)建工作負(fù)載時(shí)出現(xiàn)異常,請參見工作負(fù)載狀態(tài)異常定位方法。 工作負(fù)載創(chuàng)建完成后,更多操作請參見管理工作負(fù)載。 父主題: 創(chuàng)建工作負(fù)載
要求每個(gè)Pod都有自己單獨(dú)的狀態(tài)時(shí),比如分布式數(shù)據(jù)庫,每個(gè)Pod要求有單獨(dú)的存儲,這時(shí)Deployment就不能滿足需求了。 詳細(xì)分析下有狀態(tài)應(yīng)用的需求,分布式有狀態(tài)的特點(diǎn)主要是應(yīng)用中每個(gè)部分的角色不同(即分工不同),比如數(shù)據(jù)庫有主備,Pod之間有依賴,對應(yīng)到Kubernetes中就是對Pod有如下要求:
本管理、滾動升級和自愈能力,其中最為常用的就是Deployment。 圖1 Deployment 一個(gè)Deployment可以包含一個(gè)或多個(gè)Pod副本,每個(gè)Pod副本的角色相同,所以系統(tǒng)會自動為Deployment的多個(gè)Pod副本分發(fā)請求。 Deployment集成了上線部署、滾
創(chuàng)建無狀態(tài)負(fù)載(Deployment) 操作場景 在運(yùn)行中始終不保存任何數(shù)據(jù)或狀態(tài)的工作負(fù)載稱為“無狀態(tài)負(fù)載 Deployment”,例如nginx。您可以通過控制臺或kubectl命令行創(chuàng)建無狀態(tài)負(fù)載。 前提條件 在創(chuàng)建工作負(fù)載前,已存在一個(gè)可用集群。若沒有可用集群,請參照購買CCE
創(chuàng)建有狀態(tài)負(fù)載(StatefulSet) 有狀態(tài)負(fù)載(StatefulSet)是指那些在運(yùn)行過程中需要保存數(shù)據(jù)或狀態(tài)的應(yīng)用,例如數(shù)據(jù)庫、緩存服務(wù)、消息隊(duì)列等。與無狀態(tài)工作負(fù)載不同,有狀態(tài)負(fù)載存在以下特點(diǎn): 固定標(biāo)識符:有狀態(tài)工作負(fù)載中的每個(gè)Pod都有一個(gè)固定的標(biāo)識符,這個(gè)標(biāo)識符與
在容器上,從而實(shí)現(xiàn)有狀態(tài)工作負(fù)載的數(shù)據(jù)持久化。 約束與限制 當(dāng)您刪除或擴(kuò)縮有狀態(tài)負(fù)載時(shí),為保證數(shù)據(jù)安全,系統(tǒng)并不會刪除它所關(guān)聯(lián)的存儲卷。 當(dāng)您刪除一個(gè)有狀態(tài)負(fù)載時(shí),為實(shí)現(xiàn)有狀態(tài)負(fù)載中的Pod可以有序停止,請?jiān)趧h除之前將副本數(shù)縮容到0。 您需要在創(chuàng)建有狀態(tài)負(fù)載的同時(shí),創(chuàng)建一個(gè)Headless
每周報(bào)表生成 工作負(fù)載生命周期說明 表1 狀態(tài)說明 狀態(tài) 說明 運(yùn)行中 所有實(shí)例都處于運(yùn)行中、或?qū)嵗龜?shù)為0時(shí)顯示此狀態(tài)。 未就緒 容器處于異常、負(fù)載下實(shí)例沒有正常運(yùn)行時(shí)顯示此狀態(tài)。 處理中 負(fù)載沒有進(jìn)入運(yùn)行狀態(tài)但也沒有報(bào)錯(cuò)時(shí)顯示此狀態(tài)。 可用 當(dāng)多實(shí)例無狀態(tài)工作負(fù)載運(yùn)行過程中部分
通過控制臺創(chuàng)建無狀態(tài)負(fù)載 登錄云容器實(shí)例管理控制臺,左側(cè)導(dǎo)航欄中選擇“工作負(fù)載 > 無狀態(tài)(Deployment)”,在右側(cè)頁面單擊“鏡像創(chuàng)建”。 添加基本信息。
將上面Deployment的定義保存到deployment.yaml文件中,使用kubectl創(chuàng)建這個(gè)Deployment。
有狀態(tài)負(fù)載(StatefulSet) 有狀態(tài)負(fù)載(StatefulSet) Deployment控制器下的Pod都有個(gè)共同特點(diǎn),那就是每個(gè)Pod除了名稱和IP地址不同,其余完全相同。
工作負(fù)載異常:已停止 問題現(xiàn)象 工作負(fù)載的狀態(tài)為“已停止”。 問題原因: 工作負(fù)載的yaml的中metadata.enable字段為false,導(dǎo)致工作負(fù)載被停止,Pod被刪除導(dǎo)致工作負(fù)載處于已停止狀態(tài),如下圖所示: 解決方案 將enable字段刪除或者將false修改為true。
在頁面左上角選擇命名空間,找到對應(yīng)的工作負(fù)載,查看其狀態(tài)。 如果工作負(fù)載狀態(tài)為“未就緒”,可通過查看Pod的事件等信息確定異常原因,詳情請參見Pod事件查看方法。根據(jù)事件,參考Pod常見異常問題查找異常的解決方案。 如果工作負(fù)載狀態(tài)為“處理中”,一般為過程中的狀態(tài),請耐心等待。 如果工作負(fù)載狀態(tài)為“運(yùn)行中”
工作負(fù)載狀態(tài)正常但未正常工作 問題現(xiàn)象 Pod已經(jīng)處于Running狀態(tài)(查看Pod狀態(tài))但未正常工作,或者訪問結(jié)果不符合預(yù)期。 問題原因 可能是您的部署描述YAML文件(例如 Pod、Deployment、StatefulSet等)存在錯(cuò)誤。例如: 鏡像版本未更新。您可能未使用
可以通過更換鏡像或鏡像版本實(shí)現(xiàn)無狀態(tài)工作負(fù)載、有狀態(tài)工作負(fù)載、守護(hù)進(jìn)程集的快速升級,業(yè)務(wù)無中斷。 編輯YAML 可通過在線YAML編輯窗對無狀態(tài)工作負(fù)載、有狀態(tài)工作負(fù)載、守護(hù)進(jìn)程集、定時(shí)任務(wù)和容器組的YAML文件進(jìn)行修改和下載。普通任務(wù)的YAML文件僅支持查看、復(fù)制和下載。 說明: 如果對
方法如下: systemctl restart kubelet 此時(shí)重新拉起或創(chuàng)建工作負(fù)載,已可成功執(zhí)行。 解決方式鏈接:CCE節(jié)點(diǎn)變更規(guī)格后,為什么無法重新拉起或創(chuàng)建工作負(fù)載? 父主題: 工作負(fù)載異常問題排查
本服務(wù)kubelet的GC回收機(jī)制與社區(qū)保持一致,在清除Pod的Owner(例如Deployment)后,異常Pod也會隨之清理。 通過kubelet命令,刪除有異常記錄的Pod。 父主題: 工作負(fù)載異常問題排查
image 工作負(fù)載的鏡像。 mountPath 容器內(nèi)掛載路徑,示例中掛載到“/tmp”路徑。 serviceName 工作負(fù)載對應(yīng)的服務(wù),服務(wù)創(chuàng)建過程請參見創(chuàng)建有狀態(tài)負(fù)載(StatefulSet)。
使用kubectl部署帶文件存儲卷的有狀態(tài)工作負(fù)載 操作場景 CCE支持使用已有的文件存儲(PersistentVolumeClaim),創(chuàng)建有狀態(tài)工作負(fù)載(StatefulSet)。 約束與限制 如下配置示例適用于Kubernetes 1.13及以下版本的集群。 操作步驟 參照
kubectl create -f nginx-deployment.yaml 回顯如下表示已開始創(chuàng)建工作負(fù)載。 deployment "nginx" created 執(zhí)行以下命令,查看工作負(fù)載狀態(tài)。 kubectl get deployment 回顯如下,表示已創(chuàng)建成功。
無狀態(tài)負(fù)載 UCS集群聯(lián)邦可實(shí)現(xiàn)多個(gè)不同區(qū)域、不同云的Kubernetes管理,支持統(tǒng)一的全局應(yīng)用部署,可將Deployment、StatefulSet、DaemonSet等不同類型的工作負(fù)載部署到集群聯(lián)邦下的集群。
Pod出現(xiàn)Terminating 狀態(tài)的原因可能有多種,以下是一些常見的情況: 節(jié)點(diǎn)異常:在節(jié)點(diǎn)處于“不可用”狀態(tài)時(shí),CCE會遷移節(jié)點(diǎn)上的容器實(shí)例,并將節(jié)點(diǎn)上運(yùn)行的Pod置為Terminating狀態(tài)。 待節(jié)點(diǎn)恢復(fù)后,處于Terminating狀態(tài)的Pod會自動刪除。 容器無響應(yīng):如果Pod中的
進(jìn)入CCE控制臺,單擊“工作負(fù)載 > 有狀態(tài)負(fù)載 StatefulSet”,選擇BCS實(shí)例所使用的集群,找到對應(yīng)新加組織或新建節(jié)點(diǎn)的工作負(fù)載,單擊負(fù)載名稱進(jìn)入負(fù)載詳情頁,查看實(shí)例列表,找到異常實(shí)例。
png步驟3:切換至“工作負(fù)載管理”頁簽。1606208422812003127.png 在工作負(fù)載管理頁面,您可以修改工作負(fù)載管理的全局配置,可以在工作負(fù)載管理頁面添加、創(chuàng)建、修改工作負(fù)載隊(duì)列,添加數(shù)據(jù)庫用戶至隊(duì)列,也可以將隊(duì)列中的某個(gè)數(shù)據(jù)庫用戶從隊(duì)列中移除。負(fù)載管理頁面添加、創(chuàng)建
工作負(fù)載異常:OOM問題 問題現(xiàn)象 若因OOM被終止的進(jìn)程為容器的阻塞進(jìn)程,可能會導(dǎo)致容器異常重啟。 問題原因 容器不允許使用超過其限制的內(nèi)存,超過后容器可能會被終止,觸發(fā)OOM(Out Of Memory)事件,導(dǎo)致容器異常退出。關(guān)于OOM事件,可以參考為容器和Pod分配內(nèi)存資源。
升級機(jī)制:適用于Deployment、StatefulSet和DaemonSet類型工作負(fù)載。 回退機(jī)制:適用于Deployment類型工作負(fù)載。 工作負(fù)載升級 對于Deployment、StatefulSet和DaemonSet類型的工作負(fù)載,CCE支持兩種升級策略,以滿足不同業(yè)務(wù)場景下的發(fā)布需求: Rol
ReplicaSet,但其理想值取決于新 Deployment 的頻率和穩(wěn)定性。 - 升級最大時(shí)長(progressDeadlineSeconds) 指定系統(tǒng)在報(bào)告 Deployment 進(jìn)展失敗 之前等待 Deployment 取得進(jìn)展的秒數(shù)。 這類報(bào)告會在資源狀態(tài)中體現(xiàn)為 Type=Prog
單擊集群名稱進(jìn)入集群,在左側(cè)選擇“工作負(fù)載”,在右上角單擊“創(chuàng)建工作負(fù)載”。 填寫工作負(fù)載的基本信息。 參數(shù) 說明 負(fù)載類型 選擇任務(wù)Job。關(guān)于不同工作負(fù)載類型的介紹請參見工作負(fù)載概述。 負(fù)載名稱 填寫工作負(fù)載的名稱。請輸入1到63個(gè)字符的字符串,可以包含小寫英文字母、數(shù)字和中劃線(-),并以