Kubernetes is a distributed cluster technology that manages container-based systems in a declarative manner using an API. Kubernetes's core open-source source code is governed by the Cloud Native Computing Foundation (CNCF) and counts all the largest cloud providers and software vendors as its contributors. There are currently many learning resources to get started with the fundamentals of Kubernetes, but there is less information on how to manage Kubernetes infrastructure on an ongoing basis. This Refcard aims to deliver quickly accessible information for operators using any Kubernetes product.
For an organization to deliver and manage Kubernetes clusters to every line of business and developer groups, ops needs to architect and manage both the core Kubernetes container orchestration and the necessary auxiliary solutions — e.g. monitoring, logging, and the CI/CD pipeline.
Gartner predicts that by 2020, more than 50% of global organizations will be running containerized applications in production, up from less than 20% today. This research provides an overview and actionable advice for organizations implementing modern containerized apps, data services, and machine learning.
According to 451 Research, the application container market size was $762 million last year and will grow by over 3.5x to $2.7 billion by 2020. Organizations can prepare for the rapid growth in containerized applications, real-time data, and machine learning by taking steps to properly architect the network. Kubernetes differs from the orchestration offered by configuration management solutions in that it provides a declarative API that collects, stores, and processes events in an eventually consistent manner.
A few traits of Kubernetes include:
Abstraction: Kubernetes abstracts the application orchestration from the infrastructure resource and as-a-service automation. This allows organizations to focus on the APIs of Kubernetes to manage an application at scale in a highly available manner instead of the underlying infrastructure resources.
Declarative: Kubernetes's control plane decides how the hosted application is deployed and scaled on the underlying fabric. A user simply defines the logical configuration of the Kubernetes object, and the control plane takes care of the implementation.
Immutable: Different versions of services running on Kubernetes are completely new and not swapped out. Objects in Kubernetes, say different versions of a pod, are changed by creating new objects.
This is page 1 of the Advanced Kubernetes Refcard. To read the full Refcard, you can download the full PDF above.