Production-Grade Container Scheduling and Management
Go to file
Joseph Burnett 80e279d353 Ignore pending pods.
This change adds pending pods to the ignored set first before
selecting pods missing metrics. Pending pods are always ignored when
calculating scale.

When the HPA decides which pods and metric values to take into account
when scaling, it divides the pods into three disjoint subsets: 1)
ready 2) missing metrics and 3) ignored. First the HPA selects pods
which are missing metrics. Then it selects pods should be ignored
because they are not ready yet, or are still consuming CPU during
initialization. All the remaining pods go into the ready set. After
the HPA has decided what direction it wants to scale based on the
ready pods, it considers what might have happened if it had the
missing metrics. It makes a conservative guess about what the missing
metrics might have been, 0% if it wants to scale up--100% if it wants
to scale down. This is a good thing when scaling up, because newly
added pods will likely help reduce the usage ratio, even though their
metrics are missing at the moment. The HPA should wait to see the
results of its previous scale decision before it makes another
one. However when scaling down, it means that many missing metrics can
pin the HPA at high scale, even when load is completely removed. In
particular, when there are many unschedulable pods due to insufficient
cluster capacity, the many missing metrics (assumed to be 100%) can
cause the HPA to avoid scaling down indefinitely.
2019-07-10 12:16:33 +02:00
.github
api Merge pull request #78553 from caesarxuchao/alpha-gate-remainingItemCount 2019-06-07 12:21:58 -07:00
build Merge pull request #78667 from dims/ensure-src-tar-has-kubernetes-prefix 2019-06-04 09:04:06 -07:00
cluster add upstream to CoreDNS ConfigMap 2019-06-11 18:38:46 -04:00
cmd Merge pull request #78915 from ereslibre/retry-configmap-get-on-unauthorized 2019-06-12 13:00:19 -07:00
docs
Godeps
hack Merge pull request #78518 from dims/tolerate-missing-pyyaml-dependency 2019-06-01 08:00:32 -07:00
logo
pkg Ignore pending pods. 2019-07-10 12:16:33 +02:00
plugin
staging Revert "Bump klog to v0.3.2" 2019-06-12 10:27:41 +02:00
test Merge pull request #78885 from liggitt/procmount-1.15 2019-06-11 13:46:18 -07:00
third_party
translations
vendor Revert "Bump klog to v0.3.2" 2019-06-12 10:27:41 +02:00
.bazelrc
.generated_files
.gitattributes
.gitignore
.kazelcfg.json
BUILD.bazel
CHANGELOG-1.2.md
CHANGELOG-1.3.md
CHANGELOG-1.4.md
CHANGELOG-1.5.md
CHANGELOG-1.6.md
CHANGELOG-1.7.md
CHANGELOG-1.8.md
CHANGELOG-1.9.md
CHANGELOG-1.10.md
CHANGELOG-1.11.md
CHANGELOG-1.12.md
CHANGELOG-1.13.md Update CHANGELOG-1.13.md for v1.13.7. 2019-06-06 17:49:57 +00:00
CHANGELOG-1.14.md Update CHANGELOG-1.14.md for v1.14.3. 2019-06-06 15:34:05 +00:00
CHANGELOG-1.15.md Update CHANGELOG-1.15.md for v1.15.0-rc.1. 2019-06-11 23:12:06 +00:00
CHANGELOG.md
code-of-conduct.md
CONTRIBUTING.md
go.mod Revert "Bump klog to v0.3.2" 2019-06-12 10:27:41 +02:00
go.sum Revert "Bump klog to v0.3.2" 2019-06-12 10:27:41 +02:00
LICENSE
Makefile
Makefile.generated_files
OWNERS
OWNERS_ALIASES Merge pull request #78103 from michmike/patch-3 2019-05-31 22:02:21 -07:00
README.md
SECURITY_CONTACTS
SUPPORT.md
WORKSPACE

Kubernetes

GoDoc Widget CII Best Practices


Kubernetes is an open source system for managing containerized applications across multiple hosts; providing basic mechanisms for deployment, maintenance, and scaling of applications.

Kubernetes builds upon a decade and a half of experience at Google running production workloads at scale using a system called Borg, combined with best-of-breed ideas and practices from the community.

Kubernetes is hosted by the Cloud Native Computing Foundation (CNCF). If you are a company that wants to help shape the evolution of technologies that are container-packaged, dynamically-scheduled and microservices-oriented, consider joining the CNCF. For details about who's involved and how Kubernetes plays a role, read the CNCF announcement.


To start using Kubernetes

See our documentation on kubernetes.io.

Try our interactive tutorial.

Take a free course on Scalable Microservices with Kubernetes.

To start developing Kubernetes

The community repository hosts all information about building Kubernetes from source, how to contribute code and documentation, who to contact about what, etc.

If you want to build Kubernetes right away there are two options:

You have a working Go environment.
go get -d k8s.io/kubernetes
cd $GOPATH/src/k8s.io/kubernetes
make
You have a working Docker environment.
git clone https://github.com/kubernetes/kubernetes
cd kubernetes
make quick-release

For the full story, head over to the developer's documentation.

Support

If you need support, start with the troubleshooting guide, and work your way through the process that we've outlined.

That said, if you have questions, reach out to us one way or another.

Analytics