Do you know what Kubernetes is?
Kubernetes is an open-source platform used to manage containerized application workloads, as well as provide declarative configuration and automation. Kubernetes is in a large and fast-growing ecosystem. Kubernetes services, support, and tools are widely available.
Why Kubernetes and what can it do?
Kubernetes has a number of features that can be described as follows:
- Container Platform
- Microservices Platform
- Cloud platform that is not easy to migrate
Kubernetes provides container-centric environment management. a platform that orchestrates computing, networking, and storage infrastructure. This feature then makes the concept of Platform as a Service (PaaS) simpler, complemented by the flexibility possessed by Infrastructure as a Service (IaaS).
So what is not included in Kubernetes?
Kubernetes is not your usual PaaS (Platform as a Service). Although the platform runs at the container tier and not at the hardware tier, Kubernetes provides some of the features typically provided by Paas, such as deployment, scaling, load balancing, logging, and monitoring.
Kubernetes:
- Do not limit supported applications.
- It does not provide a mechanism to deploy source code or a mechanism to build an application.
- It does not provide application-level services, as a built-in service.
- It does not limit the logging, monitoring, or alerting service providers used.
- Does not provide or require the use of configuration language/system
- Do not provide or adapt a configuration, maintenance, management, or self-healing machine with special specifications.
Why containers?
Broadly speaking, the use of containers has the following advantages:
- More effective application creation mechanism and deployment process: Containers can increase convenience and efficiency when compared to using VMs.
- Continuous development, integration, and deployment: Used to carry out the build and deployment process that is often carried out as well as the ease of the rollback mechanism because the existing image is immutable.
- Separation of interests between Dev and Ops: Creating container images at release time rather than at deployment time reduces application and infrastructure dependencies.
- Observability Not only information and metrics at the OS level, but also the health of applications and other signals.
- Environment consistency during development, testing, and production: Has the same behavior when running on both on-premises machines and cloud service providers.
- Portability between cloud service providers and OS distributions: Can run on Ubuntu, RHEL, CoreOS, on-prem, Google Kubernetes Engine, and anywhere.
- Application-centric management: Increase the level of abstraction from running the OS on virtual hardware to running the application on an OS using logical resources.
- Mikroservis Loosely coupled, distributed, elastic, and liberated: Applications can be broken down into smaller, independent components that can be deployed and managed dynamically — rather than a monolithic system running on a single machine.
- Resource isolation: Predictable application performance.
- Resource utilization: High efficiency