This article describes the architecture and design of Platform9 Managed Kubernetes.
Benefits of Kubernetes
When building your distributed micro-services based applications using containers in a production environment, you need to ensure a business SLA for uptime and availability of the containers. If the volume of users using your application increases, the application must scale to meet the additional requirement. If a container in your application goes down, it needs to be replaced with another container. Kubernetes provides you with a framework to run these distributed micro-service based applications resiliently. It takes care of scaling of containers, failover, deployment patterns, and more.
Benefits Kubernetes provides out of box:
- Service discovery and load balancing
- Kubernetes can expose a container using the DNS name or using its own IP address. If traffic to a container is high, Kubernetes is able to load balance and distribute the network traffic so that the deployment is stable.
- Automated rollouts and rollbacks
- You can describe the desired state for your deployed containers using Kubernetes, and it can change the actual state to the desired state at a controlled rate.
- Kubernetes restarts containers that fail, replaces containers, kills containers that don’t respond to your user-defined health check, and doesn’t advertise them to clients until they are ready to serve.
- Resource management
- Kubernetes allows you to specify how much CPU and memory (RAM) each container needs. When containers have resource requests specified, Kubernetes can make better decisions to manage the resources for containers.
- Secret and configuration management
- Kubernetes lets you store and manage sensitive information, such as passwords, OAuth tokens, and ssh keys. You can deploy and update secrets and application configuration without rebuilding your container images, and without exposing secrets in your stack configuration.
- Storage orchestration
- Kubernetes allows you to automatically mount a storage system of your choice, such as local storages, public cloud providers, and more.
Platform9 Managed Kubernetes Architecture
Platform9 Managed Kubernetes is designed to help you make use of all the benefits of Kubernetes, while ensuring you can run large scale, production ready, multi-cluster deployments of Kubernetes that meet your business SLA.
Managed Kubernetes employs a unique SaaS - managed deployment model where you Kubernetes control plane along with all the Kubernetes cluster components are deployed in infrastructure of your choice - either on-premises or in a public cloud, while there is a cloud-hosted management plane that maintains connectivity to your Kubernetes clusters via agents that are installed on your Kubernetes cluster nodes. The cloud hosted management plane can then perform a number of operations such as:
- Easy deployment of clusters and preparation of nodes with pre-requisites
- Detection of anomalies and comparison with known database of issues
- Live auto repair of anomalies when possible
- Auto alerting of users on critical issues and auto generation of notifications to Platform9 support