โปรดทราบว่าทุกอย่างเป็นการทดลองและอาจเปลี่ยนแปลงได้ตลอดเวลา
พื้นที่เก็บข้อมูลนี้รวบรวม Kubernetes ปรากฏ, แผงควบคุม Grafana และกฎ Prometheus รวมกับเอกสารและสคริปต์เพื่อให้ใช้งานง่ายต่อการตรวจสอบคลัสเตอร์ Kubernetes แบบ end-to-end กับ Prometheus โดยใช้ Prometheus
เนื้อหาของโครงการนี้เขียนขึ้นใน JSONNET โครงการนี้สามารถอธิบายได้ว่าเป็นแพ็คเกจเช่นเดียวกับห้องสมุด
ส่วนประกอบที่รวมอยู่ในแพ็คเกจนี้:
สแต็กนี้มีไว้สำหรับการตรวจสอบคลัสเตอร์ดังนั้นจึงได้รับการกำหนดค่าล่วงหน้าเพื่อรวบรวมตัวชี้วัดจากส่วนประกอบ Kubernetes ทั้งหมด นอกจากนั้นยังมอบชุดแดชบอร์ดและกฎการแจ้งเตือนเริ่มต้น แดชบอร์ดและการแจ้งเตือนที่มีประโยชน์จำนวนมากมาจากโครงการ Kubernetes-Mixin ซึ่งคล้ายกับโครงการนี้มันให้ JSONNET Composable เป็นห้องสมุดสำหรับผู้ใช้เพื่อปรับแต่งความต้องการของพวกเขา
คุณจะต้องมีคลัสเตอร์ Kubernetes นั่นมัน! โดยค่าเริ่มต้นจะสันนิษฐานว่า Kubelet ใช้การรับรองความถูกต้องของโทเค็นและการอนุญาตเช่นเดียวกับ Prometheus ต้องการใบรับรองลูกค้าซึ่งให้การเข้าถึง Kubelet อย่างเต็มที่แทนที่จะเป็นเพียงตัวชี้วัด การรับรองความถูกต้องของโทเค็นและการอนุญาตช่วยให้การควบคุมการเข้าถึงที่ละเอียดยิ่งขึ้นและง่ายขึ้น
ซึ่งหมายความว่าการกำหนดค่า Kubelet จะต้องมีแฟล็กเหล่านี้:
--authentication-token-webhook=true Flag นี้เปิดใช้งานได้ว่าสามารถใช้โทเค็น ServiceAccount เพื่อตรวจสอบความถูกต้องกับ Kubelet (S) นอกจากนี้ยังสามารถเปิดใช้งานได้โดยการตั้งค่า authentication.webhook.enabled ค่าการกำหนดค่า kubelet.webhook.enabled เป็น true--authorization-mode=Webhook Flag นี้เปิดใช้งาน Kubelet จะดำเนินการคำขอ RBAC กับ API เพื่อพิจารณาว่าเอนทิตีที่ร้องขอ (Prometheus ในกรณีนี้) ได้รับอนุญาตให้เข้าถึงทรัพยากรโดยเฉพาะสำหรับโครงการนี้ /metrics สิ่งนี้สามารถเปิดใช้งานได้โดยการตั้งค่า authorization.mode ค่ากำหนดค่า Kubelet โหมดเป็น Webhookสแต็กนี้ให้ตัวชี้วัดทรัพยากรโดยการปรับใช้อะแดปเตอร์ Prometheus อะแดปเตอร์นี้เป็นเซิร์ฟเวอร์ Extension API และ Kubernetes จะต้องเปิดใช้งานคุณสมบัตินี้มิฉะนั้นอะแดปเตอร์จะไม่มีผล แต่ยังคงถูกปรับใช้
รุ่น Kubernetes ต่อไปนี้ได้รับการสนับสนุนและทำงานในขณะที่เราทดสอบกับเวอร์ชันเหล่านี้ในสาขาที่เกี่ยวข้อง แต่โปรดทราบว่าเวอร์ชันอื่นอาจใช้งานได้!
| Kube-Prometheus Stack | Kubernetes 1.23 | Kubernetes 1.24 | Kubernetes 1.25 | Kubernetes 1.26 | Kubernetes 1.27 | Kubernetes 1.28 | Kubernetes 1.29 | Kubernetes 1.30 | Kubernetes 1.31 |
|---|---|---|---|---|---|---|---|---|---|
release-0.11 | x | x | x | x | x | x | |||
release-0.12 | x | x | x | x | x | x | |||
release-0.13 | x | x | x | x | |||||
release-0.14 | x | ||||||||
main | x | x |
โครงการนี้มีวัตถุประสงค์เพื่อใช้เป็นไลบรารี (เช่นเจตนาไม่ได้มีไว้สำหรับคุณในการสร้างสำเนาที่เก็บของคุณเอง)
แม้ว่าจะมีการตรวจสอบ Kubernetes รุ่นที่รวบรวมไว้ด้วยไลบรารีนี้ (โดยเฉพาะกับ example.jsonnet ) ในที่เก็บนี้เพื่อลองใช้เนื้อหาอย่างรวดเร็ว หากต้องการลองใช้สแต็กที่ไม่ได้ทำ:
manifests : # Create the namespace and CRDs, and then wait for them to be available before creating the remaining resources
# Note that due to some CRD size we are using kubectl server-side apply feature which is generally available since kubernetes 1.22.
# If you are using previous kubernetes versions this feature may not be available and you would need to use kubectl create instead.
kubectl apply --server-side -f manifests/setup
kubectl wait
--for condition=Established
--all CustomResourceDefinition
--namespace=monitoring
kubectl apply -f manifests/ เราสร้างเนมสเปซและ CustomResourcedefinitions ก่อนเพื่อหลีกเลี่ยงสภาพการแข่งขันเมื่อปรับใช้ส่วนประกอบการตรวจสอบ อีกทางเลือกหนึ่งทรัพยากรในโฟลเดอร์ทั้งสองสามารถนำไปใช้กับคำสั่ง kubectl apply --server-side -f manifests/setup -f manifests แต่อาจจำเป็นต้องเรียกใช้คำสั่งหลายครั้งสำหรับส่วนประกอบทั้งหมดที่จะสร้างได้สำเร็จ
kubectl delete --ignore-not-found=true -f manifests/ -f manifests/setupหากต้องการลองใช้สแต็กนี้ให้เริ่ม Minikube ด้วยคำสั่งต่อไปนี้:
$ minikube delete && minikube start --kubernetes-version=v1.23.0 --memory=6g --bootstrapper=kubeadm --extra-config=kubelet.authentication-token-webhook=true --extra-config=kubelet.authorization-mode=Webhook --extra-config=scheduler.bind-address=0.0.0.0 --extra-config=controller-manager.bind-address=0.0.0.0สแต็ค Kube-Prometheus รวมถึงเซิร์ฟเวอร์ตัวชี้วัดทรัพยากร API ดังนั้นจึงไม่จำเป็นต้องใช้ Addon Metrics-Server ตรวจสอบให้แน่ใจว่า Addon Metrics-Server ถูกปิดใช้งานบน Minikube:
$ minikube addons disable metrics-serverก่อนที่จะปรับใช้ kube-prometheus ในสภาพแวดล้อมการผลิตอ่าน:
docs/ ไดเรกทอรี เพื่อมีส่วนร่วมใน Kube-Prometheus อ้างถึงการมีส่วนร่วม
หากคุณมีคำถามหรือข้อเสนอแนะใด ๆ เกี่ยวกับ Kube-Prometheus เข้าร่วมการสนทนา Kube-Prometheus อีกทางเลือกหนึ่งคือพิจารณาเข้าร่วม Kubernetes Slack #Prometheus-Operator Channel หรือเวลาทำงานของผู้สนับสนุนรายสัปดาห์ของโครงการ
ใบอนุญาต Apache 2.0 ดูใบอนุญาต