簡 介
百度智能云正式發(fā)布了新型 BCC 實(shí)例產(chǎn)品 Gr1。不同于其他云服務(wù)器,Gr1 所搭載的 Ampere Altra 云原生處理器基于 Arm 指令集架構(gòu),采用單線程內(nèi)核設(shè)計(jì),云實(shí)例的每一個(gè) vCPU 都是獨(dú)立的物理核,獨(dú)享 ALU(邏輯計(jì)算單元),緩存等關(guān)鍵物理資源,可以實(shí)現(xiàn)穩(wěn)定可預(yù)測的性能。
目前 Gr1 實(shí)例已經(jīng)已支持 CentOS7.9、CentOS7.6、Ubuntu22.04、Ubuntu20.04 等常用 Linux 公共鏡像。Gr1 實(shí)例產(chǎn)品主要面向常見的云原生應(yīng)用負(fù)載,如開源數(shù)據(jù)庫、Java 應(yīng)用程序、視頻編解碼、AI 推理(數(shù)據(jù)治理)、大數(shù)據(jù)分析、DevOps、Web 服務(wù)應(yīng)用等。為了讓客戶更輕松地部署云原生的工作負(fù)載,作為百度智能云容器化工作負(fù)載的關(guān)鍵基礎(chǔ)設(shè)施 Cloud Container Engine(CCE)目前已提供對 Gr1 實(shí)例的支持。
在本示例中,我們將演示如何在基于百度智能云 Gr1 實(shí)例的 CCE 集群上部署 ELK 軟件棧,以從 Kubernetes 集群內(nèi)的 Pod 收集日志。
傳統(tǒng)的 ELK 軟件棧由 Elasticsearch、Logstash 和 Kibana 組成。從 2015 年起,輕量級的數(shù)據(jù)傳輸器 Beats 家族開始非正式的成為 ELK 中的一個(gè)組件。ELK 軟件棧為開發(fā)人員提供了端到端的能力來聚合應(yīng)用程序和系統(tǒng)日志、分析這些日志以及可視化洞察以進(jìn)行監(jiān)控、故障排除和分析。
準(zhǔn)備工作...
在開始前, 我們假設(shè)您已做了如下準(zhǔn)備
您已經(jīng)有一個(gè)百度智能云賬戶
您的百度智能云賬戶具有創(chuàng)建 Arm Kubernetes CCE 容器引擎的權(quán)限。
您本地操作終端已安裝 kubectl 工具。
如果上列準(zhǔn)備已經(jīng)就緒,我們就可以進(jìn)行下個(gè)步驟 —— 在部署 ELK 之前,先創(chuàng)建基于百度 Gr1 實(shí)例的 Arm 架構(gòu)容器引擎。
首先創(chuàng)建基于 Gr1 的容器引擎
除了在 BCC 上發(fā)布 Arm 實(shí)例外,百度智能云還提供使用基于 Ampere Altra 的 Gr1 實(shí)例在 CCE上運(yùn)行容器化的 Arm 工作負(fù)載。數(shù)個(gè)百度智能云地區(qū)和可用區(qū)現(xiàn)在可使用于基于 Gr1 實(shí)例創(chuàng)建的 CCE 集群:北京(D 區(qū)域, E 區(qū)域), 廣州(C 區(qū)域)和蘇州(D 區(qū)域)。
在本文中,我們將在百度智能云的北京可用區(qū) D 創(chuàng)建一個(gè)由 3 個(gè) master 節(jié)點(diǎn),以及 3 個(gè) worker節(jié)點(diǎn)組成的集群。
首先,從控制臺進(jìn)入 CCE 容器引擎服務(wù)頁面,點(diǎn)擊“創(chuàng)建集群”按鈕
在集群創(chuàng)建導(dǎo)覽頁面中,選擇創(chuàng)建 Arm Kubernetes 集群
按集群創(chuàng)建向?qū)нx擇 3 副本 Master 配置
并添加 3 臺 Gr1.c4m16 實(shí)例作為 Master 節(jié)點(diǎn):
類似的,在添加 Worker 節(jié)點(diǎn)的步驟中,選擇添加 3 臺 Gr1.c8m32 實(shí)例作為 Worker 節(jié)點(diǎn):
點(diǎn)擊確認(rèn)完成,CCE 開始啟動集群創(chuàng)建。整個(gè)過程需要數(shù)分鐘時(shí)間。待集群狀態(tài)變成運(yùn)行中后,即可下載集群憑證:
將下載后的憑證存放在 kubectl 的默認(rèn)配置路徑:
$ mv kubectl.conf ~/.kube/config
使用 kubectl 查詢集群狀態(tài),當(dāng)集群的 Master 和 worker 節(jié)點(diǎn)都顯示 Ready 狀態(tài)時(shí),說明您的 Arm 集群已經(jīng)準(zhǔn)備就緒,并且可以通過 kubectl 進(jìn)行管理:
$ kubectl get nodes NAME STATUS ROLES AGE VERSION 192.168.64.10 Ready master 1d1h v1.20.8 192.168.64.11 Ready1d1h v1.20.8 192.168.64.12 Ready 1d1h v1.20.8 192.168.64.13 Ready 1d1h v1.20.8 192.168.64.8 Ready master 1d1h v1.20.8 192.168.64.9 Ready master 1d1h v1.20.8
開始部署 ELK!
1預(yù)拉取容器鏡像
為了加速部署過程中容器鏡像拉取的速度,我們先通過鏡像的容器倉庫將部署過程中使用到的容器鏡像拉取到 Worker 節(jié)點(diǎn)上并重新打上 tag:
$ docker pull ampdemo/eck-operator:2.4.0 $ docker tag ampdemo/eck-operator:2.4.0 docker.elastic.co/eck/eck-operator:2.4.0 $ docker pull ampdemo/elasticsearch:8.4.1 $ docker tag ampdemo/elasticsearch:8.4.1 docker.elastic.co/elasticsearch/elasticsearch:8.4.1 $ docker pull ampdemo/filebeat:8.4.1 $ docker tag ampdemo/filebeat:8.4.1 docker.elastic.co/beats/filebeat:8.4.1 $ docker pull ampdemo/kibana:8.4.1 $ docker tag ampdemo/kibana:8.4.1 docker.elastic.co/kibana/kibana:8.4.1
2Operator 的部署
從 Elastic 網(wǎng)站下載定制并安裝資源定義和 RBAC規(guī)則:
$ kubectl create -f https://download.elastic.co/downloads/eck/2.4.0/crds.yaml $ kubectl apply -f https://download.elastic.co/downloads/eck/2.4.0/operator.yaml
稍等片刻后可以看到 elastic-operator Pod 已經(jīng)拉起并進(jìn)入運(yùn)行狀態(tài):
$ kubectl get pods -n elastic-system NAME READY STATUS RESTARTS AGE elastic-operator-0 1/1 Running 0 2m
3創(chuàng)建持久卷
在本例中,ELK 集群將會申請 1GiB 的持久卷空間用作數(shù)據(jù)存儲。因此,我們制備了 20G 的持久卷供 ELK 集群及將來的擴(kuò)容使用。
$ cat <
檢查持久卷已成功創(chuàng)建:
$ kubectl get pv NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE elasticsearch-data 20Gi RWO Delete Available 5s
4Elasticsearch 節(jié)點(diǎn)的部署
當(dāng) Operator 和持久卷已經(jīng)就緒,我們可以通過如下命令開始 Elasticsearch 的部署:
$ cat <
Elasticsearch 節(jié)點(diǎn)會在數(shù)分鐘內(nèi)進(jìn)入 green 和 Ready 狀態(tài):
$ kubectl get elasticsearch NAME HEALTH NODES VERSION PHASE AGE quickstart green 1 8.4.1 Ready 1m
5Filebeat 的部署
當(dāng)提到 ELK,被廣泛熟知的是 Elasticsearch, Logstash 和 Kibana 的集合。Beat 是 ELK 家族的新成員,它是一個(gè)輕量級的開源數(shù)據(jù)傳送器。在本范例中,我們將使用 filebeat 來收集每個(gè) Kubernetes 節(jié)點(diǎn)上的容器日志。執(zhí)行如下命令將 Filebeat 以 DaemonSet 部署在每臺節(jié)點(diǎn),并將日志以數(shù)據(jù)流的形式送往 Elasticsearch:
$ cat <
同樣的, 稍作等待 beat 將進(jìn)入 green 的健康狀態(tài):
$ kubectl get beat NAME HEALTH AVAILABLE EXPECTED TYPE VERSION AGE quickstart green 3 3 filebeat 8.4.1 2m
6Kibana 的部署
在完成 Elasticsearch 的部署后,我們需要 Kibana 來搜索,觀察和分析數(shù)據(jù)。使用如下命令部署與當(dāng)前 Elasticsearch 集群關(guān)聯(lián)的 Kibana 實(shí)例:
$ cat <
等待數(shù)分鐘后,Kibana 進(jìn)入 green 健康狀態(tài):
$ kubectl get kibana NAME HEALTH NODES VERSION AGE quickstart green 1 8.4.1 2m
分配一個(gè)公網(wǎng) IP 以便從集群外訪問 Kibana:
$ kubectl expose deployment quickstart-kb --type=LoadBalancer --port 5601 --target-port 5601 service/quickstart-kb exposed
CCE 將會準(zhǔn)備一個(gè) LoadBalancer 服務(wù)對象并將 Kubernetes 集群外部的訪問重定向到后端 Kibana 的 Pod:
$ kubectl get services NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.255.0.1443/TCP 1d3h quickstart-es-default ClusterIP None 9200/TCP 12h quickstart-es-http ClusterIP 10.255.177.25 9200/TCP 12h quickstart-es-internal-http ClusterIP 10.255.156.180 9200/TCP 12h quickstart-es-transport ClusterIP None 9300/TCP 12h quickstart-kb LoadBalancer 10.255.223.4 120.48.90.143,192.168.0.3 5601:32716/TCP 12h quickstart-kb-http ClusterIP 10.255.55.93 5601/TCP 12h
在本示例中,公網(wǎng) IP 120.48.90.143 被分配給了 Kibana 實(shí)例。
Kibana 登錄密碼可通過如下命令獲?。?/p>
$ kubectl get secret quickstart-es-elastic-user -o=jsonpath='{.data.elastic}' | base64 --decode; echo
搭配用戶名 elastic, 我們可以通過 https://:5601 來嘗試訪問 Kibana, 登錄后在主頁點(diǎn)擊 “Explore on my own”.
7數(shù)據(jù)流導(dǎo)入
在 Discover 中選擇“Create data view”,并在彈出窗口中給數(shù)據(jù)視圖命名,如“bcc-eck-tutorial”,并在“filebeat-8.4.1”數(shù)據(jù)流中導(dǎo)入索引模式。
最終,我們可以在 Kibana 中查看 Kubernetes 集群每個(gè)節(jié)點(diǎn)上 Pod 的日志。
正如本示例所展示的,來自于 CNCF Cloud Native 的主流云原生項(xiàng)目如 Elastic 等,已提供對 Arm64 架構(gòu)的支持。用戶可以在基于 Ampere Altra 處理器的 Arm64 實(shí)例上感受到順暢的部署體驗(yàn)。敬請?jiān)L問 Ampere Blog 進(jìn)一步了解 Ampere Altra 處理家族的強(qiáng)大之處。
審核編輯:湯梓紅
-
處理器
+關(guān)注
關(guān)注
68文章
19100瀏覽量
228814 -
ARM
+關(guān)注
關(guān)注
134文章
9027瀏覽量
366484 -
百度
+關(guān)注
關(guān)注
9文章
2243瀏覽量
90186 -
BCC
+關(guān)注
關(guān)注
0文章
10瀏覽量
7519 -
Ampere
+關(guān)注
關(guān)注
1文章
61瀏覽量
4529
原文標(biāo)題:安博士講堂|應(yīng)用示例 - 基于百度 BCC GR1 實(shí)例部署 Elastic Stack
文章出處:【微信號:AmpereComputing,微信公眾號:安晟培半導(dǎo)體】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論