Deploying applications to Heterogeneous Hardware using Rancher and Docker

Similar documents
Deploying WordPress and MySQL

Using MySQL Containers

SUSE Linux Enterprise 15. #MultimodalOS

Think Small to Scale Big

EASILY DEPLOY AND SCALE KUBERNETES WITH RANCHER

Brainstorm K Containerization with Docker. Crown Palm 2:30-3:30. Adam W Zheng Nebraska Educational Service Unit 10

@joerg_schad Nightmares of a Container Orchestration System

Building Kubernetes cloud: real world deployment examples, challenges and approaches. Alena Prokharchyk, Rancher Labs

VMware s (Open Source) Way of Container. Dr. Udo Seidel

Distributed Computing Framework Based on Software Containers for Heterogeneous Embedded Devices

INFRASTRUCTURE AS CODE

Run containerized applications from pre-existing images stored in a centralized registry

Docker and Oracle Everything You Wanted To Know

Cloud & container monitoring , Lars Michelsen Check_MK Conference #4

/ Cloud Computing. Recitation 5 February 14th, 2017

Welcome to SUSE Expert Days 2017 Service Delivery with DevOps

ViryaOS RFC: Secure Containers for Embedded and IoT. A proposal for a new Xen Project sub-project

Supporting Docker in Emulab-Based Network Testbeds. David Johnson, Elijah Grubb, Eric Eide University of Utah

Docker Live Hacking: From Raspberry Pi to Kubernetes

Kuber-what?! Learn about Kubernetes

CS-580K/480K Advanced Topics in Cloud Computing. Container III

Kubernetes made easy with Docker EE. Patrick van der Bleek Sr. Solutions Engineer NEMEA

Mesosphere and Percona Server for MongoDB. Jeff Sandstrom, Product Manager (Percona) Ravi Yadav, Tech. Partnerships Lead (Mesosphere)

Mesosphere and Percona Server for MongoDB. Peter Schwaller, Senior Director Server Eng. (Percona) Taco Scargo, Senior Solution Engineer (Mesosphere)

There's More to Docker than the Container The Docker Platform

A Hands on Introduction to Docker

CONTAINER CLOUD SERVICE. Managing Containers Easily on Oracle Public Cloud

Arup Nanda VP, Data Services Priceline.com

Getting Started With Amazon EC2 Container Service

Buenos Aires 31 de Octubre de 2018

Multi-Arch Layered Image Build System

Docker 101 Workshop. Eric Smalling - Solution Architect, Docker

Containers, Serverless and Functions in a nutshell. Eugene Fedorenko

DevOps Workflow. From 0 to kube in 60 min. Christian Kniep, v Technical Account Manager, Docker Inc.

Course Outline. Module 1: Microsoft Azure for AWS Experts Course Overview

Docker and Security. September 28, 2017 VASCAN Michael Irwin

Best Practices for Developing & Deploying Java Applications with Docker

Important DevOps Technologies (3+2+3days) for Deployment

Virtualization Introduction

Getting Started With Containers

/ Cloud Computing. Recitation 5 September 26 th, 2017

Lessons Learned: Deploying Microservices Software Product in Customer Environments Mark Galpin, Solution Architect, JFrog, Inc.

~Deep dive into Windows Containers and Docker~

ovirt and Docker Integration

Going Journey to Docker Production. Add picture here. Bret Fisher. DevOps Consultant Docker Captain Author of Udemy's Docker Mastery

What s Up Docker. Presented by Robert Sordillo Avada Software

Kubernetes: Integration vs Native Solution

CONTINUOUS DELIVERY WITH DC/OS AND JENKINS

Travis Cardwell Technical Meeting

Define Your Future with SUSE

Deployment Patterns using Docker and Chef

SQL Server inside a docker container. Christophe LAPORTE SQL Server MVP/MCM SQL Saturday 735 Helsinki 2018

WHITE PAPER. RedHat OpenShift Container Platform. Benefits: Abstract. 1.1 Introduction

IBM Bluemix compute capabilities IBM Corporation

From Bare Metal to Cloud. Andy ICCLab, ZHAW Piotr Kasprzak, GWDG

Docker for Development: Getting Started

FocusStack: Orchestrating Edge Clouds Using Location-Based Focus of Attention

FogIoT Orchestrator: an Orchestration System for IoT Applications in Fog Environment

Simplified CICD with Jenkins and Git on the ZeroStack Platform

SUSE Linux Entreprise Server for ARM

Introduction to Containers

Container Orchestration on Amazon Web Services. Arun

Containerizing GPU Applications with Docker for Scaling to the Cloud

Container Pods with Docker Compose in Apache Mesos

Fixing the "It works on my machine!" Problem with Docker

Docker II - Judgement Day

DevOps Technologies. for Deployment

Volumes as a Micro-Service Distributed Block Storage Enabled by Docker Sheng Yang Rancher Labs

40390: Microsoft Azure for AWS Experts

diskimage-builder: Building Linux Images for Cloud / Virtualization / Container

UP! TO DOCKER PAAS. Ming

Beyond 1001 Dedicated Data Service Instances

Microsoft Cloud Workshop. Containers and DevOps Hackathon Learner Guide

Installation runbook for

Kontejneri u Azureu uz pomoć Kubernetesa što i kako? Tomislav Tipurić Partner Technology Strategist Microsoft

[MS20533]: Implementing Microsoft Azure Infrastructure Solutions

From Bare Metal to Cloud

