RKE2クラスタにLoki-stackをインストールする

Rancherを使ってサクッと構築します。

構築環境

ラズパイ3台で構築したRKE2クラスタを使用します。

root@k8s1:~# kubectl get node -o wide
NAME   STATUS   ROLES                       AGE    VERSION           INTERNAL-IP    EXTERNAL-IP   OS-IMAGE           KERNEL-VERSION     CONTAINER-RUNTIME
k8s1   Ready    control-plane,etcd,master   115d   v1.28.10+rke2r1   192.168.0.51   <none>        Ubuntu 24.04 LTS   6.8.0-1008-raspi   containerd://1.7.11-k3s2
k8s2   Ready    worker                      115d   v1.28.10+rke2r1   192.168.0.52   <none>        Ubuntu 24.04 LTS   6.8.0-1013-raspi   containerd://1.7.11-k3s2
k8s3   Ready    worker                      115d   v1.28.10+rke2r1   192.168.0.53   <none>        Ubuntu 24.04 LTS   6.8.0-1013-raspi   containerd://1.7.11-k3s2

GrafanaにアクセスするためにMetalLBを入れておいてください。

RancherGUIでloki-stakインストール

こちら にリポジトリの情報があります。
Rancherでリポジトリを作成します。

rancher_loki-stack_01.png

先にnamespaceを作っておきます。

root@k8s1:~# kubectl create ns loki-stack
namespace/loki-stack created
rancher_loki-stack_02.png

grafanaだけ有効化します。

rancher_loki-stack_03.png

インストールされました。

root@k8s1:~# kubectl get po -n loki-stack
NAME                                               READY   STATUS    RESTARTS   AGE
loki-stack-2-1729998524-0                          1/1     Running   0          97m
loki-stack-2-1729998524-grafana-556cf58b56-jlpjp   2/2     Running   0          97m
loki-stack-2-1729998524-promtail-5ss4b             1/1     Running   0          97m
loki-stack-2-1729998524-promtail-bbbf6             1/1     Running   0          97m

grafanaはdeploymentで起動してました。
ロードバランサーでアクセスできるようにします。

root@k8s1:~# kubectl -n loki-stack get deploy
NAME                              READY   UP-TO-DATE   AVAILABLE   AGE
loki-stack-2-1729998524-grafana   1/1     1            1           32m
root@k8s1:~# kubectl get svc -n loki-stack
NAME                                 TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
loki-stack-2-1729998524              ClusterIP   10.43.235.88    <none>        3100/TCP   9m47s
loki-stack-2-1729998524-grafana      ClusterIP   10.43.199.254   <none>        80/TCP     9m47s
loki-stack-2-1729998524-headless     ClusterIP   None            <none>        3100/TCP   9m47s
loki-stack-2-1729998524-memberlist   ClusterIP   None            <none>        7946/TCP   9m47s
root@k8s1:~# kubectl -n loki-stack expose deployment/loki-stack-2-1729998524-grafana --type LoadBalancer --port 3000 --name grafana
service/grafana exposed
root@k8s1:~# kubectl get svc -n loki-stack
NAME                                 TYPE           CLUSTER-IP      EXTERNAL-IP     PORT(S)          AGE
grafana                              LoadBalancer   10.43.139.89    192.168.0.230   3000:31112/TCP   6s
loki-stack-2-1729998524              ClusterIP      10.43.235.88    <none>          3100/TCP         96m
loki-stack-2-1729998524-grafana      ClusterIP      10.43.199.254   <none>          80/TCP           96m
loki-stack-2-1729998524-headless     ClusterIP      None            <none>          3100/TCP         96m
loki-stack-2-1729998524-memberlist   ClusterIP      None            <none>          7946/TCP         96m

grafanaにログインするためのパスワードを確認します。

root@k8s1:~# kubectl get secret -n loki-stack loki-stack-2-1729998524-grafana -o jsonpath="{.data.admin-user}" | base64 --decode ; echo
admin
root@k8s1:~# kubectl get secret -n loki-stack loki-stack-2-1729998524-grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo
MzBOKSbdqNpP1XMywSdbGeq1eSibFfzjBvxdt0vz

確認したパスワードでログインします。

rancher_loki-stack_04.png

データソースは設定済みでした。

rancher_loki-stack_05.png

試しにnginxをデプロイしておきます。

root@k8s1:~# kubectl create deployment nginx-deployment --image=nginx:latest
deployment.apps/nginx-deployment created

exploreでcontainer="nginx"でログ普通に出てきました。

rancher_loki-stack_06.png

なるほど。こんな感じなんですねー