Kubernetes + Google. 5 lessons learned from 8+ years of containers. Victor Marmol (vmarmol@google.com) Tim Hockin (thockin@google.



Similar documents
Managing Kubernetes and OpenShift with ManageIQ. Alissa Bonas, Dublin 2015

BASICS OF SCALING: LOAD BALANCERS

Open Cloud System. (Integration of Eucalyptus, Hadoop and AppScale into deployment of University Private Cloud)

Java, PHP & Ruby - Cloud Hosting

Open source Google-style large scale data analysis with Hadoop

always available Cloud

TECHNOLOGY WHITE PAPER Jun 2012

Introduction to Cloud Computing

Monitoring and Alerting

Migration and Building of Data Centers in IBM SoftLayer with the RackWare Management Module

What it is and why you might use it

Amazon Web Services Yu Xiao

Drupal in the Cloud. Scaling with Drupal and Amazon Web Services. Northern Virginia Drupal Meetup

Building Success on Acquia Cloud:

Docker : devops, shared registries, HPC and emerging use cases. François Moreews & Olivier Sallou

Migration and Building of Data Centers in IBM SoftLayer with the RackWare Management Module

Kubernetes-Murano Integration in Mirantis OpenStack 7.0

ENTERPRISE MOBILE BACKEND AS A SERVICE EVALUATION CHECKLIST

Best Practices for Python in the Cloud: Lessons

A Comparison of Clouds: Amazon Web Services, Windows Azure, Google Cloud Platform, VMWare and Others (Fall 2012)

bla bla OPEN-XCHANGE Open-Xchange Hardware Needs

The deployment of OHMS TM. in private cloud

Scaling Web Applications in a Cloud Environment. Emil Ong Caucho Technology 8621

How to Create a Multi-user Content Management Platform with Drupal in a vcloud Environment. A VMware Cloud Evaluation Reference Document

An overview of Drupal infrastructure and plans for future growth. prepared by Kieran Lal and Gerhard Killesreiter for the Drupal Association

Content Management System - Drupal. Vikrant Sawant (vikrant.sawant@lc.ca.gov) Legislative Data Center, California

Scalable Architecture on Amazon AWS Cloud

How to Create a Simple Content Management Solution with Joomla! in a vcloud Environment. A VMware Cloud Evaluation Reference Document

1. Comments on reviews a. Need to avoid just summarizing web page asks you for:

The CF Brooklyn Service Broker and Plugin

Traditional v/s CONVRGD

Scaling Pinterest. Yash Nelapati Ascii Artist. Pinterest Engineering. Saturday, August 31, 13

An overview of the Drupal infrastructure and plans for future growth

Implementing Internet Storage Service Using OpenAFS. Sungjin Dongguen Arum

Hadoop Architecture. Part 1

Social Networks and the Richness of Data

Open source large scale distributed data management with Google s MapReduce and Bigtable

Cloud Computing: Meet the Players. Performance Analysis of Cloud Providers

Centrata IT Management Suite 3.0

PipeCloud : Using Causality to Overcome Speed-of-Light Delays in Cloud-Based Disaster Recovery. Razvan Ghitulete Vrije Universiteit

CUMULUX WHICH CLOUD PLATFORM IS RIGHT FOR YOU? COMPARING CLOUD PLATFORMS. Review Business and Technology Series

Deploying complex applications to Google Cloud. Olia Kerzhner

Welcome to the unit of Hadoop Fundamentals on Hadoop architecture. I will begin with a terminology review and then cover the major components

Building a Kubernetes Cluster with Ansible. Patrick Galbraith, ATG Cloud Computing Expo, NYC, May 2016

The Virtualization Practice

Migration and Disaster Recovery Underground in the NEC / Iron Mountain National Data Center with the RackWare Management Module

Storage and Disaster Recovery

G-Cloud V Services Pricing Document Accenture IaaS Services

How to Use a LAMP Stack on vcloud for Optimal PHP Application Performance. A VMware Cloud Evaluation Reference Document

Load Balancer Comparison: a quantitative approach. a call for researchers ;)

SURFsara HPC Cloud Workshop

Web Application Hosting in the AWS Cloud Best Practices

Case Study. SaaS Based Multi-Store Market Place Brainvire Infotech Pvt. Ltd Page 1 of 5

DELL s Oracle Database Advisor

TECHNOLOGY WHITE PAPER Jan 2016

Are You Ready for the Holiday Rush?

Davor Guttierrez 3 Gen d.o.o. Optimizing Linux Servers

