SlideShare a Scribd company logo
Modern Container
Orchestration
Kubernetes, CoreOS, and more
@coreoslinux
@brandonphilips
Brandon Philips
CTO, CoreOS
github.com/philips
Easy CoreOS+Kubernetes Setup
vagrant, aws, bare metal, etc
coreos.com/kubernetes/docs/latest/
Demo Instructions
github.com/philips/hacks
2015-all-things-open
What is CoreOS?
What is CoreOS?
CoreOS + Kubernetes @ All Things Open 2015
CoreOS + Kubernetes @ All Things Open 2015
What is CoreOS?
CoreOS + Kubernetes @ All Things Open 2015
The smartest way to run your container infrastructure.
tectonic.com @tectonic
QUAY
Secure hosting for private Docker repositories
quay.io @quayio
Why build CoreOS?
you
you as a sw engineer
your
with Ada.Text_IO;
procedure Hello_World is
use Ada.Text_IO;
begin
Put_Line("Hello, world!");
end;
#include <stdio.h>
int main()
{
printf("Hello, world!n");
}
package main
import "fmt"
func main() {
fmt.Println("Hello, world!")
}
your container
image
your /bin/java
/opt/app.jar
/lib/libc
your /bin/python
/opt/app.py
/lib/libc
your com.example.app
d474e8c57737625c
your d474e8c57737625c
Signed By: Alice
you as an ops engineer
your
your
com.example.webapp
x3
your
com.example.webapp
x3
your
???
com.example.webapp
x3
How do we do it?
reduce API contracts
minimal
kernel
systemd
rkt
ssh
docker
python
java
nginx
mysql
openssl
app
trodistrodistrodistrodistrodistro
python
java
nginx
mysql
openssl
apptrodistrodistrodistrodistrodistro
kernel
systemd
rkt
ssh
docker
python
openssl-A
app1
trodistrodistrodistrodistrodistro
java
openssl-B
app2
java
openssl-B
app3
kernel
systemd
rkt
ssh
docker
CoreOS
container
trodistrodistrodistrodistrodistro
container
container
OS operations
updates
OS operations
manual updates
automatic updates
automatic updates
CoreOS + Kubernetes @ All Things Open 2015
CoreOS + Kubernetes @ All Things Open 2015
atomic update with rollback
CoreOS Updates
machine configuration
OS operations
get into the cluster
machine config
[Service]
ExecStart=/usr/bin/kubelet --
api_servers=https://172.17.4.101 --
register-node=true --hostname-
override=172.17.4.201 --cluster_dns=10.
3.0.10 --cluster_domain=cluster.local
--tls-cert-file=worker.pem --tls-
private-key-file=worker-key.pem
[Service]
ExecStart=/usr/bin/kubelet --
api_servers=https://172.17.4.101 --
register-node=true --hostname-
override=172.17.4.201 --cluster_dns=10.
3.0.10 --cluster_domain=cluster.local
--tls-cert-file=worker.pem --tls-
private-key-file=worker-key.pem
[Service]
ExecStart=/usr/bin/kubelet --
api_servers=https://172.17.4.101 --
register-node=true --hostname-
override=172.17.4.201 --cluster_dns=10.
3.0.10 --cluster_domain=cluster.local
--tls-cert-file=worker.pem --tls-
private-key-file=worker-key.pem
[Service]
ExecStart=/usr/bin/kubelet --
api_servers=https://172.17.4.101 --
register-node=true --hostname-
override=172.17.4.201 --cluster_dns=10.
3.0.10 --cluster_domain=cluster.local
--tls-cert-file=worker.pem --tls-
private-key-file=worker-key.pem
distributed configuration
cluster operations
etcd
CoreOS + Kubernetes @ All Things Open 2015
/etc
distributed
Available
Leader
Follower
Available
Leader
Follower
Available
Leader
Follower
Unavailable
Leader
Follower
Available
Leader
Follower
Available
Leader
Follower
Temporarily Unavailable
Leader
Follower
Available
Leader
Follower
Unavailable
Leader
Follower
what should run
cluster operations
k8s/mesos/etc scheduler
scheduling
getting work to servers
scheduling
$ scp app host:/opt
$ ssh host systemd-run /opt/app
$ scp app host:/opt
$ ssh host systemd-run /opt/app
$ fab deploy:app
$ fab deploy:app
$ fab deploy:app
$ fab deploy:collector-app
$ fab deploy:collector-app
$ fab deploy:collector-app
$ fab deploy deploy:collector-app
$ fab lowest-loadaverage
$ fab lowest-loadaverage
host1
$ fab lowest-loadaverage
host1
$ fab -H host1 deploy:job
You
Scheduler API
Scheduler
Machine(s)
while true {
todo = diff(desState, curState)
schedule(todo)
}
while true {
todo = diff(desState, curState)
schedule(todo)
}
while true {
todo = diff(desState, curState)
schedule(todo)
}
while true {
todo = diff(desState, curState)
schedule(todo)
}
$ kubectl run host-info
--image=quay.io/philips/host-info
--replicas=1
$ kubectl get pods
POD IP
host-info-97wt8 10.2.29.4
$ kubectl scale rc host-info
--replicas=2
$ kubectl get pods
POD IP
host-info-97wt8 10.2.29.4
host-info-f839d 10.2.29.8
pod
env=prod
app=web
pod
env=prod
app=web
pod
env=prod
app=web
rc web-prod
select(env=prod,app=web)
count=1
pod
env=prod
app=web
pod
env=prod
app=web
pod
env=prod
app=web
rc web-prod
select(env=prod,app=web)
count=1
pod
env=prod
app=web
rc web-prod
select(env=prod,app=web)
count=1
pod
env=prod
app=web
rc web-prod
select(env=prod,app=web)
count=5
pod
env=prod
app=web
pod
env=prod
app=web
pod
env=prod
app=web
pod
env=prod
app=web
pod
env=prod
app=web
rc web-prod
select(env=prod,app=web)
count=5
where is it running
cluster operations
dns, LBs, k8s labels
services
flexible service discovery
k8s labels
pod
env=dev
app=web
pod
env=test
app=web
pod
env=prod
app=web
pod
env=dev
app=web
pod
env=test
app=web
pod
env=prod
app=web
service test.example.com
select(env=dev,app=web)
service beta.example.com
select(env=test,app=web)
OR
select(env=prod,app=web)
service example.com
select(env=prod,app=web)
pod
env=test
app=web
pod
env=prod
app=web
pod
env=prod
app=web
pod
env=dev
app=web
pod
env=test
app=web
pod
env=prod
app=web
service test.example.com
select(env=dev,app=web)
service beta.example.com
select(env=test,app=web)
OR
select(env=prod,app=web)
service example.com
select(env=prod,app=web)
pod
app=foo,version=1
service foo.cluster.local
select(app=foo)
pod
app=foo,version=1
pod
app=foo,version=2
service foo.cluster.local
select(app=foo)
pod
app=foo,version=1
pod
app=foo,version=2
service foo.cluster.local
select(app=foo)
$ kubectl expose rc host-info
--port=80
--target-port=5483
--type=NodePort
$ curl http://172.17.4.202:32430/
architecture in practice
cluster operations
worker
kubelet
worker
kubelet
worker
kubelet
scheduler
& API
worker
kubelet
w
kut
worker
kubelet
worker
kubelet
worker
kubelet
scheduler
& API
worker &
API
works on 1 node too
Easy CoreOS+Kubernetes Setup
vagrant, aws, bare metal, etc
coreos.com/kubernetes/docs/latest/
coreos.com/careers
work with us
@coreoslinux
@tectonicstack
@brandonphilips
thank you
continuous delivery of the OS
- Linux Kernel API promise
- Containers are required
- Consistency of configuration
$ date -d "-674 days"
Mon Jul 1 2013
Alpha
α
Alpha Beta
α β
Alpha Beta Stable
α β S
$ cd coreos/manifest
$ cd coreos/manifest
$ git tag | wc -l
$ cd coreos/manifest
$ git tag | wc -l
329
$ uname -r
3.8.0
$ uname -r
3.8.0
$ uname -r
4.0.0
$ init --version
systemd 207
$ init --version
systemd 207
$ init --version
systemd 219
github.com/coreos/etcd
CoreOS + Kubernetes @ All Things Open 2015
CoreOS + Kubernetes @ All Things Open 2015
CoreOS + Kubernetes @ All Things Open 2015
CoreOS + Kubernetes @ All Things Open 2015
CoreOS + Kubernetes @ All Things Open 2015
...
CoreOS + Kubernetes @ All Things Open 2015
CoreOS + Kubernetes @ All Things Open 2015
ok?
ok?
no
yes
CoreOS + Kubernetes @ All Things Open 2015
done
ok?
CoreOS + Kubernetes @ All Things Open 2015
github.com/coreos/etcd
container
networking
github.com/appc/cni
- Defining external plugins e.g. ipvlan, bridge, etc
- Used in rkt today for setting up network namespaces
- Collaborating with folks from Red Hat, Cisco, and
others
192.168.1.10
192.168.1.40
192.168.1.10
192.168.1.40
10.0.0.3
10.0.0.8
10.0.1.10
10.0.1.20
192.168.1.10
192.168.1.40
CoreOS + Kubernetes @ All Things Open 2015
192.168.1.10
192.168.1.40
10.0.0.0/24 10.0.1.0/24
routes to
192.168.1.40
192.168.1.10
192.168.1.40
10.0.0.0/24 10.0.1.0/24
192.168.1.40
10.0.1.0/24
192.168.1.10
routes to
192.168.1.10

