Version ตอนเขียนบทความ
kubernetes version 1.11
kube-state-metrics version 1.14.0
kube-state-metrics คือเซอร์วิสตัวหนึ่งที่ไว้เก็บค่าต่างๆ ของ kubernetes เช่น deployment, pod, nodes ประโยชน์ของมันก็คือเพื่อส่งต่อค่าพวกนี้ไปยังพวกระบบ monitoring ต่างๆ เช่น Prometheus เป็นต้น หากใครต้องการดูแลระบบของ k8s ก็ต้องมีเจ้าตัวนี้ละมาช่วย
ผมได้ใช้เวลาตบตีกับมันในการติดตั้งนานพอสมควร เลยอยากแชร์วิธีการเอาไว้สักหน่อย จริงๆ มันติดตั้งง่ายๆ โครต แต่พอดีผมใช้งานอยู่บน Google Kubernetes Engine (GKE) เลยจะมีเรื่องสิทธิ์ RBAC มาเกี่ยวด้วย
⚡ kubectl create clusterrolebinding cluster-admin-binding --clusterrole=cluster-admin --user=<gcloud_mail>
https://console.cloud.google.com/iam-admin/iam?authuser=1&project=PROJECT_ID
เช่น Twin@gmail.comในส่วนนี้จะต้องเป็น case sensitive ด้วยนะ กล่าวคือตัวอักษรใหญ่หรือเล็กต้องตรงกันหมด ผมโดนมาละ ไปใส่อีเมลตัวเล็กหมด เวลาสร้าง kube-state-metrics มันจะ error
ตรวจสอบสักหน่อยว่าค่าถูกต้อง
⚡ kubectl describe clusterrolebinding cluster-admin-binding
Name: cluster-admin-binding
Labels: <none>
Annotations: <none>
Role:
Kind: ClusterRole
Name: cluster-admin
Subjects:
Kind Name Namespace
---- ---- ---------
User Twin@gmail.com
⚡ git clone https://github.com/kubernetes/kube-state-metrics.git
⚡ cd kube-state-metrics
⚡ kubectl create -f kubernetes/
เพียงเท่านี้ก็น่าจะได้ละ
⚡ kubectl -n kube-system port-forward svc/kube-state-metrics 8080:8080
ลอง http://localhost:8080/metrics
ก็จะได้ค่าของระบบยาวๆ อออก
หรือ http://localhost:8080/healthz
จะแสดงว่า ok
เป็นอันใช้ได้