Kubernetes has evolved into the quasi-standard for container orchestration: Nearly every cloud provider offers managed Kubernetes, and even Docker Enterprise utilizes Kubernetes.
We run several production systems with Kubernetes and employ it in concepts such as:
- Utilizing "secrets" and "configmaps" to manage configurations for applications. By updating these resources with an automated configuration pipeline, you have an excellent method for configuration management.
- Implementing autoscaling of Kubernetes nodes and utilizing "horizontal pod scaling" within Kubernetes allows for elastic scaling.
- Leveraging support for managing permissions with OAuth, enabling you to secure Kubernetes with Keycloak (SSO).
- Utilizing Kubernetes' extensibility and API for automation and customization. There is a growing ecosystem around extensions, which adds additional features.
Kubernetes is a container orchestration platform that supports many infrastructure providers. It enables you to deploy containers and manages the running, scaling, or self-healing of your applications based on configurations you provide. It is built on years of knowledge and experience gained by Google through its use of containers.
At AOE, we initially implemented Kubernetes in a test environment on bare metal to experiment with its capabilities. Currently, it is utilized for running internal AOE applications such as dashboards and for running builds in containers. We have also begun using it for upcoming projects to manage several services. There are tools available to automate the setup of Kubernetes in AWS, such as Cops. Another helpful tool is Minikube, which allows for testing and running Kubernetes locally.