针对单个pod里只有单个docker的计算逻辑:
CPU_Limit = c0.resources.limits.cpu
Memory_Limit = c0.resources.limits.memory
CPU_Request = c0.resources.requests.cpu
Memory_Request = c0.resources.requests.memory
- image: abcxxxxxxx:version1.0.0-rc.0-1-g77d5c5b5f1d3-qcgfz
name: c0
resources:
limits:
cpu: "2"
memory: 4Gi
requests:
cpu: "1"
memory: 2Gi
---------------------------------------------------------------------------------
针对单个pod里有多个docker的计算逻辑:
CPU_Limit = c0.resources.limits.cpu + c1.resources.limits.cpu
Memory_Limit = c0.resources.limits.memory + c1.resources.limits.memory
CPU_Request = c0.resources.requests.cpu + c1.resources.requests.cpu
Memory_Request = c0.resources.requests.memory + c1.resources.requests.memory
-image: abcxxxxxxx:version1.0.0-rc.0-1-g77d5c5b5f1d3-qcgf
name: c0
resources:
limits:
cpu: "2"
memory: 6Gi
requests:
cpu: "1"
memory: 2Gi
- image: defxxxxxxx:version1.0.0-rc.0-1-g77d5c5b5f1d3-qcgf
name: c1
resources:
limits:
cpu: 500m
memory: 512Mi
requests:
cpu: 500m
memory: 512Mi
#!/bin/bash
# Retrieve all namespaces
namespaces=$(kubectl get namespaces --no-headers -o custom-columns=NAME:.metadata.name | egrep -v "(default|kube-system|kube-public)")
output_file="resource_limits_and_replicas.csv"
rm -f $output_file
# Write CSV file headers
echo "Namespace,Type,Name,CPU_Limit,Memory_Limit,Replicas,CPU_Request,Memory_Request" >> $output_file
# For each namespace
for ns in $namespaces; do
# Get Deployment resource limits, requests, and replicas
kubectl -n $ns get deployments -o json | \
jq -r --arg ns "$ns" '.items[] | [$ns, "Deployment", .metadata.name, (reduce .spec.template.spec.containers[] as $item (""; . + $item.resources.limits.cpu)), (reduce .spec.template.spec.containers[] as $item (""; . + $item.resources.limits.memory)), .spec.replicas, (reduce .spec.template.spec.containers[] as $item (""; . + $item.resources.requests.cpu)), (reduce .spec.template.spec.containers[] as $item (""; . + $item.resources.requests.memory))] | @csv' >> $output_file
# Get StatefulSet resource limits, requests, and replicas
kubectl -n $ns get statefulsets -o json | \
jq -r --arg ns "$ns" '.items[] | [$ns, "StatefulSet", .metadata.name, (reduce .spec.template.spec.containers[] as $item (""; . + $item.resources.limits.cpu)), (reduce .spec.template.spec.containers[] as $item (""; . + $item.resources.limits.memory)), .spec.replicas, (reduce .spec.template.spec.containers[] as $item (""; . + $item.resources.requests.cpu)), (reduce .spec.template.spec.containers[] as $item (""; . + $item.resources.requests.memory))] | @csv' >> $output_file
done