Published on

Docker, Container and Kubernetes

Authors
  • Name
    Jackson Chen

Docker hosting platform for containers

https://geekflare.com/docker-hosting-platforms/

Docker is a popular containerization tool in DevOps. It runs your application inside a container, uses minimum resources, can be deployed faster, and it can scale quickly.

Popular docker hosting platform

1. appfleet
2. Jelastic
3. A2 Hosting
4. StackPath
5. Google Cloud Run
6. Sloppy.io
7. Amazon Elastic Container Service (Amazon ECS)
8. Microsoft Azure
9. Kamatera
10. HostPresto
11. Vultr

Containers

https://docs.vmware.com/en/VMware-vSphere-Integrated-Containers/index.html

VMware vSphere Integrated Containers

Containers are ideal technology for supporting microservices. Applications that run on cloud-based environments are designed with failure in mind. They are built to be resilient, to tolerate network or database outages, and to degrade gracefully.

#Terms and concepts
Container           An application packaged with dependencie
Container engine    A runtime engine that manages the containers
Docker              The most recognized runtime engine for container support
Container host      A virtual machine or physical machine on which the containers and container engine run
Kubernetes          Google-developed orchestration for container

Introduction to Container

https://developers.redhat.com/blog/2018/02/22/container-terminology-practical-introduction#

Red Hat OpenShift Container Plaform

https://docs.openshift.com/container-platform/4.8/welcome/index.html

VM and Containers

https://www.vmware.com/topics/glossary/content/vms-vs-containers

# Containers have the following characteristics:
1. A container can run on any container host with the same operating system kernel that is specified by that container.
2. A running container is accessed using its FQDN or its unique IP address.
3. Each container can access only its own resources in the shared environment.

Virtual Machines                                Containers
-------------------------------------------------------------------------------------------------
Encapsulation of an entire operating system     Encapsulation of an application and dependent binaries or libraries
Scheduled by the hypervisor                     Scheduled by the container host OS
Run on the hypervisor                           Run on the container host OS
Starting VM operating system                    Starting a container starts the application process

Container Engines

A container engine is a control plane that is installed on each container host. The control plane manages the containers on that host.

Container engines perform several functions
1. Build container images from source code (for example, Dockerfile), Alternatively, load container images from a repository.
2. Create running containers based on a container image.
3. Commit a running container to an image.
4. Save an image and push it to a repository.
5. Stop and remove containers.
6. Suspend and restart containers.
7. Report container status.

Note: Docker is the most commonly used container engine

When a user requests that a container is run, the container engine gets the container image from an image registry, or locally and runs the container as a process.

Kubernetes

https://kubernetes.io/

Kubernetes, also known as K8s, is an open-source system for automating deployment, scaling, and management of containerized applications. It is container orchestration.

It groups containers that make up an application into logical units for easy management and discovery. Kubernetes builds upon 15 years of experience of running production workloads at Google, combined with best-of-breed ideas and practices from the community.

# Kubernetes performs the following functions:
1. Groups containers that make up an application into logical units for easy management and discovery
2. Automatically places containers based on their resource requirements
3. Restarts failed containers, replaces and reschedules containers when hosts fail, and stops containers that do not respond to user-defined health check
4. Progressively rolls out changes to the application, ensuring that it does not stop all the instances at the same time and enabling zero downtime
5. Allocates IP addresses, mounts the storage system, load balances

Kubernetes manages containers across multiple container hosts, similar to how vCenter Server manages all ESXi hosts in a cluster. Running Docker without Kubernetes is like running ESXi hosts without vCenter Server to manage them.

VMware and Containers Support

# With the VMware software-defined data center (SDDC)
1. The resources and availability zones map to vSphere clusters
2. security policy and load-balancing map to NSX
3. persistent volumes map to vSphere datastores
4. metrics map to Wavefront
vSphere Integrated Containters