Introduction to container mangement

Preview:

Citation preview

ADVISORYPRESENTATION

OPINIONATED CONTENT

Introduction to Container Managemen

tOverview

Got Infrastructure?

Delivery & Deployment

KubernetesArchitecture & Concepts

Scratching the Surface

Practical Application

Philosophic excursion

Stay with me!

Is Infrastructure a Commodity?

The word commodity came into use in English in the 15th century,

from the French commodité, "amenity, convenience". Going further

back, the French word derives from the Latin commoditas, meaning

"suitability, convenience, advantage". The Latin word commodus

(from which English gets other words including commodious and

accommodate) meant variously "appropriate", "proper measure,

time, or condition", and "advantage, benefit".Commodity — Wikipedia, The Free Encyclopedia

Properties of Commodities

● Immediate Availability

● Highly Competitive Market

● Can change vendor without

telling difference

● Unreliable Availability (Not

plannable)

● No Competitive Market (No

choice)

● Notable differences for the same

product between vendors● No or Low Process Visibility

● No- or Low-Friction

● No- or Low-Overhead

● No or Low-Overlap

Infrastructure can be defined as "the physical components of interrelated systems providing commodities

and services essential to enable, sustain, or enhance societal living conditions." the word infrastructure

has been used in English since at least 1887 and in French since at least 1875, originally meaning "The

installations that form the basis for any operation or system".

Is Infrastructure a Commodity?

Infrastructure — Wikipedia, The Free Encyclopedia

Introduction to

Container Manageme

ntDelivery & Deployment

Delivery & Deployment

Delivery

Deployment

Classic Deployment

Containers

Components of a Single Application

Application

Server

Operating System

What’s this?

Libraryv2

(required to run App)

Where do I put this?

And who’s responsible that it works all together?

Library

v1

Library

v3

Libraryv1

Libraryv4

Library

v2

Same Colors

don’t go together

Scaling Up / Scaling OutApplication

Operating System

Hardware

Administrator

Operating System

Application

Hardware

Virtualization

Application

Operating System

Virtual Machine

Virtualization Infrastructure

Application

Operating System

Virtual Machine

Application

Operating System

Virtual Machine

Administrator

Infrastructure

Containers

Application

Container

Virtual Machine

Virtualization Infrastructure

Application

Virtual Machine

Application

Virtual Machine

Operating System

Container

Operating System

Container

Operating SystemAdministrator

Infrastructure

Application

Container OrchestrationApplication

Container

Virtual Machine

Virtualization Infrastructure

Virtual MachineVirtual Machine

Operating System

Orchestration

Application ApplicationApplication

Container

Operating System

Container

Operating System

Administrator

Infrastructure

Application

Container Orchestration

Virtualization Infrastructure

Virtual Machine Virtual MachineVirtual Machine

Application Application

Container Container Container

Operating System Operating System Operating System

Orc

hest

ratio

n Service / Endpoint Management

Scheduling

Resource Management

Administrator

Infrastructure

ApplicationApplicationApplication

Kubernetes Overview

Architecture & Concepts

Orchestration Tools

Why Kubernetes● Largest User Base

● Most Commercial Offerings

● On-Premise & Cloud offers same interface

● Component of the Cloud Native Computing Foundation

○ Members

Kubernetes Components● etcd

Persistence for Cluster State

Usually not part of the Cluster

● kubectlor any API client

● kube-apiserver

● kube-controller-manager

● kube-scheduler

● kubelet

Architecture Overviewetcd

Cluster State kubectlMaster

kube-scheduler

controller-manager

API endpoints

kube-proxy

Nodekubelet

kube-proxy

Nodekubelet

kube-proxy

Nodekubelet

kube-proxy

Architecture Overview etcdetcd

Cluster State ● Storage Backend for Cluster State

● Usually a 3 - 5 node cluster

● Distributed Consistent Storage

● Monitoring via Prometheus

Architecture Overview MasterMaster

kube-scheduler

controller-manager

API endpoints

kube-proxy ● Provides all functionality to create

cluster resources

● Central component that mediates

between desired state and actual

state

● Can (and should) be highly available

Nodekubelet

kube-proxy

Architecture Overview Node● Work-horse of the cluster

● As many as required by capacity needs

kubelet

● Manages pods and their containers, their images, their volumes, etc

kube-proxy

● Makes services available to the inside and outside world

Orc

hest

ratio

n Service / Endpoint Management

Scheduling

Resource Management

Cluster Administration Tasks● Urgent need to learn

● Provide Persistence Layer

● Provide Docker Registry

● Create (common) Containers

● In-Depth Knowledge of Resource Types

● Excellent Knowledge of all Levels ofSystem Administration

● Monitor/Handle Error Conditions

● Capacity Planning

● Provide Best Practices

● Good Knowledge of Ecosystem(https://github.com/kubernetes-incubator)

● https://kubernetes.io/docs/admin/

Cluster Usage

● Package Application

○ Create Containers

● Request Persistence

● Describe Dependencies

● Deploy

Orchestration

Application Application

App AppApp

Cluster Usage Best PracticesConfiguration files must be stored in version control before

being pushed to the cluster

When defining configurations, specify the latest stable API version (currently v1).

Write your configuration files using YAML rather than JSON

Group related objects together in a single file where this makes sense

Don’t specify default values unnecessarily

Put an object description in an annotation to allow better introspection

Kubernetes Concepts

Scratching the Surface

Resources Provided● Workloads — Container, CronJob,

DaemonSet, Deployment, Job, Pod, ReplicaSet, ReplicationController, StatefulSet (PetSet)

● Discovery & Load Balancing — Endpoints, Ingress, Service

● Config & Storage — ConfigMap, Secret, PersistentVolumeClaim, StorageClass, Volume

Metadata — Event, LimitRange, HorizontalPodAutoScaler, PodTemplate, PodDisruptionBudget, ThirdPartyResource

Cluster — Binding, CertificateSigningRequest, ClusterRole, ClusterRoleBinding, ComponentStatus, LocalSubjectAccessReview, Namespace, Node, PersistentVolume, ResourceQuota, Role, RoleBinding, SelfSubjectAccessReview, ServiceAccount, SubjectAccessReview, TokenReview, NetworkPolicy

apiVersion: v1kind: Podmetadata: name: command-demospec: containers: - name: command-demo-container image: debian command: ["printenv"] args: ["HOSTNAME"]

Resource Type PodPod

apiVersion: extensions/v1beta1kind: ReplicaSetmetadata: name: my-first-rsspec: replicas: 1 template: metadata: name: command-demo-rs spec: containers: - name: command-demo-container image: debian command: ["printenv"] args: ["HOSTNAME"]

Resource Type ReplicaSetReplica Set

Pod

apiVersion: extensions/v1beta1kind: Deploymentmetadata: name: nginx-deploymentspec: replicas: 3 template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.7.9 ports: - containerPort: 80

Resource Type DeploymentDeployment

Replica Set

Pod

Kubernetes Overview

Practical Application

Administrator Infrastructure