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 for Developers - All Day DevOps
Search
Hossam Barakat
November 06, 2019
Programming
2
150
Kubernetes for Developers - All Day DevOps
Hossam Barakat
November 06, 2019
Tweet
Share
More Decks by Hossam Barakat
See All by Hossam Barakat
Build Your Cloud Infrastructure as Code With .Net Core - Build Stuff
hossambarakat
0
57
Kubernetes Blue-Green Deployment Made Easy with Argo Rollouts - ADDO
hossambarakat
0
62
Build Your Azure Infrastructure as Code With .NET Core - Azure Day
hossambarakat
0
30
Build Your Azure Infrastructure as Code With .Net Core - Global Azure 2021
hossambarakat
0
37
Practical Domain-Driven Design with EF Core - NDC London 2021
hossambarakat
0
220
Build Your Cloud Infrastructure as Code With .Net Core - ADDO 2020
hossambarakat
0
120
Practical Domain Driven Design With EFCore - NDC Sydney 2020
hossambarakat
0
130
Build Your Cloud Infrastructure as Code With .Net Core - NDC Porto 2020
hossambarakat
2
130
Secure your Kubernetes Containers - All Day DevOps
hossambarakat
0
110
Other Decks in Programming
See All in Programming
[技育CAMPアカデミア]アイディアを形に!【超入門】スマホアプリ開発〜リリースまでの流れをご紹介
teamlab
PRO
0
340
二郎系ラーメンのコールで学ぶ AST 解析
memory1994
PRO
7
1.6k
品質とスピードを両立: TypeScriptの柔軟な型システムをバックエンドで活用する
kosui
8
2.2k
"config" ってなんだ? / What is "config"?
okashoi
0
210
Micro Frontends for Java Microservices - Devnexus 2024
mraible
PRO
0
420
Code Reviews
bkuhlmann
4
880
App Router への移行は「改善」となり得るのか?/ Can migration to App Router be an improvement
takefumiyoshii
8
2.1k
Folding Cheat Sheet #3
philipschwarz
PRO
0
110
ADRを一年運用してみた/adr_after_a_year
hanhan1978
7
2.2k
Hanami and htmx
bkuhlmann
0
190
本格ローグライク制作にEbitengineを選んでみた
nagainaganawa
0
290
[SF Ruby, March 2024] Rails on Wasm
palkan
0
370
Featured
See All Featured
Visualization
eitanlees
135
14k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
103
6.6k
The Invisible Customer
myddelton
114
12k
How to Ace a Technical Interview
jacobian
272
22k
Side Projects
sachag
451
41k
GraphQLとの向き合い方2022年版
quramy
30
12k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
The Cost Of JavaScript in 2023
addyosmani
13
3.8k
The World Runs on Bad Software
bkeepers
PRO
61
6.7k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3k
Build your cross-platform service in a week with App Engine
jlugia
224
17k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
240
1.2M
Transcript
Kubernetes for Developers Hossam Barakat Lead Consultant at Telstra Purple
@hossambarakat_
@hossambarakat_ • What is Kubernetes? • Why Kubernetes? • Kubernetes
Architecture • Deploy Web App with DB on Kubernetes Agenda
@hossambarakat_ Containers Hardware Host Operating System Application Application Application Container
Dependencies Application Host Operating System Hardware Container Engine Container Container Container Container Hardware Host Operating System Virtual Machine Guest OS Application Virtual Machine Guest OS Application Hypervisor
@hossambarakat_ The application is deployed to production
@hossambarakat_ Then the application went viral
@hossambarakat_ Containers bring scalability challenges!
@hossambarakat_ Container orchestration platforms to rescue
@hossambarakat_ • Service discovery • Scaling • Health monitoring •
Failover • Networking • Scheduling • Coordinated app upgrades Container Orchestration
@hossambarakat_ Kubernetes
@hossambarakat_ Kubernetes Architecture Master Worker Worker Client Worker Cluster
@hossambarakat_ Kubernetes Architecture Master API Server Scheduler Worker Kubelet Container
Runtime UI (Dashboard) CLI (Kubectl) Other Client(s) Container Container Cluster
@hossambarakat_ ASP .NET App On Kubernetes ASP.NET Application
@hossambarakat_ ASP .NET App On Kubernetes ASP.NET Application ASP.NET Application
ASP.NET Application
@hossambarakat_ Pods
@hossambarakat_ Pods Pod
@hossambarakat_ Pods Scaling Pod Pod
@hossambarakat_ Pod kind: Pod apiVersion: v1 metadata: name: tasks-app spec:
containers: - name: tasks-app image: hossambarakat/tasklist ports: - containerPort: 80 $ Kubectl apply -f pod.yaml
@hossambarakat_ But wait… what happens if the pod dies?
@hossambarakat_ ReplicaSets Pod ReplicaSet Pod
@hossambarakat_
@hossambarakat_ Deployment ReplicaSet Deployment Pod Pod
@hossambarakat_ Deployment Rollout Deployment ReplicaSet V2 Pod Pod ReplicaSet V1
Pod Pod
@hossambarakat_
@hossambarakat_ Connecting to Pods 10.0.0.1 DB Pod A 10.0.0.2 DB
Pod B ASP.NET Pod
@hossambarakat_ Service 10.0.0.2 Pod B 10.0.0.3 Pod C IP: 10.0.0.30
DNS: myservice Service 10.0.0.1 Pod A
@hossambarakat_ Service IP: 10.0.0.30 DNS: tasks-app-svc Service IP: 10.0.0.90 DNS:
mssql-service Service 10.0.0.1 Pod 10.0.0.1 Pod 10.0.0.1 Pod
@hossambarakat_
@hossambarakat_ Kubernetes in the cloud
Azure AKS $ az aks create -g myResourceGroup -n myCluster
--generate-ssh-keys $ az aks upgrade --kubernetes-version 1.12.6 --name myCluster --resource-group myResourceGroup $ az aks scale -g myResourceGroup -n myCluster --node-count 6
@hossambarakat_ • Scale agent nodes based on pending pods and
nodes utilization • Scans the cluster periodically to check for pending pods or empty nodes and increases the size if possible AKS Cluster Autoscaler
@hossambarakat_ • Kubernetes Architecture • Deploy application using different workloads
• Kubernetes in the cloud Summary
@hossambarakat_ • https://github.com/hossambarakat/TaskList • Introduction to Kubernetes (edX) • Learn
Kubernetes using Interactive Hands-on Scenarios (Katacoda) • https://kubernetes.io/docs/ Resources
@hossambarakat_ Questions? #2019addo-cloudnative
None
Thanks Hossam Barakat @hossambarakat_