Test Flashcards
What are containers
Containers are just a way of isolating running processes or code
Containers provide a way to ?
- Package applications and dependencies
- guarantee portability and consistency
- Keep an application isolated
- Take advantage of the isolation offer by a VM without
Types of containers
- Bare metal or single host
- Organization used to deploy multiple applications onto the same server using package managers
- Bare metal/single host deployment downside
- Quickly gets messy
- Relies on OPS team to validate changes “Don’t touch this server”
- Can create conflicts between application dependencies
- Hard to isolate issues
- Hard to scale or migrate applications
- Inter-app communication hard to debug
- Virtual Machines
- Used virtualisation to isolate each application in its own VM, improving order and repeatability
- VM being full operating systems, each image still takes up considerable resources and takes awhile to boot and start services, and still didn’t provide on-demand scaling or immediate healing
- Containers
- Application image is now only as big as our application and its dependencies. Easier to store, share, and deploy
What is a docker?
- Docker is a opensource platform tool designed to manage the containers, which allow us to build the application in a container with required libraries, binaries, dependencies to run the application, ship the container and run anywhere
Why do we use docker?
- Portability
- Light Weight
- Fast Delivery and Scalable
- Continuous Deployment and Testing
- Ability to run multiple isolated OS on single host
- Resource Optimisation
Docker Architecture three main components
- Docker Client
- Docker Host (Docker Engine)
- Docker Registry
What is a docker client?
Docker client is used to manage the docker components such as containers, images, networks, storage volumes by giving the specific instructions to perform some operations like build, pull, create, run, delete, stop, restart,.
What is a docker host
Docker Host is the server where the Docker Daemon is running and it manages the docker containers and other resource. It listens and accepts the requests from Docker Client
What is a docker registry?
Docker registry or Docker Hub is a repository to manage the Docker Images. So this will allow us to push or pull the Docker Images which means you can download or upload the images
What is docker images?
Docker images are a just templates, it is very similar to snapshot image
What is a docker container?
Docker Containers are actually a executable run-time light weight operating system
What is a docker network?
- Bridge
- Host
- None
What is a docker storage?
Any data written to the docker container will not be available when docker container is removed. So we must use a docker storage to have the data permanently if need
Types of docker storage?
- Volumes
- Bind Mounts
- Tmpfs mounts
What is a container orchestration ?
Container orchestration automates the deployment, management, scaling and networking of containers
How can container orchestration can be used?
Container orchestration can be used in any environment where you use containers. It can help you to deploy the same application across different environments without needing to redesign it.
What is container orchestration used for?
- Provisioning and deployment
- Configuration and scheduling
- Resource allocation
- Container availability
- Scaling or removing containers based on balancing workload across you infrastructure
- Load Balancing and traffic routing
- Monitoring container health
- Configuring applications based on the container in which they will run
- Keeping interactions between containers secure
What is a container orchestration tool?
Container orchestration tools provide a framework for managing container and micro-services architecture at scale
What is kubernetes?
Kubernates is an open source container orchestration tools
What are the main components of kubernetes?
Cluster: A control plane and one or more compute machines, or nodes
Control Plane: The collection of processes that control Kubernetes nodes. This is where all task assignments originates
Kublet: This service run on nodes and reads the container manifest and ensures the defined containers are started and running
Pod: A group of one or more containers deployed to a single node. All containers in a pod share and IP Address, IPC, Hostname, and other resources
Benefits of using container?
- Velocity
- Immutability
- Declarative Configuration
- Self Healing Systems
- Scaling Services
- Decoupling
- Scaling Applications and Clusters
- Building decoupled micro service architectures
- Separation of concerns
- Abstraction or infrastructure
- Efficiency
Define what is kubernetes?
Kubernetes is an orchestration engine and open-source platform for managing containerised application workloads and services that facilitates both declarative configurations and automation
Advantages of kubernetes
- Kubernetes can speed up the development process by making easy automated deployment updates and by managing our apps and services with zero downtime
- It also provides self healing. Kubernetes can detect and restart service when process crashes inside the container
- It can be used to scale containerised applications and their resources on the fly
What is in a kubernetes dashboard
Web UI
- Dashboard is a web-based Kubernetes user interface
Kubectl
Kubectl is a command line configuration tool (CLI) for Kubernetes used to interact with master node of Kubernetes
Worker Nodes
Worker Node ar the nodes where the application actually running in kubernetes clusters its also known as minions
Kubelet
Kubelet is the primary node agent runs on each nodes and reads the container manifest which ensures that containers are running and healthy
Deployment for kubernetes
Pods
- A group of one or more containers deployed to a single node
Deployment
- A deployment is a blueprint for the Pods to be created
Service
- A service is responsible for making our Pods discoverable inside the network or exposing them to the internet
What is the Overview of configuration management
Configuration management tools help range infrastructure at scale
- Updating packages on thousands of virtual machines
- Changing configuration files on hundreds of servers
- Orchestrating a workflow such as the deployment of a new application to production across different data centers
- Running multiple CLI commands on dozen of servers to retrieve operational data