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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
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
73
Getting Into Vue.js
wolfeidau
0
190
AWS Automation With Lambda
wolfeidau
1
93
Ansible and Cloudformation
wolfeidau
1
230
Docker Security
wolfeidau
0
200
Building a Proxy in Go
wolfeidau
2
380
Using JWT to Authenticate Microservices
wolfeidau
1
260
Managing Secrets IN AWS
wolfeidau
0
150
ESPlant Workshop Firmware Overview and Demos
wolfeidau
0
140
Other Decks in Technology
See All in Technology
Databricks Free Editionで始めるLakeflow SDP
taka_aki
0
200
サラリーマンソフトウェアエンジニアのキャリア
yuheinakasaka
43
20k
「全社導入」は結果。1人の熱狂が組織に伝播したmikanのn8n活用
sota_mikami
0
430
Hardware/Software Co-design: Motivations and reflections with respect to security
bcantrill
1
250
ReproでのicebergのStreaming Writeの検証と実運用にむけた取り組み
joker1007
0
400
Data Intelligence on Lakehouse Paradigm
scotthsieh825
0
200
DEVCON 14 Report at AAMSX RU65: V9968, MSX0tab5, MSXDIY etc
mcd500
0
190
Lambda Durable FunctionsでStep Functionsの代わりはできるのかを試してみた
smt7174
2
130
AI Agent Standards and Protocols: a Walkthrough of MCP, A2A, and more...
glaforge
1
530
Riverpod3.xで実現する実践的UI実装
fumiyasac0921
2
330
クラウドセキュリティの進化 — AWSの20年を振り返る
kei4eva4
0
160
SOC2は、取った瞬間よりその後が面白い
3flower
1
180
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1371
200k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.1k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
0
3.4k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
100
Docker and Python
trallard
47
3.7k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
Thoughts on Productivity
jonyablonski
74
5k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.6k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.7k
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/