Successfully added
...see more
"Production-Grade Container Orchestration"
Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications.
- A software system that allows you to deploy and manage containerized applications on top of it easily
- Exposes the underlying infrastructure as a single computational resource
- Consistent deployment experience regardless of the size of the cluster
- Enables developers to deploy their applications themselves and as often as they want
- Enables the ops team by automatically monitoring and rescheduling those apps in the event of a hardware failure
- The focus from supervising individual apps to mostly supervising and managing Kubernetes and the rest of the infrastructure
- Abstracts away the hardware infrastructure and exposes your whole data center as a single gigantic computational resource
...see more
- Kubernetes encourage Desired State deployment
- You assert you want one or more resources to be in a certain state and with specific versions
- Controllers are where the brains exist for tracking those resources and attempting to run your software as you described
...see more
- kubectl or kube ctl
- is a command-line interface for running commands against Kubernetes cluster
- kubectl <operation> <object> <resource name> <optional flags>
- kubectl get nodes
- kubectl help
...see more
- The smallest unit that Kubernetes manages
- A Pod is made up of one or more containers and information associated with those containers
- Querying a pod returns a data structure that contains information about containers and it's metadata
- Characteristics of a Pod
- All the containers for a Pod will be run on the same node
- Any container running within a Pod will share the Node's network with any other container in the same Pod
- Containers within a Pod can share files through volumes, attached to the containers
- A Pod has an explicit life cycle, and will always remain on the Node in which it was started
...see more
- Pods are collected into namespaces, which are used to group Pods
- Namespaces can e used to provide quotas and limits around resource usage and have an impact on DNS names that Kubernetes creates internal to the cluster
- If no namespace is specified when interacting with Kubernetes through kubectl, the command assumes you are working with the default namespace, named default
...see more
- A node is a machine that is added to the Kubernetes Cluster
- The master node is the brain of Kubernetes while the worker nodes do the actual work of pulling container images and running pods
Master node
Holds the control plane that controls and manages the whole Kubernetes system.
Components:
- Controller manager: performs cluster-level functions, such as replicating components, keeping track of worker nodes, handling node failures, etc.
- API Server: users and other control plane components communicate with
- etcd, is a reliable distributed data store to store the cluster configuration persistently
- Scheduler, which schedules the application, basically assigning a worker node to each deployable component of the application
Worker nodes
Run the actual applications.
Components:
- Container runtime, which can be Docker or rkt (Rocket)
- Kubelet, talks to the AI server and manages containers on its node
- Kubernetes service proxy, load balances network traffic between the application components.
...see more
- All the containers in a Pod share the Node's network
- All nodes in a Kubernetes cluster are expected to be connected to each other and share a private cluster-wide network
- Kubernetes runs containers within a Pod within this isolated network
...see more
- A ReplicaSet is associate with a Pod and indicates how many instances of that Pod should be running within the cluster
- A ReplicaSet also implies a controller that watches the ongoing state and knows how many of your Pod to keep running
- A ReplicaSet is commonly wrapped in turn by a deployment
...see more
- Kubernetes resource used to provide an abstraction through to your Pods agnostic of the specific instance that are running
- Can contain a Policy
- Emulates a software load balancer within Kubernetes
...see more
- The recommended way to run code on Kubernetes
- The deployment controller wraps around and extends the ReplicaSet controller
- Includes metadata settings to know how many Pods to keep running
Referenced in:
Comments