Deploying Applications to Container Engine for Kubernetes

ATGWORK
3 min readJun 5, 2020
  • Kubernetes implements in cluster computing background; therefore, each operation is performed inside a Kubernetes cluster.
  • The cluster is hosted by one node, which will be acting as master node of the cluster and other nodes act as nodes/worker nodes. The worker nodes do the actual Containerization.
  • Master node
  • Controls the cluster and the nodes in its cluster
  • It ensures the execution will only happen in nodes.
  • Nodes host the containers; these containers are grouped logically to form pods.
  • Each node can run multiple pods, which are a group of containers that interact with each other for a deployment.
Kubernetes Architecture

Kubernetes master node components:

  • etcd: It stores the configuration information that can be used by each of the nodes in the cluster. It is accessible only by Kubernetes API server as it may have some sensitive information. It is a distributed key value store that is accessible to all.
  • Kube-API Server: Kubernetes is an API server that provides all the operation on cluster using the API. API server implements an interface, which means different tools and libraries can readily communicate with it.
  • Kube-Controller Manager: It works toward getting the shared state of cluster and then making changes to bring the current status of the server to the desired state. The key controllers are replication controller, endpoint controller, namespace controller, and service account controller.
  • Kube-Scheduler: It is a service in master responsible for distributing the workload. It is responsible for tracking utilization of working load on cluster nodes and then placing the workload on which resources are available and accept the workload.

Kubernetes worker node components:

  • Docker: The first requirement of each node is Docker, which helps in running the encapsulated application containers in a relatively isolated but lightweight operating environment.
Components of Kubernetes
  • Kubelet Service: This is a small service in each node responsible for relaying information to and from control plane service. This communicates with the master component to receive commands and work.
  • Kubernetes Proxy Service: This is a proxy service that runs on each node and helps in making services available to the external host. It helps in forwarding the request to correct containers and is capable of performing primitive load balancing.

Kubernetes Operators:

  • Aerospike: It is a NoSQL distributed database. This operator manages aerospike clusters on the top of Kubernetes by automating their creation and administration.
  • Airflow: A Kubernetes operator to manage Apache Airflow
  • Android SDK: A Kubernetes operator to manage Android SDK packages synchronization in a persistent volume
  • Aqua Security: Aqua Security Operator for k8s or openshift-aqua-operator is a group of controllers that runs within a Kubernetes or Openshift cluster that provides a means to deploy and manage Aqua Security cluster.
  • Camel-k: Lightweight integration framework built from Apache Camel that runs natively on Kubernetes
  • Cerebral: Kubernetes cluster autoscaler operator with pluggable metric/event sources and cloud provider support
  • DynamoDB: Amazon DynamoDB is a fully proprietary NoSQL database service that supports key-value and document data structures.
  • Elasticell: Elasticell is a key-value storage with strong consistency and reliability.
  • GateKeeper: Manages dynamic Admission Controllers using Open Policy Agent
  • GitLab: Supports online upgrades
  • Jenkins: Kubernetes native Jenkins operator
  • Konfigurator: Dynamically generates and manages app configuration based on Kubernetes resources

Docker Components: Docker is composed of six different components, namely:

  • Docker Client: Specifies CLI tool to configure and interact with Docker
  • Docker Daemon: This is the Docker server that runs as the daemon.
  • Docker Images: Images are the read-only template/snapshot used to create a Docker container.
  • Docker Registries: Specifies distribution component of Docker or called as Central Repository of Docker images, which stores Docker images
  • Containers: Applications run using containers and containers are the running instance of an image.
  • Docker Engine is a combination of Docker daemon, Rest API, and CLI tool.
Docker Components

--

--

ATGWORK

25 Years Software Development & IT Consulting Services