How To Balance A Load Balancer On A Server On A Linux (Or Ipa) (Or Ahem) (For Ahem/Netnet) (On A Linux) (Permanent) (Netnet/Netlan) (Un

Characterizing Task Usage Shapes in Google s Compute Clusters

Building a big IaaS cloud with Apache CloudStack

Load Balancing MODX. Garry Nutting, Senior Developer at MODX, LLC

FormAPI, AJAX and Node.js

Landscape Design and Integration. SAP Mobile Platform 3.0 SP02

Selling Virtual Private Servers. A guide to positioning and selling VPS to your customers with Heart Internet

Data Centers and Cloud Computing. Data Centers. MGHPCC Data Center. Inside a Data Center

How to Create an Enterprise Content Management Solution Based on Alfresco in a vcloud Environment. A VMware Cloud Evaluation Reference Document

How to Create a Flexible CRM Solution Based on SugarCRM in a vcloud Environment. A VMware Cloud Evaluation Reference Document

Migrating a running service to AWS

Private Cloud Using Service Catalog

eccharts: Behind the scenes

EXECUTIVE SUMMARY CONTENTS. 1. Summary 2. Objectives 3. Methodology and Approach 4. Results 5. Next Steps 6. Glossary 7. Appendix. 1.

OpenStack Awareness Session

Alfresco Enterprise on AWS: Reference Architecture

CI Pipeline with Docker

Office 365 Migration Performance & Server Requirements

5 Mistakes to Avoid on Your Drupal Website

Large-Scale Web Applications

A Complete Open Cloud Storage, Virt, IaaS, PaaS. Dave Neary Open Source and Standards, Red Hat

Putchong Uthayopas, Kasetsart University

Transcription:

+ Google 5 lessons learned from 8+ years of containers Victor Marmol (vmarmol@google.com) Tim Hockin (thockin@google.com)

κυβερνήτης: Greek for pilot or helmsman of a ship the open source cluster workload manager from Google Manage applications, not machines Inspired by Google s internal systems >10 years experience running containerized apps >2B containers / week Extensible & portable Could run anywhere Apache 2.0 licensed Written in Go

Cluster Master/Scheduler

Lesson 1: Pods A Master/Scheduler B

Lesson 1: Pods Frontend (2 CPUs, 2GB) Logger (1 CPUs, 1GB) Pod (4 CPUs, 4GB) Easy (and thorough) usage accounting and limiting Enables resource sharing

Lesson 2: Labels & Services MR DB FE LR BE labels: type: frontend LR BE BE DB FE MR LR LR - Master/Scheduler

Lesson 2: Labels & Services Web-Service CMS CMS CMS CMS WS WS WS WS id: web-service port: 9000 selector: tier: frontend env: production - Master/Scheduler

Lesson 3: IP per Pod and IP per Service Backend 24.25.27.1 Frontend 24.25.26.1 Users Frontend Service 24.25.26.10 Frontend 24.25.26.2 Frontend 24.25.26.3 Backend Service 24.25.27.10 Backend 24.25.27.2 Backend 24.25.27.3 Makes addressing any entity easy (no need for host, port location tuple) Users should never share a namespace they don't control Port brokering and scheduling is very difficult

Lesson 4: Everything is in a Container Node More Init Srvcs. Pod 1 (1 CPU, 1GB) Pod 2 (1.5 CPUs, 1GB) Pod 3 System Services (1 CPU, 1.5GB) (0.5 CPUs, 0.5GB) (4 CPUs, 4GB) If something is not containerized, nothing is Everything has a limit Detailed accountability of resource usage We use subcontainers extensively for accounting

Lesson 5: Resource Tiers & Priority Node More Init Srvcs. Frontend Frontend Frontend System Services Batch (1 CPU, 1GB) (1.5 CPUs, 1GB) (1 CPU, 1.5GB) (0.5 CPUs, 0.5GB) (1 CPU, 1GB) (4 CPUs, 4GB) Enables selling tiers of resources with varying guarantees Increases utilization Allows handling out of resource conditions (what pod do I kill?) Must handle out of resource conditions well Intent-based at higher layers

Questions? Tim Hockin: thockin@google.com Victor Marmol: vmarmol@google.com github.com/googlecloudplatform/kubernetes Mailing List: google-containers@googlegroups.com IRC: #google-containers on Freenode

Backup

Application stack on single host CMS (drupal php-fpm) webserver (nginx) memcache DB (mysql) logger monitor

Application stack in single container CMS (drupal php-fpm) webserver (nginx) memcache DB (mysql) supervisor Container logger monitor

Application stack in separate containers CMS (drupal php-fpm) webserver (nginx) memcache DB (mysql) logger monitor

Replicated application stack CMS (drupal php-fpm) CMS (drupal php-fpm) webserver (nginx) webserver (nginx) memcache memcache DB (mysql) DB (mysql)

Distributed application stack DB (mysql) CMS (drupal) webserver (nginx) DB (mysql) memcache

CMS (drupal) webserver (nginx) Elastic application stack memcache DB (mysql) CMS (drupal) webserver (nginx) DB (mysql) memcache

Liberated application stack CMS (drupal) webserver (nginx) memcache DB (mysql) memcache DB (mysql)