More Related Content

What's hot (20)

PDF
Build Your Own CaaS (Container as a Service)
HungWei Chiu
 
PDF
Declare your infrastructure: InfraKit, LinuxKit and Moby
Moby Project
 
PDF
Automatic docker service announcement with registrator and confd
충섭 김
 
PDF
Docker up and running
Victor S. Recio
 
PDF
파이썬 개발환경 구성하기의 끝판왕 - Docker Compose
raccoony
 
PDF
Dockerを利用したローカル環境から本番環境までの構築設計
Koichi Nagaoka
 
PDF
Running Django on Docker: a workflow and code
Danielle Madeley
 
PDF
Docker n co
Rohit Jnagal
 
PDF
Introduction to Docker & CoreOS - Symfony User Group Cologne
D
 
PDF
Small, Simple, and Secure: Alpine Linux under the Microscope
Docker, Inc.
 
PDF
Docker composeで開発環境をメンバに配布せよ
Yusuke Kon
 
PDF
Endocode Kubernetes Meetup: Architecture Patterns for Microservices in Kubern...
Thomas Fricke
 
PDF
Scaling Next-Generation Internet TV on AWS With Docker, Packer, and Chef
bridgetkromhout
 
PDF
Automating Mendix application deployments with Nix
Sander van der Burg
 
