Production-Grade Container Scheduling and Management
Go to file
Yu-Ju Hong 2eb17df46b kubelet: independent pod syncs and backoff on error
Currently kubelet syncs all pods every 10s. This is not preferred because
 * Some pods may have been sync'd recently.
 * This may cause all the pods to be sync'd at once, causing undesirable
   CPU spikes.

This PR replaces the global syncs with independent, periodic pod syncs. At the
end of syncing, each pod worker will enqueue itslef with a future timestamp (
current time + sync interval), when it will be due for another sync.
 * If the pod worker encoutners an sync error, it may requeue with a different
   timestamp to retry sooner.
 * If a sync is triggered by the update channel (events or spec changes), the
   pod worker would enqueue a new sync time.

This change is necessary for moving to long or no periodic sync period once pod
lifecycle event generator is completed. We will still rely on the mechanism to
requeue the pod on sync error.

This change also makes sure that if a sync does not succeed (either due to
real error or the per-container backoff mechanism), an error would be propagated
back to the pod worker, which is responsible for requeuing.
2015-11-03 13:29:08 -08:00
api/swagger-spec eliminate cross-namespace HPA escalation attack 2015-11-03 08:05:26 -05:00
build Move to release/ 2015-11-02 09:27:52 -08:00
cluster Remove monit related salt files. 2015-11-03 09:31:50 -08:00
cmd Merge pull request #16671 from DirectXMan12/refactor/hpa-heapster-service 2015-11-03 03:58:26 -08:00
contrib Merge pull request #16111 from mesosphere/sttts-sandbox-overlay 2015-11-03 03:00:57 -08:00
docs Merge pull request #16102 from ihmccreery/release-docs 2015-11-03 11:09:36 -08:00
examples Add NewRelic system monitor DaemonSet example 2015-11-02 00:15:47 -05:00
Godeps Merge pull request #16127 from jimmidyson/cadvisor-bump 2015-10-30 10:20:36 -07:00
hack Merge pull request #16111 from mesosphere/sttts-sandbox-overlay 2015-11-03 03:00:57 -08:00
hooks
pkg kubelet: independent pod syncs and backoff on error 2015-11-03 13:29:08 -08:00
plugin Use node out of disk condition in the scheduler while scheduling pods. 2015-10-28 14:29:46 -07:00
release Clarify -dirty language, and add --no-dry-run to usage 2015-11-03 09:42:49 -08:00
test eliminate cross-namespace HPA escalation attack 2015-11-03 08:05:26 -05:00
third_party Vendor in go1.5.1 dependency 2015-10-21 09:56:36 -07:00
www
.generated_docs Gendocs for docs/admin/kube-* 2015-10-25 19:24:23 +08:00
.gitignore Ignore a few directories created on Jenkins 2015-10-06 18:30:25 -07:00
.travis.yml Move hack/travis/install-etcd.sh to hack/ 2015-10-13 16:04:44 -07:00
CHANGELOG.md s|github.com/GoogleCloudPlatform/kubernetes|github.com/kubernetes/kubernetes| 2015-09-03 10:10:11 -04:00
code-of-conduct.md Add a code of conduct. 2015-09-10 11:53:27 -07:00
CONTRIB.md
CONTRIBUTING.md
DESIGN.md
LICENSE
logo_usage_guidelines.md s|github.com/GoogleCloudPlatform/kubernetes|github.com/kubernetes/kubernetes| 2015-09-03 10:10:11 -04:00
logo.pdf
logo.png
logo.svg
Makefile Add scripts for updating autogenerated files. 2015-10-16 10:12:08 +02:00
README.md Add aliases for links and link widgets 2015-09-15 14:39:05 +03:00
shippable.yml Move hack/travis/install-etcd.sh to hack/ 2015-10-13 16:04:44 -07:00
Vagrantfile Bump memory to increase tmpfs size for salt-provision 2015-09-30 16:46:17 -04:00

Kubernetes

GoDoc Widget Travis Widget Coverage Status Widget

Are you ...

  • Interested in learning more about using Kubernetes? Please see our user-facing documentation on kubernetes.io
  • Interested in hacking on the core Kubernetes code base? Keep reading!

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

Kubernetes is:

  • lean: lightweight, simple, accessible
  • portable: public, private, hybrid, multi cloud
  • extensible: modular, pluggable, hookable, composable
  • self-healing: auto-placement, auto-restart, auto-replication

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


Kubernetes can run anywhere!

However, initial development was done on GCE and so our instructions and scripts are built around that. If you make it work on other infrastructure please let us know and contribute instructions/code.

Kubernetes is ready for Production!

With the 1.0.1 release Kubernetes is ready to serve your production workloads.

Concepts

Kubernetes works with the following concepts:

Cluster
A cluster is a set of physical or virtual machines and other infrastructure resources used by Kubernetes to run your applications. Kubernetes can run anywhere! See the Getting Started Guides for instructions for a variety of services.
Node
A node is a physical or virtual machine running Kubernetes, onto which pods can be scheduled.
Pod
Pods are a colocated group of application containers with shared volumes. They're the smallest deployable units that can be created, scheduled, and managed with Kubernetes. Pods can be created individually, but it's recommended that you use a replication controller even if creating a single pod.
Replication controller
Replication controllers manage the lifecycle of pods. They ensure that a specified number of pods are running at any given time, by creating or killing pods as required.
Service
Services provide a single, stable name and address for a set of pods. They act as basic load balancers.
Label
Labels are used to organize and select groups of objects based on key:value pairs.

Documentation

Kubernetes documentation is organized into several categories.

Community, discussion, contribution, and support

See which companies are committed to driving quality in Kubernetes on our community page.

Do you want to help "shape the evolution of technologies that are container packaged, dynamically scheduled and microservices oriented?"

You should consider joining the Cloud Native Computing Foundation. For details about who's involved and how Kubernetes plays a role, read their announcement.

Code of conduct

Participation in the Kubernetes community is governed by the Kubernetes Code of Conduct.

Are you ready to add to the discussion?

We have presence on:

You can also view recordings of past events and presentations on our Media page.

For Q&A, our threads are at:

Want to do more than just 'discuss' Kubernetes?

If you're interested in being a contributor and want to get involved in developing Kubernetes, start in the Kubernetes Developer Guide and also review the contributor guidelines.

Support

While there are many different channels that you can use to get ahold of us, you can help make sure that we are efficient in getting you the help that you need.

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. We don't bite!

Analytics