Production-Grade Container Scheduling and Management
Go to file
Madhusudan.C.S fe26381c90 Support for both map-based and set-based selectors in extensions/v1beta1.Scale
Here are a list of changes along with an explanation of how they work:
1. Add a new string field called TargetSelector to the external version of
   extensions Scale type (extensions/v1beta1.Scale). This is a serialized
   version of either the map-based selector (in case of ReplicationControllers)
   or the unversioned.LabelSelector struct (in case of Deployments and
   ReplicaSets).
2. Change the selector field in the internal Scale type (extensions.Scale) to
   unversioned.LabelSelector.
3. Add conversion functions to convert from two external selector fields to a
   single internal selector field. The rules for conversion are as follows:
   i.   If the target resource that this scale targets supports LabelSelector
        (Deployments and ReplicaSets), then serialize the LabelSelector and
        store the string in the TargetSelector field in the external version
        and leave the map-based Selector field as nil.
   ii.  If the target resource only supports a map-based selector
        (ReplicationControllers), then still serialize that selector and
	store the serialized string in the TargetSelector field. Also,
	set the the Selector map field in the external Scale type.
   iii. When converting from external to internal version, parse the
        TargetSelector string into LabelSelector struct if the string isn't
	empty. If it is empty, then check if the Selector map is set and just
	assign that map to the MatchLabels component of the LabelSelector.
   iv.  When converting from internal to external version, serialize the
        LabelSelector and store it in the TargetSelector field. If only
	the MatchLabel component is set, then also copy that value to
	the Selector map field in the external version.
4. HPA now just converts the LabelSelector field to a Selector interface
   type to list the pods.
5. Scale Get and Update etcd methods for Deployments and ReplicaSets now
   return extensions.Scale instead of autoscaling.Scale.
6. Consequently, SubresourceGroupVersion override and is "autoscaling"
   enabled check is now removed from pkg/master/master.go
7. Other small changes to labels package, fuzzer and LabelSelector
   helpers to piece this all together.
8. Add unit tests to HPA targeting Deployments and ReplicaSets.
9. Add an e2e test to HPA targeting ReplicaSets.
2016-03-09 17:54:17 -08:00
api/swagger-spec Support for both map-based and set-based selectors in extensions/v1beta1.Scale 2016-03-09 17:54:17 -08:00
build add proxy settings for vagrant 2016-03-07 09:57:26 +08:00
cluster Merge pull request #22728 from spxtr/tidy-shell 2016-03-09 13:59:13 -08:00
cmd Update the latestReleaseBranch to release-1.2 in the munger. 2016-03-08 18:59:28 -08:00
contrib fix broken km controller 2016-03-09 11:58:51 -05:00
docs Support for both map-based and set-based selectors in extensions/v1beta1.Scale 2016-03-09 17:54:17 -08:00
examples Update the latestReleaseBranch to release-1.2 in the munger. 2016-03-08 18:59:28 -08:00
Godeps Merge pull request #22105 from timstclair/godeps 2016-03-05 11:27:00 -08:00
hack Remove hack/e2e-internal/e2e-upgrade.sh. 2016-03-09 14:14:04 -08:00
hooks Spelling fixes inspired by github.com/client9/misspell 2016-02-18 06:58:05 +07:00
pkg Support for both map-based and set-based selectors in extensions/v1beta1.Scale 2016-03-09 17:54:17 -08:00
plugin Change scheduler logic from random to round-robin 2016-03-07 13:47:56 +01:00
release Merge pull request #22329 from david-mcmahon/push-official 2016-03-03 08:52:35 -08:00
test Support for both map-based and set-based selectors in extensions/v1beta1.Scale 2016-03-09 17:54:17 -08:00
third_party Fix a couple typos 2016-02-02 15:39:33 -05:00
www
.generated_docs added 'kubectl create sa' to create serviceaccounts 2016-02-26 10:27:37 -05:00
.gitignore Add direnv .envrc files to gitignore 2016-02-13 01:20:17 -05:00
.travis.yml Update tests from Go 1.5.2 to Go 1.5.3 2016-01-21 09:43:52 -08: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 Update advice for getting support and filing issues. 2015-08-19 03:18:06 +00:00
DESIGN.md
LICENSE Fix LICENSE file. 2016-02-24 16:41:19 -08:00
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 Merge pull request #21520 from mikedanese/fastbuild 2016-02-28 07:23:22 -08:00
README.md Add GoReportCard to main README 2016-03-03 13:57:29 -08:00
shippable.yml linkchecker tool now visits the URL to determine if it's valid 2016-01-26 17:01:37 -08:00
Vagrantfile add proxy settings for vagrant 2016-03-07 09:57:26 +08:00

Kubernetes

GoReportCard Widget 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