Kubernetes 101
What is Kubernetes?
• Kubernetes is a container management/orchestration system
• It runs and manages containerized applications on a cluster
• What does that really mean?
Kubernetes, basic features
• Start 5 containers using image atseashop/api:v1.3
• Place an internal load balancer in front of these containers
• Start 10 containers using image atseashop/webfront:v1.3
• Place a public load balancer in front of these containers
• It’s Black Friday (or Christmas), traffic spikes, grow our cluster and add containers
• New release! Replace my containers with the new image
atseashop/webfront:v1.4
• Keep processing requests during the upgrade; update my containers one at a time
Kubernetes, advanced features
• Autoscaling
• Blue/green deployment, canary deployment
• Long running services, but also batch (one-off ) jobs
• Overcommit the cluster and evict low-priority jobs
• Run services with stateful data (databases etc.)
• Fine-grained access control defining what can be done by whom on which resources
• Integrating third party services (service catalog)
• Automating complex tasks (operators)
What is a cluster?
A Kubernetes cluster is a set of nodes. A node is either
• Bare iron machine
• Virtual machine
Kubernetes Architecture
Control Plane
Multiple components that can run on a single master node
or be split across multiple (master) nodes and replicated to
ensure high availability:
• API Server: communication center for developers, sysadmin and other
Kubernetes components
• Scheduler: assigns a worker node to each deployable component
• Controller Manager: performs cluster-level functions (replication, keeping track of worker nodes, handling nodes failures…)
• etcd: reliable distributed data store where the cluster configuration is persisted
Worker Node
Machines that run containerized applications. It runs, monitors and provides services to applications via components:
Docker, rkt, or another container runtime : runs the containers
Kubelet: talks to API server and manages containers on its node
Network Proxy: load balance network traffic between application
components
Running a Kubernetes application
Working with a cluster
Working with a cluster
Running a container in a Pod
Behind the scene
Behind the scene
Behind the scene
Exposing the container
Exposing the container
Exposing the container
Scaling the application
Dashboard
0 Comments
Share