Kubernetes is an open source system for automating the deployment and scaling of containerized applications and managing clusters of containers. Originally designed by Google and donated to the Cloud Native Computing Foundation, Kubernetes aims to create an ecosystem of components and tools that relieve the burden of running applications in public and private clouds. With Kubernetes, IT teams can deploy applications quickly and predictably, scale applications on the fly, roll out new features seamlessly, and limit hardware usage to required resources only.
Kubernetes bases application containers on OS-level virtualization rather than on hardware virtualization. The containers are isolated from each other and from the host: they have their own file systems, they can’t see other containers’ processes, and their compute resource usage can be limited. Containers are easier to build than virtual machines, and because they are decoupled from the underlying infrastructure and from the host file system, they are portable across clouds and OS distributions. Kubernetes allows Linux applications to be divided into smaller, independent pieces (microservices) which can be deployed and managed dynamically.
Enterprises use Kubernetes to improve DevOps productivity, manage changes to existing containerized applications, and optimize their hardware resources. Kubernetes can deploy apps to private, public or hybrid clouds and scale them non-disruptively. As such, it is a key element of software-defined infrastructures. The SUSE Containers-as-a-Service (CaaS) Platform is built using Kubernetes for the development and hosting of container applications and services. SUSE OpenStack Cloud includes full support for Kubernetes via OpenStack Magnum. Magnum makes it easy to spin up Kubernetes clusters and provides a full multi-tenant environment, allowing different users to have their own Kubernetes clusters.