helm経由で、 kube-prometheus-stackとloki stackを入れるだけだと連携ができないので
追加で以下の手順を進める必要がある。
1)Loki stackの導入を実施
helm install loki grafana/loki-stack --namespace monitoring --create-namespace
helm経由で、 kube-prometheus-stackとloki stackを入れるだけだと連携ができないので
追加で以下の手順を進める必要がある。
1)Loki stackの導入を実施
helm install loki grafana/loki-stack --namespace monitoring --create-namespace
1)以下、クラスタ内にフォルダを作成する
/mnt/data
/mnt/data2
2)PVC用のマニュフェストを作成(garafana/Prometheus用)
3)デプロイを行う
kubectl apply -f /Volumes/Store/Technology/k8s/PVC/garafana-prometheus-pvc.yaml
4)Helmの記載に追記するマニュフェスト作成(volumes.yaml)
5)以下のアップデートコマンド実施
helm install prometheus prometheus-community/kube-prometheus-stack -n monitoring -f volumes.yaml
以下が含まれる。
参照
https://istio.io/latest/docs/setup/getting-started/#download
k8sでモニタリングをしたくなったのでprometheus/Grafana/istio/kiali/jaegerを入れてみる。
■超簡単な概要について
Kiali(可視ツール):
Istioのサービスメッシュが構築されているマイクロサービスで何が起こっているかを可視化するツール
Istio:
トラフィックルーティングなどのトラフィック制御
認証やアクセス制限、暗号化などのセキュリティ
通信内容やトラフィック状況などの監視
Jaeger :
分散サービス間のトランザクションをトレースするためのオープンソース・ソフトウェア
1)istioctlコマンド(リソース)のダウンロード
curl -L https://istio.io/downloadIstio | sh -
2)以下のディレクトリに移動する
cd istio-1.10.3
3)パスを通す
export PATH=$PWD/bin:$PATH
4)istioのインストール
お試し利用程度なら、minialでも良いかもしれない。
istioctl install --set profile=demo -y
又は、
istioctl install --set profile=minimal -y
5)対象のnamespaceでアプリケーションをデプロイするときにEnvoyサイドカープロキシを
自動的に挿入するようにIstioに指示します。
kubectl label namespace default istio-injection=enabled
6)以下から各種モニタリング類のマニフェストを入手
https://github.com/istio/istio/tree/release-1.10/samples/addons
7)入手後、作成を行う。
kubectl apply -f samples/addons
■Wordpress導入
1)Helm経由でMySQLを入手
helm install mysql-01 stable/mysql
2)作成済みのwordpressを作成する。
kubectl create -f wordpress-deployment.yaml
以下の手順で簡易的にダッシュボードから確認
istioctl dashboard kiali
(wodpressとMySQL間の通信状況)
istioctl dashboard jaeger
(wodpressとMySQL間のトレース)
istioctl dashboard garafana
1)namespaceを作成
kubectl create namespace monitoring
2)helmにて、prometheus-operatorのインストールを行う
helm install monitoring stable/prometheus-operator -n monitoring2
3)対象のnamespaceに導入されていることを確認
helm list -n monitoring
4)garafana, prometheusのpodに対して、nodeportの割り当てを行う。
kubectl patch svc -n namespace名 pod名 -p '{"spec": {"type": "NodePort"}}'
現時点で、Prometheus&Grafanaは、ARMベースのCPUで稼働してないので
ソースコードを使って導入を行ってみる。
■go-langの導入
1)go langをインストールする。
apt install golang
2)環境変数を設定する。
# cat >> ~/.bashrc << 'EOF'
> export GOPATH=$HOME/go
> export PATH=$PATH:$GOPATH/bin
> EOF
3)上記で設定内容を反映させる。
source ~/.bashrc
4)kube-state-metricsのARM用のイメージをビルドしている人のソースコードが
あったので使うことにする。
git clone https://github.com/carlosedp/cluster-monitoring
5)read meに記載している内容のい従ってmakeを実施。
make vendor
6)マニフェストを適応させる。
kubectl apply -f ./manifests/setup/
kubectl apply -f ./manifests/
1)マニュフェストの内容を見直しを行う。
sudo vi manifests/prometheus-service.yaml
①NodePortを追記
②30909を追記
kubectl apply -f manifests/prometheus-service.yaml
■grafanaの修正
1)マニュフェストの修正を行う。
sudo vi manifests/grafana-service.yaml
①NodePortを追記
②30300を追記
2)再適用を行う。
kubectl apply -f manifests/grafana-service.yaml
2)最適応を行う
kubectl apply -f manifests/prometheus-prometheus.yaml
3)各種ポートが適応できているようだ。
4Grafanaのログインも可能に
5)Prometheusとの連携設定を行う
6)Prometheusを選択
7)先ほど、Prometheusのマニュフェストで修正したポート(30909)を指定する
Prometheus 2.0 Statsを選択
https://www.conversion.co.jp/technology/blog/-/detail/=/blog_id=7390284
(Grafana Dashboard)
https://grafana.com/grafana/dashboards
10)以下にて、監視画面の完成になる。
①prometheus-operator-alermanager
Alert Manager 本体
②prometheus-operator
Prometheus Operator 本体
③grafana
Prometheusのメトリクス可視化用のGrafana 本体
④kube-state-metrics
Kubernetes のオブジェクトごとのメトリクス出力用 exporter
⑤prometheus-node-exporter
ノードごとのメトリクス出力用 node exporter
⑥prometheus-operator-prometheus
Prometheus 本体
MacStudio M4 MAX 36GB/1TBを使っていて 個人的な、Aiエージェントの検証結果になります。 各エージェントのパラメータの意味や模索で結構時間が溶けてしまった。。。 各AIツールの検証結果とリアルな評価 ツール名 評価とリアルなボトルネック Roo Code...