聽說,你的Loki還是單體?(下篇)

image.png

相信大家看過《聽說,你的Loki還是單體?(上篇)》之后對Loki的分布式架構(gòu)有了一定的認(rèn)識,那么本篇主要就是對上篇內(nèi)容的實踐。小白主要提供docker-composehelm兩種方式將部署Loki集群的Demo版本。

在正式部署之前,我們還是先來看下Loki整體架構(gòu)如下圖:


image.png

我們本次部署清單里面主要涉及到的組件如下:

組件 副本數(shù) 說明
Cassandra 1 Loki Index存儲
Minio 1 Loki S3存儲
Consul 1 Loki 組件狀態(tài)和哈希環(huán)存儲
Redis 1 Loki 緩存
Gateway 2 Loki 網(wǎng)關(guān)
Distributor 3 Loki 組件
Ingester 3 Loki 組件
Querier 3 Loki 組件
Query-Frontend 2 Loki 組件
Table-Manager 1 Loki 組件

下載部署代碼

$ git clone https://github.com/CloudXiaobai/loki-cluster-deploy.git

聲明:以下部署均適用于demo環(huán)境,大家切勿直接用于生產(chǎn)環(huán)境
對于生產(chǎn)環(huán)境,請務(wù)先解決Cassandra和Consul服務(wù)的高可用

通過docker-compose部署

  • 啟動服務(wù)
$ cd loki-cluster-deploy/demo/docker-compose
$ docker-compose up -d
  • 服務(wù)清理

如果部署過程中遇到問題要清理環(huán)境的話,需要執(zhí)行兩個步驟

1. 停止容器
$ docker-compose down
2. 刪除本地卷
$ docker volume rm 
<docker-compose_cassandra_data> 
<docker-compose_consul_data>
<docker-compose_minio_data>

通過helm部署

  • 進(jìn)入helm 目錄
$ cd loki-cluster-deploy/demo/helm/loki-cluster-demo
  • 聲明StorageClass
$ cat values.yaml

...
loki-minio:
  persistence:
  - name: data
    storageClass: "<your-StorageClass>"
    size: 10Gi
    accessMode: ReadWriteOnce
    mount_path: /data
loki-consul:
  persistence:
  - name: data
    storageClass: "<your-StorageClass>"
    size: 1Gi
    accessMode: ReadWriteOnce
    mount_path: /consul/data
loki-cassandra:
  persistence:
  - name: data
    storageClass: "<your-StorageClass>"
    size: 5Gi
    accessMode: ReadWriteOnce
    mount_path: /bitnami
...
  • 啟動服務(wù)
$ kubectl create ns <your_namespace>
$ helm template --name stable --namespaces <your_namespace> . - | kubectl apply -f -
  • 服務(wù)清理

如果部署過程中遇到問題要清理環(huán)境的話,執(zhí)行如下命令:

$ helm template --name stable --namespaces <your_namespace> . - | kubectl delete -f -

提示:部署完成后Minio S3的默認(rèn)認(rèn)證信息如下:
ACCESS_KEY: key123456
SECRET_KEY: password123456

部署之后

按照如上完成配置后,我們需要將日志采集的客戶端指向到Loki Gateway上。

對于Gateway多實例部署在k8s的,需要在前端掛載一個負(fù)載均衡器做分流。
小白之前考慮用ingress做代理,考慮到現(xiàn)實意義不大,所以放棄。建議大家在外部的LoadBlance直接轉(zhuǎn)發(fā)給loki-gateway的NodePort上

同理,Grafana的數(shù)據(jù)源,我們也要切換到Loki Gateway的地址,然后在Explor上查詢?nèi)罩掘炞C是否正常

image.png

最后我們可以再看下Minio上的Bucket是否已經(jīng)有日志塊,如果有數(shù)據(jù)的話說明你的Loki Ingester已經(jīng)工作正常.


image.png

關(guān)于云原生小白

云原生小白的創(chuàng)號目的是將平日里離大家較遠(yuǎn)云原生應(yīng)用以實用的角度展現(xiàn)出來,站在小白的角度來看待和使用云原生,并以每篇文章解決一個實際問題的出發(fā)點帶領(lǐng)大家走進(jìn)云原生。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容