Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Kubernetes - Changing the way we build platforms
Search
Mark Wolfe
September 22, 2015
Technology
1
130
Kubernetes - Changing the way we build platforms
Presented at docker meetup in Melbourne 23/09/2015
Mark Wolfe
September 22, 2015
Tweet
Share
More Decks by Mark Wolfe
See All by Mark Wolfe
IP Networking in AWS
wolfeidau
0
66
Getting Into Vue.js
wolfeidau
0
190
AWS Automation With Lambda
wolfeidau
1
89
Ansible and Cloudformation
wolfeidau
1
230
Docker Security
wolfeidau
0
190
Building a Proxy in Go
wolfeidau
2
370
Using JWT to Authenticate Microservices
wolfeidau
1
240
Managing Secrets IN AWS
wolfeidau
0
140
ESPlant Workshop Firmware Overview and Demos
wolfeidau
0
130
Other Decks in Technology
See All in Technology
Lazy application authentication with Tailscale
bluehatbrit
0
190
MobileActOsaka_250704.pdf
akaitadaaki
0
120
AWS認定を取る中で感じたこと
siromi
1
180
AI専用のリンターを作る #yumemi_patch
bengo4com
5
4.2k
第4回Snowflake 金融ユーザー会 Snowflake summit recap
tamaoki
1
280
AIの全社活用を推進するための安全なレールを敷いた話
shoheimitani
2
500
2025-07-06 QGIS初級ハンズオン「はじめてのQGIS」
kou_kita
0
170
ビズリーチが挑む メトリクスを活用した技術的負債の解消 / dev-productivity-con2025
visional_engineering_and_design
3
7.2k
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
27k
オーティファイ会社紹介資料 / Autify Company Deck
autifyhq
10
130k
B2C&B2B&社内向けサービスを抱える開発組織におけるサービス価値を最大化するイニシアチブ管理
belongadmin
1
6.6k
面倒な作業はAIにおまかせ。Flutter開発をスマートに効率化
ruideengineer
0
240
Featured
See All Featured
Product Roadmaps are Hard
iamctodd
PRO
54
11k
How to Ace a Technical Interview
jacobian
277
23k
Build The Right Thing And Hit Your Dates
maggiecrowley
36
2.8k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
20k
Faster Mobile Websites
deanohume
307
31k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
A designer walks into a library…
pauljervisheath
207
24k
Making Projects Easy
brettharned
116
6.3k
How to Think Like a Performance Engineer
csswizardry
25
1.7k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
22k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.3k
Transcript
Kubernetes Changing the way we build platforms
Who is this guy? @wolfeidau on twitter github.com/wolfeidau www.wolfe.id.au DevOps
@ http://www.versent.com.au/
Greek for “Helmsman”; also the root of the word “Governor”
Kubernetes? • Inspired by an internal project at Google, called
Borg • Contributors from Google, Mesos and more • 1.0 release a month or so ago
Containers • Unix processes not lightweight Virtual Machines • Application
+ Dependencies = image • Runtime environment (cgroups, namespaces, environment variables)
• Build applications in a dedicated build container or CI
• Ship build artifacts, not build environments • Rails app container with build tools ~900MB • Rails app container without build tools ~300MB • Go service without build tools ~15MB • Cattle not Pets! Containers
• Container management, scheduling, and service discovery. • API driven
application management • Agents monitor endpoints for state changes (real-time) • Controllers enforce desired state • Resources (nodes, applications, services) Kubernetes
Kubernetes • High level concepts • node • pod •
scheduler • replication • service
Node • Runs containers and proxies service requests. • docker
• kubelet • proxy
Pod • Represents a logical application. • One or more
containers • Shared namespaces
Scheduler • Schedules pods to run on nodes. • Global
scheduler for long running jobs • Best fit chosen based on pod requirements • Pluggable
Replication Controller • Manages a replicated set of pods. •
Creates pods from a template • Ensures desired number of pods are running • Online resizing
Replication Controller • Manages a replicated set of pods. •
Creates pods from a template • Ensures desired number of pods are running • Online resizing
Service • Service discovery for pods. • Proxy runs on
each node • Virtual IP per service (avoid port collisions) • Basic round-robin algorithm • Dynamic backends based on label queries
Example Pod apiVersion: v1 kind: Pod metadata: labels: db: rethinkdb
role: admin name: rethinkdb-admin spec: containers: - image: gcr.io/google_containers/rethinkdb:1.16.0_1 name: rethinkdb env: - name: POD_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace ports: - containerPort: 8080 name: admin-port volumeMounts: - mountPath: /data/rethinkdb_data name: rethinkdb-storage volumes: - name: rethinkdb-storage emptyDir: {}
Example Service apiVersion: v1 kind: Service metadata: labels: db: rethinkdb
name: rethinkdb-admin spec: ports: - port: 8080 targetPort: 8080 type: LoadBalancer selector: db: rethinkdb role: admin
Deployment • Continuous Integration / Deployment • Jenkins • Buildkite
• Bamboo
Transparency • Logging • ELK (Elastic Search, Logstash, Kibana) •
Metrics • InfluxDB and Grafana • Tracing • Twitter Zipkin
Resilience • Continuous Failure Testing • Chaos Monkey • Load
Testing • Gattling • boom
Cloud Providers • Kubernetes Supports • Google Cloud Compute and
Container • AWS, being used by Samsung and Others • Openstack • Azure
Questions?
Links • Kubernetes Site • AWS Setup • CoreOS Kubernetes
Vagrant • Kubernetes Rails Deployment • http://fabric8.io/