はじめに
前の記事では Grafana / InfluxDB / njmon をAIX 1台に導入した VM で確認していましたが、今回は IKS 上 に Grafana Pod を立てて、Grafana 部分を分離して表示を確認します。
環境
・IBM Kubernetes Service (VPC)
・Power Systems Virtual Server : AIX (influxDB, njmon導入済み)
(前の記事で作成したサーバー)
参考:
・Deploy Grafana on Kubernetes
https://grafana.com/docs/grafana/latest/installation/kubernetes/
設定
- IBM Cloud へログイン
$ ibmcloud login --apikey <API key> -r jp-tok -g <リソース・グループ>
- 対象の IKS クラスターへ接続
$ ibmcloud ks cluster config --cluster <クラスター名 or ID>
- IKS に Grafana Pod を作成する
3-1) PVC 作成
PVCを作成するyamlファイル
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: grafana-pv
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
storageClassName: ibmc-vpc-block-5iops-tier
$ kubectl apply -f grafana-pvc.yml
persistentvolumeclaim/grafana-pv created
$
3-2) Grafana の deployment、サービスを作成
deployment, サービスを作成する yamlファイル
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: grafana
name: grafana
spec:
selector:
matchLabels:
app: grafana
template:
metadata:
labels:
app: grafana
spec:
securityContext:
fsGroup: 472
supplementalGroups:
- 0
containers:
- name: grafana
image: grafana/grafana:7.5.2
imagePullPolicy: IfNotPresent
ports:
- containerPort: 3000
name: http-grafana
protocol: TCP
readinessProbe:
failureThreshold: 3
httpGet:
path: /robots.txt
port: 3000
scheme: HTTP
initialDelaySeconds: 10
periodSeconds: 30
successThreshold: 1
timeoutSeconds: 2
livenessProbe:
failureThreshold: 3
initialDelaySeconds: 30
periodSeconds: 10
successThreshold: 1
tcpSocket:
port: 3000
timeoutSeconds: 1
resources:
requests:
cpu: 250m
memory: 750Mi
volumeMounts:
- mountPath: /var/lib/grafana
name: grafana-pv
volumes:
- name: grafana-pv
persistentVolumeClaim:
claimName: grafana-pv
---
apiVersion: v1
kind: Service
metadata:
name: grafana
spec:
ports:
- port: 3000
protocol: TCP
targetPort: http-grafana
selector:
app: grafana
sessionAffinity: None
type: LoadBalancer
作成
$ kubectl apply -f grafana-deployment.yaml
deployment.apps/grafana created
service/grafana created
$
確認
$ kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
grafana LoadBalancer 172.21.196.xxxx xxxxxx-jp-tok.lb.appdomain.cloud 3000:31764/TCP 44s
$ kubectl get deployment
NAME READY UP-TO-DATE AVAILABLE AGE
grafana 1/1 1 1 2m32s
$ kubectl get po
NAME READY STATUS RESTARTS AGE
grafana-fcxxxxxc7-7dxxx 1/1 Running 0 2m57s
$ kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
grafana-pv Bound pvc-xxxxxxx-706a-xx21-xxx6-90e13xxxxf1 10Gi RWO ibmc-vpc-block-5iops-tier 7m6s
$ kubectl get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
pvc-xxxxxxx-706a-xx21-xxx6-90e13xxxxf1 10Gi RWO Delete Bound default/grafana-pv ibmc-vpc-block
-> PV は 1Gi で Claim しても 10Gi で作成されます。(Block Storageの制約..)
3-3) GUI ログイン、設定
サービスで表示された「xxxxxx-jp-tok.lb.appdomain.cloud」の3000 ポートにアクセスします。
無事表示。Grafana PVC 作成からここまで10分もかかっていません。
Datasource を設定します。
influxDB がある AIXをHTTPのURLに指定します。
Save & Test で InfluxDB の njmon データベースに接続されることが確認できました。
ダッシュボードをインポートします。
対象はこちら。
・njmon for AIX Simple Six v64
https://grafana.com/grafana/dashboards/10891
IKS に作成した Grafana Pod で PowerVS AIX の njmon データが取得できることを確認しました。
以上です。