80 likes | 126 Views
Visualpath Offered Best Docker and Kubernetes Online Training in Ammerpet. We are providing Docker and Kubernetes Online Training by real time faculty with course material and Lab Facility. Get hands-on experience in Docker and Kubernetes Online course with real-time projects. For More Details Call & Whatu2019sapp @9989971070
E N D
Key Concepts of Kubernetes What is Kubernetes? Kubernetes is an open source orchestration system for Docker containers. It manages containerized applications across multiple hosts and provides basic mechanisms for deployment, maintenance, and scaling of applications. It allows the user to provide declarative primitives for the desired state, for example “need 5 WildFly servers and 1 MySQL server running”. Kubernetes self-healing mechanisms, such as auto-restarting, re-scheduling, and replicating containers then ensure this state is met. The user just define the state and Kubernetes ensures that the state is met at all times on the cluster. How is it related to Docker? Docker provides the lifecycle management of containers. A Docker image defines a build time representation of the runtime containers. There are commands to start, stop, restart, link, and perform other lifecycle methods on these containers. Containers can be manually linked as shown in Tech Tip #66 or orchestrated using Fig as shown in Tech Tip #68. Containers can run on multiple hosts as well as shown in Tech Tip #69. Kubernetes uses Docker to package, instantiate, and run containerized applications.
How does Kubernetes simplify containerized application deployment? A typical application would have a cluster of containers across multiple hosts. For example, your web tier (Apache or Undertow) might run on a set of containers. Similarly, your application tier (WildFly) would run on a different set of containers. The web tier would need to delegate the request to application tier. In some cases, or at least to begin with, you may have your web and application server packaged together in the same set of containers. The database tier would generally run on a separate tier anyway. These containers would need to talk to each other. Using any of the solutions mentioned above would require scripting to start the containers, and monitoring/bouncing if something goes down. Kubernetes does all of that for the user after the application state has been defined. Kubernetes is cloud-agnostic. This allows it run on public, private or hybrid clouds. Any cloud provider such as Google Cloud Engine. OpenShift v3 is going to be based upon Docker and Kubernetes. It can even run on a variety of hypervisors, such as VirtualBox. Key concepts of Kubernetes At a very high level, there are three key concepts: Pods are the smallest deployable units that can be created, scheduled, and managed. Its a logical collection of containers that belong to an application. Master is the central control point that provides a unified view of the cluster. There is a single master node that control multiple minions. Minion is a worker node that run tasks as delegated by the master. Minions can run one or more pods. It provides an application-specific “virtual host” in a containerized environment. ▪ ▪ ▪ A picture is always worth a thousand words and so this is a high-level logical block diagram for Kubernetes:
After the 50,000 feet view, lets fly a little lower at 30,000 feet and take a look at how Kubernetes make all of this happen. There are a few key components at Master and Minion that make this happen. Replication Controller is a resource at Master that ensures that requested number of pods are running on minions at all times. Service is an object on master that provides load balancing across a replicated group of pods. Label is an arbitrary key/value pair in a distributed watchable storage that the Replication Controller uses for service discovery. Kubelet: Each minion runs services to run containers and be managed from the master. In addition to Docker, Kubelet is another key service installed there. It reads container manifests as YAML files that describes a pod. Kubelet ensures that the containers defined in the pods are started and continue running. Master serves RESTful Kubernetes API that validate and configure Pod, Service, and Replication Controller. ▪ ▪ ▪ ▪ ▪ Kubernetes Design Overview provides great summary of all the key components as shown below.
. As a fun fact, “Kubernetes” is actually a Greek word written as κυβερνήτης and means “helmsman of aship”. In that sense, Kubernetes serves that role for your Docker containers. What are Docker multi-stage build? Multi-stage build allows multiple FROM statements in a Dockerfile. The instructions following each FROM statement and until the next one, creates an intermediate image. The final FROM statement is the final base image. Artifacts from intermediate stages can be copied using COPY --from=<image-number>, starting from 0 for the first base image. The artifacts not copied over are discarded. This allows to keep the final image lean and only include the relevant artifacts.
Advantages of Docker multi-stage build One Dockerfile has the entire build process defined. There is no need to have separate Dockerfiles and then coordinate transfer of artifact between “build” Dockerfile and “run” Dockerfile using volume mapping. Base image for the final image can be chosen appropriately to meet the runtime needs. This helps with reduction of the overall size of the runtime image. Additionally, the cruft from build time is discarded during intermediate stage. Standard WildFly base image is used instead of downloading and configuring the distribution manually. This makes it a lot easier to update the image if a newer tag is released. ▪ ▪ ▪ Visualpath Offered Best Docker and Kubernetes Online Training in Ammerpet. We are providing Docker and Kubernetes Online Training by real time faculty with course material and Lab Facility. Get hands-on experience in Docker and Kubernetes Online course with real-time projects. For More Details Call & What’sapp @9989971070