PDF
CoreOS introduction - Johann Romefort
Stylight
 
PDF
Docker Overview
Rohit Jnagal
 
PDF
15 kubernetes failure points you should watch
Sysdig
 
PDF
Amazon EC2 Container Service in Action
Remotty
 
PDF
Docker deploy
Eric Ahn
 
PPTX
CoreOS Intro
Isaac Johnston
 
Build Your Own CaaS (Container as a Service)
HungWei Chiu
 
Declare your infrastructure: InfraKit, LinuxKit and Moby
Moby Project
 
Automatic docker service announcement with registrator and confd
충섭 김
 
Docker up and running
Victor S. Recio
 
파이썬 개발환경 구성하기의 끝판왕 - Docker Compose
raccoony
 
Dockerを利用したローカル環境から本番環境までの構築設計
Koichi Nagaoka
 
Running Django on Docker: a workflow and code
Danielle Madeley
 
Docker n co
Rohit Jnagal
 
Introduction to Docker & CoreOS - Symfony User Group Cologne
D
 
Small, Simple, and Secure: Alpine Linux under the Microscope
Docker, Inc.
 
Docker composeで開発環境をメンバに配布せよ
Yusuke Kon
 
Endocode Kubernetes Meetup: Architecture Patterns for Microservices in Kubern...
Thomas Fricke
 
