1. 程式人生 > WINDOWS開發 >k8s 容器的資源需求,資源限制-監控-資源指標API及自定義指標API

k8s 容器的資源需求,資源限制-監控-資源指標API及自定義指標API

POD資源:
requests:需求,最低保障
limits:限制,硬限制
CPU:
一顆邏輯CPU(一個核心)
1=1000微核,millicores
500m=0.5CPU
記憶體:
E、P、T、G、M、K
Ei、Pi、Ti、Gi、Mi、Ki、
Qos:
Guranteed:最高優先順序, 確保、保證
同時設定了CPU和記憶體的requests和limits,
cpu.limits=cpu. requests
memory.limits=memory.limits
Burstable:中間優先順序,
至少有一個容器設定CPU或者記憶體資源requests的屬性,當記憶體資源比較緊缺時將requests分配佔用較大的停止
cpu.limits>cpu. requests
memory.limits>memory.limits
BestEffort:最低優先順序,
自動配置,當記憶體資源比較緊缺時,BestEffort會被優先退出,確保其他型別的正常執行
沒有任何一個設定

        resources:
          limits:
            memory: 1024Mi
            cpu: 2
          requests:
            cpu: 500m
            memory: 512Mi

HeapSter:(新版本被整合在kubernetes內部,kube1.1後廢棄)
cAdvisor:收集各node節點上面記憶體,硬碟,cpu的資源,可以在單節點上面檢視採集的結果。持久儲存在InfluxDB 預設老版本使用

監控指標:叢集指標,容器指標,應用指標

監控-資源指標API及自定義指標API

資源指標:metrics-server
自定義指標:prometheus,k8s-prometheus-adapter(轉換收集到的資料)

新一代架構:
核心指標流水線:由kubelet,metrics-server以及由API server提供的api組成;CPU累計使用率、記憶體實時使用率、Pod的資源佔用率及容器的磁碟佔用率;
監控流水線:用於從系統收集各種指標資料並提供終端使用者、儲存系統以及HPA,它們包含核心指標及很多的非核心指標。非核心指標本身不能被k8s所解析,

metrics-server:API server

/apis/metrics.k8s.io/v1beta1

部署metrics-server

for file in auth-delegator.yaml auth-reader.yaml metrics-apiservice.yaml metrics-server-deployment.yaml metrics-server-service.yaml resource-reader.yaml ;do wget https://raw.githubusercontent.com/kubernetes/kubernetes/master/cluster/addons/metrics-server/$file;done

kubectl top nodes
kubectl top pods 檢視所佔CPU和記憶體資源

待續。。。部署prometheus。。。。。。。