DevOps and Continuous Delivery USE CASE

Docker Enterprise Edition on Cisco UCS C220 M5 Servers for Container Management

Building A Better Test Platform:

Virtual Infrastructure: VMs and Containers

Disclaimer This presentation may contain product features that are currently under development. This overview of new technology represents no commitme

DEVOPS COURSE CONTENT

DevOps Course Content

Harbor Registry. VMware VMware Inc. All rights reserved.

DCCN Docker Swarm Cluster Documentation

Securing Microservice Interactions in Openstack and Kubernetes

Migrating Applications with CloudCenter

Microsoft Azure for AWS Experts

Launching StarlingX. The Journey to Drive Compute to the Edge Pilot Project Supported by the OpenStack

Replacing Docker With Podman. By Dan

[MS10992]: Integrating On-Premises Core Infrastructure with Microsoft Azure

Introduction to containers

Improve the container image compatibility on Arm

AGILE DEVELOPMENT AND PAAS USING THE MESOSPHERE DCOS

Follow me!

GETTING STARTED WITH OPENSTACK. Kenneth Hui, Rackspace Dan Radez, Red Hat April 27, 2016

Migration WordPress to Azure using Azure Site Recovery (ASR)

InstallAnywhere: Requirements

Cloud Foundry Diego: The New Cloud Runtime. Heterogeneous Container Scheduling, Docker & More

Transcription:

Deploying applications to Heterogeneous Hardware using Rancher and Docker Bruno Grazioli Research Assistant, ZHAW 14th Docker Switzerland User Group Meetup 31st May 2017

Outline Brief introduction to Rancher Modifications in rancher-agent to support ARM (aarch64 systems) How to schedule applications to specific hosts In Rancher and Swarm Multi-arch Docker images with the manifest tool

Rancher 101 Container management platform focused on delivering containers on any infrastructure Takes care of creating/managing your infrastructure Created in 2014 Packet, Orange (...) are using it Cloud Providers (AWS, DO, Rackspace, Exoscale...) Custom Hosts Linux machines with Docker engine installed Multiple types of environments available Cattle, Swarm, k8s, Mesos Cattle is an orchestrator created by Rancher VMs Servers

Rancher 101

Rancher 101 Comprises of rancher-server and rancher-agent rancher-server runs in a standalone container Manages environments/infrastructure Provides user friendly UI... rancher-agent runs in a container in each host: Rancher server Is deployed when docker-engine initialized Or must be run explicitly for addition of custom hosts Runs in privileged mode Controls network configuration, health monitoring and can support deployment of applications Rancher-agent Rancher-agent IPSec IPSec Healthcheck Rancher host Healthcheck Rancher host Environment (Cattle)

What about ARM? ARM processors are present in many devices... Interesting to consider contexts where components can be deployed to heterogeneous infrastructure x86 in cloud and a Raspberry Pi, but could also be ARM server or larger ARM system at the edge Rancher has excellent support for docker-engine running on x86 infrastructure... smartphones, tablets, chromebooks, embedded devices...support for other infrastructures is somewhat limited Partial support for ARM existed in previous versions of rancher-agent We updated ARM (aarch64) support to newer rancher-agent versions

Building rancher-agent for ARM We chose to focus on aarch64 environment Used Suse Leap on Raspberry Pi 3 Raspbian and other distros use armhf Tooling and applications for aarch64 are not problematic docker-engine version 1.12 available Build tools available - golang, gcc Instructions for building containers provided in rancher Dockerfiles Mix of apt-get commands plus building specific binaries Binaries include healthcheck, network-manager, scheduler

Experience building rancher-agent for ARM The build process itself was somewhat complex Containers on rancher-agent host are written primarily in golang There were some specific tricks Some binaries had to be installed into volumes manually rancher-agent installs x86 binaries obtained from rancher-server; had to circumvent this The network configuration took longer to come up on the Raspberry Pi...resulting in issues for the healthcheck and scheduler Docker swarm orchestration exhibited problems with Raspberry Pi joining the swarm This was solved by removing a pruning phase in the rancher agent setup

Application Deployment Significant constraint exists relating to application deployment Containers deployed on Raspberry Pi must have been built for this architecture Partial support exists for this in docker registries Scheduling is based on labels to differentiate between hosts For both Swarm and Cattle Specific labels required according to the environment used

Examples Cattle version: '2' services: wordpress: image: aarch64/wordpress depends_on: - mariadb labels: io.rancher.scheduler.affinity:host_label: type=raspberry ports: - 8080:80 environment: WORDPRESS_DB_PASSWORD:... mysql: image: mariadb labels: io.rancher.scheduler.affinity:host_label: type=vm environment: MYSQL_ROOT_PASSWORD:... MYSQL_DATABASE: wordpress Swarm version: '3' services: wordpress: image: aarch64/wordpress deploy: placement: constraints: - node.labels.type == raspberry depends_on: - mysql (...) mysql: image: mariadb deploy: placement: constraints: - node.labels.type == VM (...)

Creating multi-arch images for Docker registry Docker registry has support for multi-arch images Currently this is limited to pulling images in the CLI Getting multi-arch images into the registry is a bit more tricky Although there is a third party tool solving this issue image: icclab/ubuntu-multi-arch:16.04 manifests: - image: ubuntu:16.04 platform: architecture: amd64 os: linux - image: aarch64/ubuntu:16.04 platform: architecture: arm64 os: linux

Questions? @ICC_Lab