Scaling Next-Generation Internet TV on AWS With Docker, Packer, and Chef
bridgetkromhout
 
Automating Mendix application deployments with Nix
Sander van der Burg
 
CoreOS introduction - Johann Romefort
Stylight
 
Docker Overview
Rohit Jnagal
 
15 kubernetes failure points you should watch
Sysdig
 
Amazon EC2 Container Service in Action
Remotty
 
Docker deploy
Eric Ahn
 
CoreOS Intro
Isaac Johnston
 

Similar to CoreOS + Kubernetes @ All Things Open 2015 (20)

PDF
An Introduction to the Kubernetes API
Stefan Schimanski
 
PPTX
Could Virtual Threads cast away the usage of Kotlin Coroutines - DevoxxUK2025
João Esperancinha
 
PDF
Containerd Project Update: FOSDEM 2018
Phil Estes
 
PDF
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
Erica Windisch
 
PDF
[Hands-on] Kubernetes | Nov 18, 2017
Oracle Korea
 
PDF
Introduction to telepresence
Kyohei Mizumoto
 
PDF
Kubernetes for the PHP developer
Paul Czarkowski
 
PDF
Kubernetes + Python = ❤ - Cloud Native Prague
Henning Jacobs
 
PDF
Networking in Kubernetes
Minhan Xia
 
PDF
London HUG 12/4
London HashiCorp User Group
 
PDF
Docker, Kubernetes, and Google Cloud
Samuel Chow
 
PPTX
Architecting .NET Applications for Docker and Container Based Deployments
Ben Hall
 
PDF
Kubernetes
Meng-Ze Lee
 
PDF
Fabric for fun_and_profit
Javier Jair Trejo García
 
PDF
KubeCon EU 2016: Kubernetes and the Potential for Higher Level Interfaces
KubeAcademy
 
PDF
時代在變 Docker 要會:台北 Docker 一日入門篇
Philip Zheng
 
PPTX
Azure Bootcamp 2016 - Docker Orchestration on Azure with Rancher
Karim Vaes
 
PDF
Learning kubernetes
Eueung Mulyana
 
PDF
Docker for mere mortals
Henryk Konsek
 
PPTX
Building Your Own IoT Platform using FIWARE GEis
FIWARE
 
An Introduction to the Kubernetes API
Stefan Schimanski
 
Could Virtual Threads cast away the usage of Kotlin Coroutines - DevoxxUK2025
João Esperancinha
 
Containerd Project Update: FOSDEM 2018
Phil Estes
 
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
Erica Windisch
 
[Hands-on] Kubernetes | Nov 18, 2017
Oracle Korea
 
Introduction to telepresence
Kyohei Mizumoto
 
Kubernetes for the PHP developer
Paul Czarkowski
 
Kubernetes + Python = ❤ - Cloud Native Prague
Henning Jacobs
 
Networking in Kubernetes
Minhan Xia
 
Docker, Kubernetes, and Google Cloud
Samuel Chow
 
Architecting .NET Applications for Docker and Container Based Deployments
Ben Hall
 
Kubernetes
Meng-Ze Lee
 
Fabric for fun_and_profit
Javier Jair Trejo García
 
KubeCon EU 2016: Kubernetes and the Potential for Higher Level Interfaces
KubeAcademy
 
時代在變 Docker 要會:台北 Docker 一日入門篇
Philip Zheng
 
Azure Bootcamp 2016 - Docker Orchestration on Azure with Rancher
Karim Vaes
 
Learning kubernetes
Eueung Mulyana
 
Docker for mere mortals
Henryk Konsek
 
Building Your Own IoT Platform using FIWARE GEis
FIWARE
 
Ad

Recently uploaded (20)

PPTX
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PDF
Python basic programing language for automation
DanialHabibi2
 
PDF
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
PPTX
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
PDF
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PDF
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
PDF
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
PDF
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
PDF
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PPTX
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
PDF
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
PDF
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
Python basic programing language for automation
DanialHabibi2
 
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
Ad

CoreOS + Kubernetes @ All Things Open 2015