gocrane / crane

Crane is a FinOps Platform for Cloud Resource Analytics and Economics in Kubernetes clusters. The goal is not only to help users to manage cloud cost easier but also ensure the quality of applications.
https://gocrane.io
Apache License 2.0
1.83k stars 377 forks source link

Bugfix: avoid ext resource less then allocated #892

Open payall4u opened 6 months ago

payall4u commented 6 months ago

What type of PR is this?

bugfix

What this PR does / why we need it:

When online pods start using resources, the crane agent will reduce the amount of ext resources. If an online pod uses too many resources, the ext resources may be less than allocated. This can cause pods using ext resources to enter an indeterminate state. At this time, the pods will not be evicted directly, but restarting the kubelet may cause eviction.

This should be a bug. I tried to compare the total amount of allocated ext resources when reporting ext resources. Of course, only running pods are calculated, which is consistent with the logic of the kubelet.

Which issue(s) this PR fixes:

Fixes #890

Special notes for your reviewer:

github-actions[bot] commented 6 months ago

🎉 Successfully Build Images. Now Support ARM Platforms. Comment Post Time: 2024-01-21 11:47 Git Version: 41c5a84

Docker Registry

Overview: https://hub.docker.com/u/gocrane

Image Pull Command
crane-agent:pr-892-41c5a84 docker pull gocrane/crane-agent:pr-892-41c5a84
dashboard:pr-892-41c5a84 docker pull gocrane/dashboard:pr-892-41c5a84
metric-adapter:pr-892-41c5a84 docker pull gocrane/metric-adapter:pr-892-41c5a84
craned:pr-892-41c5a84 docker pull gocrane/craned:pr-892-41c5a84

Quick Deploy - Helm

helm repo add crane https://finops-helm.pkg.coding.net/gocrane/gocrane
helm install crane -n crane-system --create-namespace \
                   --set craned.image.repository=gocrane/craned \
                   --set craned.image.tag=pr-892-41c5a84 \
                   --set metricAdapter.image.repository=gocrane/metric-adapter \
                   --set metricAdapter.image.tag=pr-892-41c5a84 \
                   --set craneAgent.image.repository=gocrane/crane-agent \
                   --set craneAgent.image.tag=pr-892-41c5a84 \
                   --set cranedDashboard.image.repository=gocrane/dashboard \
                   --set cranedDashboard.image.tag=pr-892-41c5a84 crane/crane

Coding Registry

Overview: https://finops.coding.net/public-artifacts/gocrane/crane/packages

Image Pull Command
crane-agent:pr-892-41c5a84 docker pull finops-docker.pkg.coding.net/gocrane/crane/crane-agent:pr-892-41c5a84
dashboard:pr-892-41c5a84 docker pull finops-docker.pkg.coding.net/gocrane/crane/dashboard:pr-892-41c5a84
metric-adapter:pr-892-41c5a84 docker pull finops-docker.pkg.coding.net/gocrane/crane/metric-adapter:pr-892-41c5a84
craned:pr-892-41c5a84 docker pull finops-docker.pkg.coding.net/gocrane/crane/craned:pr-892-41c5a84

Quick Deploy - Helm

helm repo add crane https://finops-helm.pkg.coding.net/gocrane/gocrane
helm install crane -n crane-system --create-namespace \
                   --set craned.image.repository=finops-docker.pkg.coding.net/gocrane/crane/craned \
                   --set craned.image.tag=pr-892-41c5a84 \
                   --set metricAdapter.image.repository=finops-docker.pkg.coding.net/gocrane/crane/metric-adapter \
                   --set metricAdapter.image.tag=pr-892-41c5a84 \
                   --set craneAgent.image.repository=finops-docker.pkg.coding.net/gocrane/crane/crane-agent \
                   --set craneAgent.image.tag=pr-892-41c5a84 \
                   --set cranedDashboard.image.repository=finops-docker.pkg.coding.net/gocrane/crane/dashboard \
                   --set cranedDashboard.image.tag=pr-892-41c5a84 crane/crane

Ghcr Registry

Overview: https://github.com/orgs/gocrane/packages?repo_name=crane

Image Pull Command
crane-agent:pr-892-41c5a84 docker pull ghcr.io/gocrane/crane/crane-agent:pr-892-41c5a84
dashboard:pr-892-41c5a84 docker pull ghcr.io/gocrane/crane/dashboard:pr-892-41c5a84
metric-adapter:pr-892-41c5a84 docker pull ghcr.io/gocrane/crane/metric-adapter:pr-892-41c5a84
craned:pr-892-41c5a84 docker pull ghcr.io/gocrane/crane/craned:pr-892-41c5a84

Quick Deploy - Helm

helm repo add crane https://finops-helm.pkg.coding.net/gocrane/gocrane
helm install crane -n crane-system --create-namespace \
                   --set craned.image.repository=ghcr.io/gocrane/crane/craned \
                   --set craned.image.tag=pr-892-41c5a84 \
                   --set metricAdapter.image.repository=ghcr.io/gocrane/crane/metric-adapter \
                   --set metricAdapter.image.tag=pr-892-41c5a84 \
                   --set craneAgent.image.repository=ghcr.io/gocrane/crane/crane-agent \
                   --set craneAgent.image.tag=pr-892-41c5a84 \
                   --set cranedDashboard.image.repository=ghcr.io/gocrane/crane/dashboard \
                   --set cranedDashboard.image.tag=pr-892-41c5a84 crane/crane