ติดตั้ง kube-state-metrics บน Kubernetes

DevOps Dec 20, 2018

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 มาเกี่ยวด้วย

สำหรับใครที่ใช้งานบน GKE ต้องทำขั้นตอนนี้ก่อน

⚡ kubectl create clusterrolebinding cluster-admin-binding --clusterrole=cluster-admin --user=<gcloud_mail>
  • <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  

โหลด repo kube-state-metrics มาก่อน

⚡ git clone https://github.com/kubernetes/kube-state-metrics.git

ติดตั้งผ่าน kubectl

⚡ 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 เป็นอันใช้ได้

ค่าที่แสดงออกมา

Arnon Kijlerdphon

IT manager & DevOps @Twin Synergy Co.,Ltd

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.