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
120
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
58
Getting Into Vue.js
wolfeidau
0
180
AWS Automation With Lambda
wolfeidau
1
85
Ansible and Cloudformation
wolfeidau
1
220
Docker Security
wolfeidau
0
180
Building a Proxy in Go
wolfeidau
2
360
Using JWT to Authenticate Microservices
wolfeidau
1
240
Managing Secrets IN AWS
wolfeidau
0
130
ESPlant Workshop Firmware Overview and Demos
wolfeidau
0
110
Other Decks in Technology
See All in Technology
ドメインの本質を掴む / Get the essence of the domain
sinsoku
2
160
20241120_JAWS_東京_ランチタイムLT#17_AWS認定全冠の先へ
tsumita
2
300
リンクアンドモチベーション ソフトウェアエンジニア向け紹介資料 / Introduction to Link and Motivation for Software Engineers
lmi
4
300k
AWS Lambda のトラブルシュートをしていて思うこと
kazzpapa3
2
180
初心者向けAWS Securityの勉強会mini Security-JAWSを9ヶ月ぐらい実施してきての近況
cmusudakeisuke
0
130
ISUCONに強くなるかもしれない日々の過ごしかた/Findy ISUCON 2024-11-14
fujiwara3
8
880
ExaDB-D dbaascli で出来ること
oracle4engineer
PRO
0
3.9k
データプロダクトの定義からはじめる、データコントラクト駆動なデータ基盤
chanyou0311
2
330
TypeScriptの次なる大進化なるか!? 条件型を返り値とする関数の型推論
uhyo
2
1.7k
OCI 運用監視サービス 概要
oracle4engineer
PRO
0
4.8k
Lambdaと地方とコミュニティ
miu_crescent
2
370
マルチプロダクトな開発組織で 「開発生産性」に向き合うために試みたこと / Improving Multi-Product Dev Productivity
sugamasao
1
310
Featured
See All Featured
Documentation Writing (for coders)
carmenintech
65
4.4k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
Building Your Own Lightsaber
phodgson
103
6.1k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
Speed Design
sergeychernyshev
25
620
Designing for humans not robots
tammielis
250
25k
KATA
mclloyd
29
14k
Optimising Largest Contentful Paint
csswizardry
33
2.9k
Into the Great Unknown - MozCon
thekraken
32
1.5k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Product Roadmaps are Hard
iamctodd
PRO
49
11k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
44
2.2k
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/