is the practice of operations and development engineers participating together in the entire service lifecycle, from design through the development process to production support. Infrastructure and environments need to be repeatedly provisioned, orchestrated, and configured, but every environment is different.
as a single system Orchestrate Docker containers by scheduling on to cluster nodes Ensure state and group into units for management and discovery Manage applications, not machines kubernetes.io
Kubernetes Master and Nodes Starting point for Kubernetes deployments Colocated containers with shared volumes Destination for tightly coupled components Smallest deployable unit Manage Pod lifecycle Replication ensures N Pods are always running Useful for web frontends or multiple workers Single, stable name, and address for Pods Provide proxy load- balanced connectivity to ephemeral Pods Organize and select groups of objects based on key-value pairs
• Smallest unit of scheduling/placement in Kubernetes • Shared namespace • Share IP address and localhost • Share IPC • Ephemeral • Pods can die, they don’t come back • Need more? Replicate! Services • A group of Pods that work together • Defines Pod access policy • Provides a stable virtual IP and port • And a DNS name too • Virtual IP handled by Proxy • Watches and updates based on Pod lifecycle • Hides the networking complexity
Azure, Rackspace, on-premise 2. Choose the node OS: CoreOS, Atomic, RHEL, Debian, CentOS, Ubuntu 3. Provision machines: Boot VMs, install and run kube components 4. Configure networking: IP ranges for Pods, Services, SDN 5. Start cluster services: DNS, logging, monitoring 6. Manage nodes: kernel upgrades, OS updates, hardware failures Not the most fun but unavoidable to get a cluster up and running.
on a bundle of Google Compute Engine resources: Instances, Disks, Networking, Load Balancer Built-in support for centralized logging and container health checking Private container registry to store and access your images at gcr.io
• Services • Volumes • Secrets • A distinct set of problems from cluster setup and management • Accelerate development by focusing on the applications, not the cluster • Ops ensures processes for development, test, staging, production
Create Docker image build and test pipelines Leverage tools like Packer to create “golden images” The same containers can be used in development, test, staging, production The same deployment tools can be used regardless of infrastructure How Does Kubernetes Impact DevOps?