ฉันมีคลัสเตอร์ที่มี 1 แผงควบคุมและ 2 โหนด
ติดตั้ง Istio เป็น Service Mesh
ฉันร้องขอการจัดการผ่าน istio ingress
ฉันต้องการให้ปรับขนาดโดยอัตโนมัติด้วยการแชร์เมตริกระหว่าง Kubernetes HPA และ istio prometheus แต่ฉันทำไม่ได้
พ็อดของฉันบนระบบ kube
พ็อดระบบ kube
root@ubuntu-master:~# kubectl รับพ็อด -n kube-system
สถานะพร้อมชื่อเริ่มอายุใหม่
coredns-78fcd69978-pk69f 1/1 วิ่ง 1 (2d11h ที่แล้ว) 2d12h
coredns-78fcd69978-t5dkx 1/1 วิ่ง 1 (2d11h ที่แล้ว) 2d12h
etcd-ubuntu-master 1/1 กำลังทำงาน 1 (2d11h ที่แล้ว) 48d
kube-apiserver-ubuntu-master 1/1 กำลังทำงาน 2 (2d11h ที่แล้ว) 48d
kube-controller-manager-ubuntu-master 1/1 วิ่ง 3 (2d11h ที่แล้ว) 48d
kube-proxy-72q2r 1/1 ทำงาน 0 2d10h
kube-proxy-8qgr9 1/1 กำลังทำงาน 1 (2d11h ที่แล้ว) 48d
kube-proxy-t4wgr 1/1 ทำงาน 0 2d10h
kube-scheduler-ubuntu-master 1/1 กำลังทำงาน 3 (2d11h ที่แล้ว) 48d
เมตริกเซิร์ฟเวอร์-84b4bfc7fb-h8gd2 1/1 กำลังทำงาน 0 18 ชม.
พ็อดของฉันบนระบบ istio
ระบบ istio
root@ubuntu-master:~# kubectl รับพ็อด -n istio-system
สถานะพร้อมชื่อเริ่มอายุใหม่
grafana-6ccd56f4b6-bw5md 1/1 วิ่ง 0 2d12h
istio-ingressgateway-57c665985b-wj5gr 1/1 กำลังทำงาน 0 2d12h
istiod-78cc776c5b-qkr6b 1/1 วิ่ง 0 2d12h
jaeger-5d44bc5c5d-db2pj 1/1 วิ่ง 0 2d12h
kiali-79b86ff5bc-mj8bn 1/1 วิ่ง 0 2d12h
prometheus-64fd8ccd65-22znf 2/2 วิ่ง 0 2d12h
prometheus-adapter-6d9c6c8fdf-lxfbp 1/1 กำลังดำเนินการ 0 17h
ผลลัพธ์ของ Prometheus UI:
ผลลัพธ์ UI ของโพรมีธีอุส
การตอบสนองของเซิร์ฟเวอร์เมตริก
การตอบสนองของเซิร์ฟเวอร์เมตริก
root@ubuntu-master:~# kubectl รับ --raw "/apis/custom.metrics.k8s.io/v1beta1"
{"kind":"APIResourceList","apiVersion":"v1","groupVersion":"custom.metrics.k8s.io/v1beta1","resources":[{"name":"namespaces/network_transmit_packets_dropped"," singularName":"","namespaced":false,"kind":"MetricValueList","verbs":["get"]},{"name":"namespaces/processes","singularName":""," namespaced":false,"kind":"MetricValueList","verbs":["get"]},{"name":"namespaces/sockets","singularName":"","namespaced":false,"kind ":"MetricValueList","verbs":["get"]},{"name":"namespaces/spec_memory_swap_limit_bytes","singularName":"","namespaced":false,"kind":"MetricValueList"," verbs":["get"]},{"name":"jobs.batch/kiali_single_validation_processing_duration_seconds_sum","singularName":"","namespaced":true,"kind":"MetricValueList","verbs":[" get"]},{"name":"jobs.batch/kiali_validation_processing_duration_seconds_count","singularName":"","namespaced":true,"kind":"MetricValueList","verbs":["get"]}, {"ชื่อ":"namespaces/kubelet_container_log_filesystem_used_bytes","singularName":"","namespaced":false,"kind":"M etricValueList","verbs":["get"]},{"name":"namespaces/cpu_system","singularName":"","namespaced":false,"kind":"MetricValueList","verbs": ["get"]},{"name":"pods/cpu_user","singularName":"","namespaced":true,"kind":"MetricValueList","verbs":["get"]}, {"name":"namespaces/fs_reads_bytes","singularName":"","namespaced":false,"kind":"MetricValueList","verbs":["get"]},{"name":"services /kiali_validation_processing_duration_seconds_sum","singularName":"","namespaced":true,"kind":"MetricValueList","verbs":["get"]},......
ที่นี่ในคำจำกัดความ HPA ของฉัน
istio kubernetes hpa
root@ubuntu-master:~# kubectl อธิบาย hpa html-pdf-v2-hpa -n html-pdf-v2
ชื่อ: html-pdf-v2-hpa
เนมสเปซ: html-pdf-v2
ป้ายกำกับ: <ไม่มี>
คำอธิบายประกอบ: metric-config.object.istio-requests-total.prometheus/query:
ผลรวม (
ประเมิน(
istio_requests_total{
destination_workload="html-pdf-ปรับใช้",
destination_workload_namespace="html-pdf-v2"
}[1ม.]
)
) /
นับ(
นับ(
container_memory_usage_bytes{
เนมสเปซ="html-pdf-v2",
pod=~"html-pdf-deploy.*"
}
) โดย (พ็อด)
)
CreationTimestamp: พุธ 19 ม.ค. 2022 18:11:14 +0300
อ้างอิง: การปรับใช้/html-pdf-deploy
เมตริก: ( ปัจจุบัน / เป้าหมาย )
"istio-requests-total" บน Pod/html-pdf-deploy (ค่าเป้าหมาย): <unknown> / 10
แบบจำลองขั้นต่ำ: 1
จำลองสูงสุด: 10
พ็อดการปรับใช้: 5 ปัจจุบัน / 0 ต้องการ
เงื่อนไข:
พิมพ์ข้อความเหตุผลของสถานะ
---- ------ ------ -------
AbleToScale True SucceededGetScale ตัวควบคุม HPA สามารถรับสเกลปัจจุบันของเป้าหมายได้
ScalingActive False FailedGetObjectMetric HPA ไม่สามารถคำนวณจำนวนแบบจำลอง: ไม่สามารถรับเมตริก istio-requests-total: Pod บน html-pdf-v2 html-pdf-deploy/ไม่สามารถดึงข้อมูลเมตริกจากเมตริกที่กำหนดเอง API: เซิร์ฟเวอร์ไม่พบ เมตริก istio-requests-total สำหรับพ็อด
เหตุการณ์:
พิมพ์อายุเหตุผลจากข้อความ
---- ------ ---- ---- -------
คำเตือน FailedGetObjectMetric 55s (x4255 over 17h) แนวนอน-pod-autoscaler ไม่สามารถรับ metric istio-requests-total: Pod บน html-pdf-v2 html-pdf-deploy/ไม่สามารถดึงข้อมูลตัวชี้วัดจาก API ตัวชี้วัดที่กำหนดเอง: ไม่พบเซิร์ฟเวอร์ เมตริก istio-requests-total สำหรับพ็อด
ผลลัพธ์ของพ็อดบนสุดของ kubectl
root@ubuntu-master:~# kubectl top pods -n istio-system
ชื่อ CPU (แกน) หน่วยความจำ (ไบต์)
กราฟานา-6ccd56f4b6-bw5md 2m 39Mi
istio-ingressgateway-57c665985b-wj5gr 10ม. 85มิ.
istiod-78cc776c5b-qkr6b 7ม.61มิ
แจเกอร์-5d44bc5c5d-db2pj 3m 809Mi
เกียลี-79b86ff5bc-mj8bn 4m 1125Mi
โพรมีธีอุส-64fd8ccd65-22znf 34m 744Mi
prometheus-adapter-6d9c6c8fdf-lxfbp 40m 76Mi
HPA ยามล.
apiVersion: การปรับขนาดอัตโนมัติ/v2beta1
ประเภท: HorizontalPodAutoscaler
ข้อมูลเมตา:
ชื่อ: html-pdf-v2-hpa
เนมสเปซ: html-pdf-v2
คำอธิบายประกอบ:
metric-config.object.istio-requests-total.prometheus/query: |
ผลรวม (
ประเมิน(
istio_requests_total{
destination_workload="html-pdf-ปรับใช้",
destination_workload_namespace="html-pdf-v2"
}[1ม.]
)
) /
นับ(
นับ(
container_memory_usage_bytes{
เนมสเปซ="html-pdf-v2",
pod=~"html-pdf-deploy.*"
}
) โดย (พ็อด)
)
ข้อมูลจำเพาะ:
แบบจำลองสูงสุด: 10
นาทีแบบจำลอง: 1
สเกลTargetRef:
apiVersion: แอป/v1
ประเภท: การปรับใช้
ชื่อ: html-pdf-deploy
เมตริก:
- ประเภท: วัตถุ
วัตถุ:
metricName: istio-requests-total
เป้า:
api เวอร์ชัน: v1
ชนิด: ฝัก
ชื่อ: html-pdf-deploy
ค่าเป้าหมาย: 10
ฉันมีความกังวลว่าฉันผิดพลาดตรงไหนหรือว่าฉันเดินบนเส้นทางที่ถูกต้องหรือไม่
โพสต์แรกฉันตื่นเต้นสำหรับคำตอบ ฉันหวังว่าฉันจะอธิบายตัวเองได้อย่างถูกต้อง
ขอบคุณ