LinuxONE Virtualization Containers
LinuxONE Virtualization Containers
Virtualization on LinuxONE:
Software Containers
Brett Webb
Program Director, Executive Enterprise Architect
[email protected]
Topics
🔵 Container technologies/vendors
🔵 Orchestration technologies/vendors
🔵 “Containers are a solution to the problem of how to get software to run reliably
when moved from one computing environment to another.” – CIO Magazine
🔵 “A container is a standard unit of software that packages up code and all its
dependencies so the application runs quickly and reliably from one computing
environment to another.” – Docker, Inc.
🔵 The goal is to offer a Linux distro- and vendor-neutral environment for the development of Linux container
technologies.
As close as possible to the one you would get from a virtual machine
Without the overhead that comes with running a separate kernel and simulating all the hardware.
Achieved through a combination of kernel security features such as namespaces, mandatory access control, and control groups
(cgroups).
Version dependencies
E.g., “We tested our app on v2.7, but it got deployed on v3”
Database dependencies
E.g., “We tested with MySQL, but it is getting deployed with PostgreSQL”
Environment dependencies
E.g., “We tested our app using SSL v3.0, but it got deployed using
TLS v1.3”
Platform dependencies
E.g., “We tested our app using Ubuntu, but someone wants to run
it on SUSE, and someone else wants to run it on Red Hat”
NGINX001
NGINX002
NGINX003
NGINX004
WAS001
WAS002
Containers
Version dependencies
Binaries/LibrariesBins/Libs
Binaries/Libraries Database dependencies
Container Infrastructure Environment dependencies
Platform dependencies
Host OS
Hypervisor
Server Hardware
Systems / Containers on LinuxONE / © 2019 IBM Corp. 7
There are several software containers for Linux
Docker Image
Docker Container
Docker Engine
Docker Registry
Docker Image N
Docker Container N
Docker
Container A
Source Build N
Container B
Get N Run N
Code Engine
Repository (Build) …
Image
Repository
Push new
Image to
Developer Docker Repository Docker Engine
image and pushes Host OS
it to registry Hypervisor
Server Hardware
Container A
Container B
(Emperor benchmarked at 2 million containers)
Virtual
N-Tier Machines Hosted
• The community edition of Docker has been downloaded several billion times
• There are more than 2 million Docker containers available in Docker Hub
• Hortonworks CEO to take over as CEO of Docker in June 2019
Why containers for cloud?
Higher Density than VM’s: 10-100X more containers per
system
Provision in seconds / milliseconds, vs. 10+ minutes for
VM’s
Near-bare metal runtime performance
Versioning and portability greatly improves software
distribution
Flexibility
– Containerize “applications”
– Deliver Polyglot apps
Dev Test Production
Open source – free – lower TCO
Supported by modern Linux kernel
Runs on bare metal systems
Systems / Containers on LinuxONE / © 2019 IBM Corp.
Growing set of tools and ecosystem 17
Some of the nearly 2000 Docker images available on Docker Hub
MongoDB
ibmjava
MongoDB
MongoDB
MongoDB
MongoDB MongoDB
https://goto.docker.com/the-forrester-wave-enterprise-container-platform-software-suites-2018.html
ISVs listed by
Orchestration Technology
Leading ISVs
• Docker Swarm
1. Docker, Inc.
1. Docker, Inc.
2. Red Hat
• Kubernetes
3. Rancher Labs
1. Docker, Inc.
4. Pivotal
2. Red Hat
5. Mesosphere
3. IBM
6. IBM
4. Pivotal
7. Platform9
5. Rancher Labs
8. SUSE
6. Platform9
7. SUSE
• Mesos
1. Mesosphere
These techniques enable loosely coupled systems that are resilient, manageable,
and observable. Combined with robust automation, they allow engineers to make
high-impact changes frequently and predictably with minimal toil.
The Cloud Native Computing Foundation seeks to drive adoption of this paradigm
by fostering and sustaining an ecosystem of open source, vendor-neutral projects.
We democratize state-of-the-art patterns to make these innovations accessible for
everyone.
Systems / LinuxONE Architecture / © 2019 IBM Corp. 25
Simplified view of what Kubernetes does
I want 5
instances of a
container.
Controllers provide
The human uses the The API Server
Kubernetes Control additional
(kube-apiserver) is functionality and
command and YAML
part of the convenience
to manipulate
resources
Kubernetes Master features
Worker
etcd is a consistent and highly-
Node could
available key value store used as be an
There are 28
Kubernetes’ backing store for all
different types LPAR or a
cluster data. Always have a backup
plan for etcd’s data for your
Volumes virtual
Kubernetes cluster. Secrets holds machine
passwords,
tokens, keys…
🔵 Kubernetes Control Plane – 🔵 Kubernetes Objects – abstracted 🔵 Controllers – build upon the basic
makes the clusters’ current state representations of things in your objects, and provide additional
match the desired state, via the cluster. functionality and convenience
Pod Lifecycle Event Generator features. They include:
Pod – the smallest deployable
(PLEG) units of computing that can be ReplicaSet - ensures that a
Kubernetes Master – a collection of created and managed in specified number of pod replicas
three processes that run on the Kubernetes; encapsulates an are running at any given time
designated master node in your application’s container (or, in some Deployment – define a desired
cluster cases, multiple containers), state of a deployment object
• API Server (kube-apiserver) storage resources, a unique
StatefulSet – the workload API
network IP, and options that govern
• Controller Manager (kube- object used to manage stateful
controller-manager)
how the container(s) should run.
applications.
• Scheduler (kube-scheduler)
Service – an abstraction which
Job – creates one or more pods,
Worker Nodes – each non-master node defines a logical set of Pods and a
and as they complete successfully,
in your cluster runs two processes policy by which to access them -
the job is marked as completed.
• Kubelet – communicates with the sometimes called a micro-service.
Kubernetes Master Volume – persistent data store
• Kube-proxy – a network proxy which Namespace – a collection of
reflects Kubernetes networking services
on each node
virtual clusters that are backed by
the same physical cluster
Systems / LinuxONE Architecture / © 2019 IBM Corp. 28
Kubernetes Architecture
Image Registry
Worker Node
🔵 Containers provide more scalability and more flexibility than the virtual servers approach, but both approaches
can be used on LinuxONE, including both at the same time, with great scale and performance
🔵 Containers solve several problems we have with virtual servers, most significantly dependencies and portability
🔵 Challenge your prospects to embrace containers and tout LinuxONE’s virtualization and scalability superiority for
serving data and microservices
🔵 Both LXC containers and Docker containers run on LinuxONE
🔵 Containers at scale need orchestration, and all three of the main container orchestration technologies run on
LinuxONE
Kubernetes is the most popular, and is core to IBM Cloud Private, Red Hat OpenShift, and Pivotal Cloud Foundry
Swarm is powerful, fast, and highly scalable, and is core to Docker Enterprise Edition, which runs on LinuxONE
Mesos is core to Mesosphere, and Apache Mesos has been ported to and validated on LinuxONE
🔵 Use the LinuxONE Community Cloud to experience containers on LinuxONE for yourself, and recommend it to
your prospects
🔵 Read some of the articles and view some of the education on the following slides to develop more skills and
understanding about containers.
Systems / LinuxONE Architecture / © 2019 IBM Corp. 30
Try Docker on LinuxONE on the LinuxONE Community Cloud
https://developer.ibm.com/linuxone/
1. Install docker.
2. Install docker-compose.
3. Download WebSphere Liberty image,
deploy it on the LinuxONE machine,
and push a Java sample application.
4. Install and run WordPress.
5. Craft a multicomponent deployment.
6. Create Docker images to run the
MEAN stack deployment.
🔵 CIO Magazine article, “What are containers and why do you need
them?” 🔵 ”Kubernetes vs. Docker” on Svitla:
https://www.cio.com/article/2924995/what-are-containers-and-why-do- https://svitla.com/blog/kubernetes-vs-docker
you-need-them.html
🔵 IBM developerWorks webcast “Learn the history and fundamentals of
Kubernetes” by Ed Shee (1-hr video including live demo)
🔵 Network World article, “Software Containers: Used More Frequently https://developer.ibm.com/videos/learn-the-history-and-fundamentals-
than Most Realize” of-kubernetes/
https://www.networkworld.com/article/2226996/software-containers--u
sed-more-frequently-than-most-realize.html
🔵 Wikipedia article: https://en.wikipedia.org/wiki/Kubernetes
🔵 Google Cloud article, “Containers at Google”: 🔵 InfoWorld article: “What is Kubernetes? Container orchestration
https://cloud.google.com/containers/ explained”
https://www.infoworld.com/article/3268073/what-is-kubernetes-contain
🔵 “Kubernetes vs. Mesos vs. Swarm” by Sumo Logic er-orchestration-explained.html
https://www.sumologic.com/insight/kubernetes-vs-mesos-vs-swarm/
🔵 Official overview on K8s website:
Systems / Containers on LinuxONE / © 2019 IBM Corp. 32
https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/
Containers & Kubernetes education on YourLearning.ibm.com
Orchestrator
Swarm managers are responsible for clusters. They Pods distributed across nodes, multiple master nodes
use ingress load balancing to expose services and worker nodes can be load-balanced for requests
HA capabilities
externally, and use a consensus algorithm to ensure from kubectl and clients. etcd can be clustered. API servers
that they have consistent state information. can be replicated.
Orchestrator