Kubernetes (k8s) Container Cluster Management Platform
A Kubernetes (k8s) Container Cluster Management Platform is an open source container orchestration management framework (of container clusters).
- Context:
- Website: https://kubernetes.io
- It can allow one to deploy and manage multi-container applications at scale.
- It can (typically) be used to create Kubernetes Clusters.
- It can (typically) manage Kubernetes Volumes (that build upon Docker volumes).
- It can be useful to deploy a Stateless Web App.
- It can make use of a Kubernetes API (where all validation happens for objects).
- It can make use of a Kubernetes Worker Node.
- It can make use of a Kubernetes Pod, the smallest deployable unit (a group of tightly coupled Docker containers and Kubernetes volumes).
- It can make use of a Kubernetes Resource Scheduler (which tries to bin pack its resources).
- It can make use of a Kubernetes Replication Controller (a loop that drives a current state towards a desired state).
- It can make use of a Kubernetes Service (a set of running pods that work together).
- It can make use of a Kubernetes Label (identifying metadata attached to other objects).
- It can facilitate Application Deployment.
- It can facilitate Application Scaling (see: Horizontal Pod Autoscaler (HPA)).
- It can support Node Scaling [1].
- It can support Pod Scaling [2].
- It can support Scaling based on custom metrics [3], [4].
- It can facilitate Application Monitoring.
- Example(s):
- Kubernetes v1.20.2 (~2021-01-13)[5]
- Kubernetes v1.13.0 (~2018-12-03)[6]
- Kubernetes v1.9.4 (~2018-03-11)[7]
- Kubernetes v1.6.8 (~2017-08-02)[8]
- https://github.com/kubernetes/kubernetes/releases
- …
- Counter-Example(s):
- See: Docker Cluster, Container (Virtualization), Service Discovery System, Kubernetes External Load Balancer, AWS EKS, Argo Workflow Platform.
References
2019
- (Lardinois, 2019) ⇒ Frederic Lardinois (2019). "Microsoft launches new open-source projects around Kubernetes and microservices". In: TechCrunch.
- QUOTE: ... “If you take a look just at the Kubernetes ecosystem, Kubernetes has no concept of an application,” he explained. “It’s got the concept of a deployment and services, but nothing that coherently connects these things together into one unit and deployment lifecycle that a developer would understand in the way they look at their applications.” He argues that while Kubernetes has Helm charts, once an application is deployed, Kubernetes doesn’t know about the relationships between the objects that were represented in that chart. “We need a first-class application concept in a Kubernetes cluster.”
OAM is essentially a YAML file. It can be put in a service catalog or marketplace and deployed from there. But what’s maybe most important, says Russinovich, is that the developer can hand off the specification to the ops team and the ops team can then deploy it without having to talk to the developer. He also argues that Kubernetes itself is too complicated for enterprise developers. “At this point, it’s really infrastructure-focused,” he said. “You want a developer to focus on the app. What we saw when we talked to Kubernetes shops, they don’t let developers near Kubernetes.” …
- QUOTE: ... “If you take a look just at the Kubernetes ecosystem, Kubernetes has no concept of an application,” he explained. “It’s got the concept of a deployment and services, but nothing that coherently connects these things together into one unit and deployment lifecycle that a developer would understand in the way they look at their applications.” He argues that while Kubernetes has Helm charts, once an application is deployed, Kubernetes doesn’t know about the relationships between the objects that were represented in that chart. “We need a first-class application concept in a Kubernetes cluster.”
2018
- (Meyer, 2018) ⇒ Dan Meyer (2018). "BlueData Throws Kubernetes at Stateful Storage Challenges". In: sdx.
- QUOTE: Kubernetes is designed for stateless applications. This means that it was not created to handle data storage. This is not a problem for cloud native web services like a web server or a front-end web user interface that do not depend on the local container storage for the workload.
However, stateful applications are services that save data to storage and use that data to run the application. These include databases and complex applications like big data and AI use cases that involve large-scale data processing, data science, and machine learning (ML). Basically these are workloads that currently use platforms like Spark, Kafka, Hadoop, Cassandra, and TensorFlow. …
- QUOTE: Kubernetes is designed for stateless applications. This means that it was not created to handle data storage. This is not a problem for cloud native web services like a web server or a front-end web user interface that do not depend on the local container storage for the workload.
2017
- (Wikipedia, 2017) ⇒ https://en.wikipedia.org/wiki/Kubernetes Retrieved:2017-2-10.
- Kubernetes (commonly referred to as “k8s") is an open source container cluster manager originally designed by Google and donated to the Cloud Native Computing Foundation. It aims to provide a "platform for automating deployment, scaling, and operations of application containers across clusters of hosts". It usually works with the Docker container tool and coordinates between a wide cluster of hosts running Docker.
2017
- (Prickett, 2017) ⇒ Nicole Hemsoth Prickett (2017) "No Slowdown in Sight for Kubernetes". In: The Next Platform.
- QUOTE: … Kubernetes has quickly become a key technology in the emerging containerized application environment since it was first announced by Google engineers just more than three years ago, catching hold as the primary container orchestration tool used by hyperscalers, HPC organizations and enterprises and overshadowing similar tools like Docker Swarm, Mesos and OpenStack. Born from earlier internal Google projects Borg and Omega, the open-source Kubernetes …
2016a
- (Kubernetes.io, 2016) ⇒ https://kubernetes.io/docs/user-guide/#user-guide-internal
- QUOTE: … volume is a directory, possibly with some data in it, which is accessible to a Container as part of its filesystem. Kubernetes volumes build upon Docker Volumes, adding provisioning of the volume directory and/or device. …
2016b
- (Kubernetes Blog, 2016) ⇒ http://blog.kubernetes.io/2016/03/scaling-neural-network-image-classification-using-Kubernetes-with-TensorFlow-Serving.html
- QUOTE: … Kubernetes distributes inference request processing across a cluster using its External Load Balancer. Each pod in the cluster contains a TensorFlow Serving Docker image with the TensorFlow Serving-based gRPC server and a trained Inception-v3 model. The model is represented as a set of files describing the shape of the TensorFlow graph, model weights, assets, and so on. Since everything is neatly packaged together, we can dynamically scale the number of replicated pods using the Kubernetes Replication Controller to keep up with the service demands. …
2015
- (Google Cloud Platform Blog, 2015) ⇒ https://cloudplatform.googleblog.com/2015/01/what-makes-a-container-cluster.html
- QUOTE: … we consider Kubernetes a "container cluster manager." Lots of folks call projects in this area "orchestration systems," but … Managing a Kubernetes cluster is more like an improve jazz performance. It is a dynamic system that reacts to conditions and inputs in real time. So, what makes a container cluster? Is it a dynamic system that places and oversees sets of containers and the connections between them? Sure, that and a bunch of compute nodes (either raw physical servers or virtual machines).