Production-Grade Container Scheduling and Management
Go to file
k8s-merge-robot b8d000853e Merge pull request #21617 from luxas/hyperkube_for_arm
Automatic merge from submit-queue

Cross-build hyperkube and debian-iptables for ARM. Also add a flannel image

We have to be able to build complex docker images too on `amd64` hosts.
Right now we can't build Dockerfiles with `RUN` commands when building for other architectures e.g. ARM.

Resin has a tutorial about this here: https://resin.io/blog/building-arm-containers-on-any-x86-machine-even-dockerhub/
But it's a bit clumsy syntax.

The other alternative would be running this command in a Makefile:
```
# This registers in the kernel that ARM binaries should be run by /usr/bin/qemu-{ARCH}-static
docker run --rm --privileged multiarch/qemu-user-static:register --reset
```
and 
```
ADD https://github.com/multiarch/qemu-user-static/releases/download/v2.5.0/x86_64_qemu-arm-static.tar.xz /usr/bin
```
Then the kernel will be able to differ ARM binaries from amd64. When it finds a ARM binary, it will invoke `/usr/bin/qemu-arm-static` first and lets `qemu` translate the ARM syscalls to amd64 ones.
Some code here: https://github.com/multiarch

WDYT is the best approach? If registering `binfmt_misc` in the kernels of the machines is OK, then I think we should go with that.
Otherwise, we'll have to wait for resin's patch to be merged into mainline qemu before we may use the code I have here now.

@fgrzadkowski @david-mcmahon @brendandburns @zmerlynn @ixdy @ihmccreery @thockin
2016-04-04 22:03:32 -07:00
api/swagger-spec IngressTLS: allow secretName to be blank for SNI routing 2016-03-28 21:25:54 -04:00
build Merge pull request #21617 from luxas/hyperkube_for_arm 2016-04-04 22:03:32 -07:00
cluster Merge pull request #21617 from luxas/hyperkube_for_arm 2016-04-04 22:03:32 -07:00
cmd Remove explicit docker api version from HollowNodes 2016-04-04 20:39:09 +02:00
contrib Merge pull request #23797 from sttts/sttts-zsh-completion 2016-04-03 07:34:28 -07:00
docs Merge pull request #23786 from tnguyen-rh/fix-typo 2016-04-04 12:55:00 -07:00
examples Update guestbook examples; replace RC concepts with Deployment 2016-03-30 14:16:52 -07:00
federation/cmd/federated-apiserver update references of kube-apiserver to federated-apiserver 2016-03-30 10:18:23 -07:00
Godeps Merge pull request #23506 from Random-Liu/new-docker-client 2016-04-02 04:51:33 -07:00
hack Merge pull request #23452 from david-mcmahon/mungedocs 2016-04-01 12:06:56 -07:00
hooks Remove deep-copy pre-commit hook that no longer exists 2016-03-19 03:35:58 -07:00
logo Logo files with border and rendered name 2016-03-22 22:22:24 -07:00
pkg Merge pull request #23843 from cjcullen/dialtimeout 2016-04-04 21:28:52 -07:00
plugin Switch api.ObjetaMetaFor to meta.Accessor 2016-03-31 17:52:31 +02:00
release
test Merge pull request #23769 from saad-ali/fixVolumeCloudProvider 2016-04-04 20:52:13 -07:00
third_party Remove url query param that is leading to XSS issue 2016-03-22 10:35:06 -07:00
www
.generated_docs
.gitignore Ignore .config/gcloud-staging/ too 2016-03-31 13:51:04 -07:00
.travis.yml
CHANGELOG.md Add release notes for v1.2.1 and cleanup/unify formatting/layout. 2016-04-01 15:21:13 -07:00
code-of-conduct.md Markdown files in root updated by update-generated-docs.sh. 2016-03-31 16:53:52 -07:00
CONTRIB.md Markdown files in root updated by update-generated-docs.sh. 2016-03-31 16:53:52 -07:00
CONTRIBUTING.md Markdown files in root updated by update-generated-docs.sh. 2016-03-31 16:53:52 -07:00
DESIGN.md Markdown files in root updated by update-generated-docs.sh. 2016-03-31 16:53:52 -07:00
LICENSE
Makefile Revert "Disable verify-godep-licenses.sh in hack/verify-all.sh" 2016-03-11 17:31:56 -08:00
README.md Merge pull request #23719 from metral/corekube 2016-04-02 08:19:28 -07:00
shippable.yml
Vagrantfile Avoid certificate invalid messages for vagrant with parallels provider 2016-03-17 18:51:30 +01: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!

Community resources:

  • Awesome-kubernetes:

You can find more projects, tools and articles related to Kubernetes on the awesome-kubernetes list. Add your project there and help us make it better.

Instructive & educational resources for the Kubernetes community. By the community.

Analytics