SlideShare a Scribd company logo
1 of 47
Download to read offline
DevOps: Where is My
PodPod
Hello!
I am smalltown
MaiCoin Site Reliability Engineer
Taipei HashiCorp UG Organizer
AWS UG Taiwan Staff
● GUI Driven
● Ticket Based
● Hand Crafted
● Reserved
● Scale-Up
● Smart Hardware
● Proprietary
● Waterfall Ops
● ...
● API Driven
● Self Service
● Automated
● On Demand
● Scale-Out
● Smart Apps
● Open Source
● Agile DevOps
● ...
Pets vs Cattle
Kubernetes = Cattle Pattern
After Using Kubernetes?
Livestock Industry Requires Expertise
System
Feeding
Breeding
Animal Health
Range of Species
Product
The Same Thing Happened in K8S
Pod is Pending
Node Not Ready
App Not Redundancy
Out of Resource
Pod Not in
Right Node
Interfere W/
Each Other
Yes, You are Involved in Livestock
Industry Now!
真的變成 “碼農” 了...
Cluster Pattern Resource ManagementPod Arrangement
Cluster Pattern Resource ManagementPod Arrangement
How to Arrange Application Workload?
● If There are 3 Applications, 3 Environments (Alpha, Beta,
Production) ...
● Run All Application Instances on a Single Cluster?
● A Separate Cluster for Each Application Instance?
● A Combination of the Above?
One Large Shared Cluster
👍 Efficient Resource Usage
👍 Cheap
👍 Efficient Administration
👎 Single Point of Failure
👎 No Hard Security Isolation
👎 No Hard Multi-Tenancy
👎 Many Users
👎 Clusters Can't Grow Infinitely Large
Alpha
Beta
Prod
Alpha
Beta
Prod
Alpha
Beta
Prod
Many Small Single-Use Clusters
👍 Reduced Blast Radius
👍 Isolation
👍 Few Users
👎 Inefficient Resource Usage
👎 Expensive
👎 Complex Administration
Alpha Beta Prod
Alpha Beta Prod
Alpha Beta Prod
Cluster per Application
👍 Cluster Can be Customised for an
App
👎 Different Environments in the
Same Cluster
Alpha
Beta
Prod
Alpha
Beta
Prod
Alpha
Beta
Prod
Cluster per Environment
👍 Isolation of the Prod
Environment
👍 Cluster can be Customised for an
Environment
👍 Lock Down Access to Prod
Cluster
👎 Lack of Isolation Between Apps
👎 App Requirements are Not
Localised
Alpha
Beta
Prod
Which One is Better?
● Depends on Your Use Case
● Trade-Off the Pros and Cons of the Different Approaches
● The Choice is Not Limited to the Above Examples
● It can be Any Combination of Them!
Ref
Multiple (Availability) Zones
● Multiple, Isolated Locations Within Each Region
● Protect your Application Against (Availability) Zone
Disruption
Network Latency
● Take AWS for Example, Inter-AZ Network Latency Depends
on Different Region, General Below 10 ms
● Does It Matter?
Persistent Volume
● High Efficiency Storage and Pod Need to Stay in the Same
(Availability) Zone
● What is the Problem?
Extra Cost
● AWS/Azure/GCP Regional Data Transfer is Charged at $
0.01/GB
● Large Amount of Data Transfer will Lead to Huge Cost
(GitLab)
Cluster Pattern Resource ManagementPod Arrangement
How to Put Pod in the Right Node
● Dedicated Nodes
● Nodes with Special Hardware
● Taint based Evictions
Node Selector
apiVersion: v1
kind: Pod
...
spec:
containers:
- name: cattle
image: cattle
imagePullPolicy: IfNotPresent
nodeSelector:
land: grass
land:grass
land:grass ❤
Node Affinity - Required
apiVersion: v1
kind: Pod
metadata:
name: with-node-affinity
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/land
operator: In
values:
- pasture-1
- pasture-2
...
kubernetes.io/land: pasture-1
http://kubernetes.io/land:
pasture-1 or pasture-2 ❤
Node Affinity - Preferred
╮(╯_╰)╭
apiVersion: v1
kind: Pod
metadata:
name: with-node-affinity
spec:
affinity:
nodeAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 1
preference:
matchExpressions:
- key: kubernetes.io/land
operator: In
values:
- pasture-1
- pasture-2
...
http://kubernetes.io/land:
pasture-1 or pasture-1 😢
kubernetes.io/land: pasture-3
Taint
apiVersion: v1
kind: Pod
metadata:
name: cattle
labels:
env: test
spec:
containers:
- name: cattle
image: cattle
imagePullPolicy: IfNotPresent
land=mud:NoSchedule
Toleration
...
spec:
containers:
- name: pig
image: pig
imagePullPolicy: IfNotPresent
tolerations:
- key: "land"
operator: "Equal"
value: "mud"
effect: "NoSchedule"
land=mud:NoSchedule
Inter-Pod Affinity
apiVersion: v1
kind: Pod
metadata:
name: with-pod-affinity
spec:
affinity:
podAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: species
operator: In
values:
- cattle
topologyKey: failure-domain.beta.kubernetes.io/land
land:grass land:grass
land:mud land:mud
Inter-Pod Anti-Affinity
apiVersion: v1
kind: Pod
metadata:
name: with-pod-affinity
spec:
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: species
operator: In
values:
- cattle
topologyKey: failure-domain.beta.kubernetes.io/land
land:grass
land:mud
Why Need PodTopologySpread?
apiVersion: v1
kind: Pod
metadata:
name: with-pod-affinity
spec:
affinity:
podAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: species
operator: In
values:
- cattle
topologyKey: failure-domain.beta.kubernetes.io/land
land:grass land:grass
land:mud land:mud
spec:
topologySpreadConstraints:
- maxSkew: 1
topologyKey: land
whenUnsatisfiable: DoNotSchedule
labelSelector:
species: cattle
How PodTopologySpread Work?
land:grass land:grass
skew=3
❌
skew=0
✅
Cluster Pattern Resource ManagementPod Arrangement
Why Need Resource Management?
● Avoid Out of Control Application Affect Others
● Application Support Scale Out Ability
● Easy to Plan Cluster Overall Capability
● Ensure The Most Important Application Survival and Safety
● ...
Everyone Knows Resource Request & Limit
Ref
● Default Memory Requests and Limits for a Namespace
● Default CPU Requests and Limits for a Namespace
● Minimum and Maximum Memory Constraints for a
Namespace
● Minimum and Maximum CPU Constraints for a Namespace
● Memory and CPU Quotas for a Namespace
● Pod Quota for a Namespace
When K8S Users Ignore You 😆
But Do You Know Pod QoS?
● Guaranteed: Every Container in the Pod Must Have a
Memory/CPU Limit and a Memory/CPU Request, and They
Must be the Same
● Burstable: Not Meet the Criteria for QoS Class
Guaranteed, and At Least one Container in the Pod has a
Memory or CPU Request
● BestEffort: Not Have Any Memory or CPU Limits or
Requests
When Out of Resource...
● BestEffort Pods
● Burstable Pods Whose Resource Usage Exceeds Its Request
● Burstable Pods Whose Resource Usage is Beneath Its
Request
● Guaranteed Pods
��
Pod Disruptions
● Voluntary and Involuntary Disruptions
● Dealing with Disruptions
○ Ensure Pod Requests Appropriate Resources
○ Replicate Your Application
○ Spread Applications Across Racks (Using Anti-Affinity)
or Across Zones (if Using a Multi-Zone Cluster)
Perform a Disruptive Action on All the Nodes
● Accept Downtime
● Failover to Another Complete Replica Cluster
● Use Pod Disruption Budget
Pod Disruption Budget (1/6)
PDB = At Least 2 of The 3 Pods to be Available at All Times
Pod Disruption Budget (2/6)
PDB = At Least 2 of The 3 Pods to be Available at All Times
Pod Disruption Budget (3/6)
PDB = At Least 2 of The 3 Pods to be Available at All Times
Pod Disruption Budget (4/6)
PDB = At Least 2 of The 3 Pods to be Available at All Times
Pod Disruption Budget (5/6)
PDB = At Least 2 of The 3 Pods to be Available at All Times
Pod Disruption Budget (6/6)
PDB = At Least 2 of The 3 Pods to be Available at All Times
Pod Priority and Preemption
apiVersion: scheduling.k8s.io/v1
kind: PriorityClass
metadata:
name: high-priority-nonpreempting
value: 1000000
preemptionPolicy: Never/PreemptLowerPriority
globalDefault: false/true
description: "Pod Priority and Preemption"
��
THANKS!
ANY QUESTIONS?
You can find me at my office:
● Frontend Engineer
● Backend Engineer

More Related Content

What's hot

Cloud Native User Group: Shift-Left Testing IaC With PaC
Cloud Native User Group: Shift-Left Testing IaC With PaCCloud Native User Group: Shift-Left Testing IaC With PaC
Cloud Native User Group: Shift-Left Testing IaC With PaCsmalltown
 
AWS Lambda and serverless Java | DevNation Live
AWS Lambda and serverless Java | DevNation LiveAWS Lambda and serverless Java | DevNation Live
AWS Lambda and serverless Java | DevNation LiveRed Hat Developers
 
CMP376 - Another Week, Another Million Containers on Amazon EC2
CMP376 - Another Week, Another Million Containers on Amazon EC2CMP376 - Another Week, Another Million Containers on Amazon EC2
CMP376 - Another Week, Another Million Containers on Amazon EC2aspyker
 
Netflix oss season 1 episode 3
Netflix oss season 1 episode 3 Netflix oss season 1 episode 3
Netflix oss season 1 episode 3 Ruslan Meshenberg
 
DevOps Fest 2020. Сергій Калінець. Building Data Streaming Platform with Apac...
DevOps Fest 2020. Сергій Калінець. Building Data Streaming Platform with Apac...DevOps Fest 2020. Сергій Калінець. Building Data Streaming Platform with Apac...
DevOps Fest 2020. Сергій Калінець. Building Data Streaming Platform with Apac...DevOps_Fest
 
Netflix Open Source Meetup Season 3 Episode 2
Netflix Open Source Meetup Season 3 Episode 2Netflix Open Source Meetup Season 3 Episode 2
Netflix Open Source Meetup Season 3 Episode 2aspyker
 
The 2nd half. Scaling to the next^2
The 2nd half. Scaling to the next^2The 2nd half. Scaling to the next^2
The 2nd half. Scaling to the next^2Haggai Philip Zagury
 
OpenStack on Kubernetes (BOS Summit / May 2017 update)
OpenStack on Kubernetes (BOS Summit / May 2017 update)OpenStack on Kubernetes (BOS Summit / May 2017 update)
OpenStack on Kubernetes (BOS Summit / May 2017 update)rhirschfeld
 
Netflix Open Source Meetup Season 4 Episode 2
Netflix Open Source Meetup Season 4 Episode 2Netflix Open Source Meetup Season 4 Episode 2
Netflix Open Source Meetup Season 4 Episode 2aspyker
 
QConSF18 - Disenchantment: Netflix Titus, its Feisty Team, and Daemons
QConSF18 - Disenchantment: Netflix Titus, its Feisty Team, and DaemonsQConSF18 - Disenchantment: Netflix Titus, its Feisty Team, and Daemons
QConSF18 - Disenchantment: Netflix Titus, its Feisty Team, and Daemonsaspyker
 
Kubernetes extensibility: crd & operators
Kubernetes extensibility: crd & operators Kubernetes extensibility: crd & operators
Kubernetes extensibility: crd & operators Giacomo Tirabassi
 
K8s Pod Scheduling - Deep Dive. By Tsahi Duek.
K8s Pod Scheduling - Deep Dive. By Tsahi Duek.K8s Pod Scheduling - Deep Dive. By Tsahi Duek.
K8s Pod Scheduling - Deep Dive. By Tsahi Duek.Cloud Native Day Tel Aviv
 
The Kubernetes Operator Pattern - ContainerConf Nov 2017
The Kubernetes Operator Pattern - ContainerConf Nov 2017The Kubernetes Operator Pattern - ContainerConf Nov 2017
The Kubernetes Operator Pattern - ContainerConf Nov 2017Jakob Karalus
 
DockerDay2015: Getting started with Google Container Engine
DockerDay2015: Getting started with Google Container EngineDockerDay2015: Getting started with Google Container Engine
DockerDay2015: Getting started with Google Container EngineDocker-Hanoi
 

What's hot (18)

Cloud Native User Group: Shift-Left Testing IaC With PaC
Cloud Native User Group: Shift-Left Testing IaC With PaCCloud Native User Group: Shift-Left Testing IaC With PaC
Cloud Native User Group: Shift-Left Testing IaC With PaC
 
AWS Lambda and serverless Java | DevNation Live
AWS Lambda and serverless Java | DevNation LiveAWS Lambda and serverless Java | DevNation Live
AWS Lambda and serverless Java | DevNation Live
 
Scaling i/o bound Microservices
Scaling i/o bound MicroservicesScaling i/o bound Microservices
Scaling i/o bound Microservices
 
CMP376 - Another Week, Another Million Containers on Amazon EC2
CMP376 - Another Week, Another Million Containers on Amazon EC2CMP376 - Another Week, Another Million Containers on Amazon EC2
CMP376 - Another Week, Another Million Containers on Amazon EC2
 
Crafting Kubernetes Operators
Crafting Kubernetes OperatorsCrafting Kubernetes Operators
Crafting Kubernetes Operators
 
Netflix oss season 1 episode 3
Netflix oss season 1 episode 3 Netflix oss season 1 episode 3
Netflix oss season 1 episode 3
 
DevOps Fest 2020. Сергій Калінець. Building Data Streaming Platform with Apac...
DevOps Fest 2020. Сергій Калінець. Building Data Streaming Platform with Apac...DevOps Fest 2020. Сергій Калінець. Building Data Streaming Platform with Apac...
DevOps Fest 2020. Сергій Калінець. Building Data Streaming Platform with Apac...
 
Netflix Open Source Meetup Season 3 Episode 2
Netflix Open Source Meetup Season 3 Episode 2Netflix Open Source Meetup Season 3 Episode 2
Netflix Open Source Meetup Season 3 Episode 2
 
The 2nd half. Scaling to the next^2
The 2nd half. Scaling to the next^2The 2nd half. Scaling to the next^2
The 2nd half. Scaling to the next^2
 
Istio canaries and kubernetes
Istio  canaries and kubernetesIstio  canaries and kubernetes
Istio canaries and kubernetes
 
OpenStack on Kubernetes (BOS Summit / May 2017 update)
OpenStack on Kubernetes (BOS Summit / May 2017 update)OpenStack on Kubernetes (BOS Summit / May 2017 update)
OpenStack on Kubernetes (BOS Summit / May 2017 update)
 
Netflix Open Source Meetup Season 4 Episode 2
Netflix Open Source Meetup Season 4 Episode 2Netflix Open Source Meetup Season 4 Episode 2
Netflix Open Source Meetup Season 4 Episode 2
 
QConSF18 - Disenchantment: Netflix Titus, its Feisty Team, and Daemons
QConSF18 - Disenchantment: Netflix Titus, its Feisty Team, and DaemonsQConSF18 - Disenchantment: Netflix Titus, its Feisty Team, and Daemons
QConSF18 - Disenchantment: Netflix Titus, its Feisty Team, and Daemons
 
Kubernetes extensibility: crd & operators
Kubernetes extensibility: crd & operators Kubernetes extensibility: crd & operators
Kubernetes extensibility: crd & operators
 
K8s Pod Scheduling - Deep Dive. By Tsahi Duek.
K8s Pod Scheduling - Deep Dive. By Tsahi Duek.K8s Pod Scheduling - Deep Dive. By Tsahi Duek.
K8s Pod Scheduling - Deep Dive. By Tsahi Duek.
 
Tce automation-d4
Tce automation-d4Tce automation-d4
Tce automation-d4
 
The Kubernetes Operator Pattern - ContainerConf Nov 2017
The Kubernetes Operator Pattern - ContainerConf Nov 2017The Kubernetes Operator Pattern - ContainerConf Nov 2017
The Kubernetes Operator Pattern - ContainerConf Nov 2017
 
DockerDay2015: Getting started with Google Container Engine
DockerDay2015: Getting started with Google Container EngineDockerDay2015: Getting started with Google Container Engine
DockerDay2015: Getting started with Google Container Engine
 

Similar to Kubernetes Summit 2020 - DevOps: Where is My PodPod

Interop 2018 - Understanding Kubernetes - Brian Gracely
Interop 2018 - Understanding Kubernetes - Brian GracelyInterop 2018 - Understanding Kubernetes - Brian Gracely
Interop 2018 - Understanding Kubernetes - Brian GracelyBrian Gracely
 
Netflix container scheduling talk at stanford final
Netflix container scheduling talk at stanford   finalNetflix container scheduling talk at stanford   final
Netflix container scheduling talk at stanford finalSharma Podila
 
Cluster management with Kubernetes
Cluster management with KubernetesCluster management with Kubernetes
Cluster management with KubernetesSatnam Singh
 
Raising ux bar with offline first design
Raising ux bar with offline first designRaising ux bar with offline first design
Raising ux bar with offline first designKyrylo Reznykov
 
Creating PostgreSQL-as-a-Service at Scale
Creating PostgreSQL-as-a-Service at ScaleCreating PostgreSQL-as-a-Service at Scale
Creating PostgreSQL-as-a-Service at ScaleSean Chittenden
 
5 levels of high availability from multi instance to hybrid cloud
5 levels of high availability  from multi instance to hybrid cloud5 levels of high availability  from multi instance to hybrid cloud
5 levels of high availability from multi instance to hybrid cloudRafał Leszko
 
5 Levels of High Availability: From Multi-instance to Hybrid Cloud
5 Levels of High Availability: From Multi-instance to Hybrid Cloud5 Levels of High Availability: From Multi-instance to Hybrid Cloud
5 Levels of High Availability: From Multi-instance to Hybrid CloudRafał Leszko
 
Cloud Connected Devices on a Global Scale (CPN303) | AWS re:Invent 2013
Cloud Connected Devices on a Global Scale (CPN303) | AWS re:Invent 2013Cloud Connected Devices on a Global Scale (CPN303) | AWS re:Invent 2013
Cloud Connected Devices on a Global Scale (CPN303) | AWS re:Invent 2013Amazon Web Services
 
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)QAware GmbH
 
Resource Scheduling using Apache Mesos in Cloud Native Environments
Resource Scheduling using Apache Mesos in Cloud Native EnvironmentsResource Scheduling using Apache Mesos in Cloud Native Environments
Resource Scheduling using Apache Mesos in Cloud Native EnvironmentsSharma Podila
 
Spark Gotchas and Lessons Learned (2/20/20)
Spark Gotchas and Lessons Learned (2/20/20)Spark Gotchas and Lessons Learned (2/20/20)
Spark Gotchas and Lessons Learned (2/20/20)Jen Waller
 
Cannibalising The Google App Engine
Cannibalising The  Google  App  EngineCannibalising The  Google  App  Engine
Cannibalising The Google App Enginecatherinewall
 
Distributed app development with nodejs and zeromq
Distributed app development with nodejs and zeromqDistributed app development with nodejs and zeromq
Distributed app development with nodejs and zeromqRuben Tan
 
OpenShift Overview
OpenShift OverviewOpenShift Overview
OpenShift Overviewroundman
 
From Monoliths to Microservices - A Journey With Confluent With Gayathri Veal...
From Monoliths to Microservices - A Journey With Confluent With Gayathri Veal...From Monoliths to Microservices - A Journey With Confluent With Gayathri Veal...
From Monoliths to Microservices - A Journey With Confluent With Gayathri Veal...HostedbyConfluent
 
Podila mesos con europe keynote aug sep 2016
Podila mesos con europe keynote aug sep 2016Podila mesos con europe keynote aug sep 2016
Podila mesos con europe keynote aug sep 2016Sharma Podila
 
Public PaaS Throwdown!
Public PaaS Throwdown!Public PaaS Throwdown!
Public PaaS Throwdown!Ronak Mallik
 

Similar to Kubernetes Summit 2020 - DevOps: Where is My PodPod (20)

Interop 2018 - Understanding Kubernetes - Brian Gracely
Interop 2018 - Understanding Kubernetes - Brian GracelyInterop 2018 - Understanding Kubernetes - Brian Gracely
Interop 2018 - Understanding Kubernetes - Brian Gracely
 
Netflix container scheduling talk at stanford final
Netflix container scheduling talk at stanford   finalNetflix container scheduling talk at stanford   final
Netflix container scheduling talk at stanford final
 
Cluster management with Kubernetes
Cluster management with KubernetesCluster management with Kubernetes
Cluster management with Kubernetes
 
Raising ux bar with offline first design
Raising ux bar with offline first designRaising ux bar with offline first design
Raising ux bar with offline first design
 
Creating PostgreSQL-as-a-Service at Scale
Creating PostgreSQL-as-a-Service at ScaleCreating PostgreSQL-as-a-Service at Scale
Creating PostgreSQL-as-a-Service at Scale
 
5 levels of high availability from multi instance to hybrid cloud
5 levels of high availability  from multi instance to hybrid cloud5 levels of high availability  from multi instance to hybrid cloud
5 levels of high availability from multi instance to hybrid cloud
 
5 Levels of High Availability: From Multi-instance to Hybrid Cloud
5 Levels of High Availability: From Multi-instance to Hybrid Cloud5 Levels of High Availability: From Multi-instance to Hybrid Cloud
5 Levels of High Availability: From Multi-instance to Hybrid Cloud
 
Cloud Connected Devices on a Global Scale (CPN303) | AWS re:Invent 2013
Cloud Connected Devices on a Global Scale (CPN303) | AWS re:Invent 2013Cloud Connected Devices on a Global Scale (CPN303) | AWS re:Invent 2013
Cloud Connected Devices on a Global Scale (CPN303) | AWS re:Invent 2013
 
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
 
How to deploy your Apps in serverless-way using App Engine.pptx
How to deploy your Apps in serverless-way using App Engine.pptxHow to deploy your Apps in serverless-way using App Engine.pptx
How to deploy your Apps in serverless-way using App Engine.pptx
 
Resource Scheduling using Apache Mesos in Cloud Native Environments
Resource Scheduling using Apache Mesos in Cloud Native EnvironmentsResource Scheduling using Apache Mesos in Cloud Native Environments
Resource Scheduling using Apache Mesos in Cloud Native Environments
 
Spark Gotchas and Lessons Learned (2/20/20)
Spark Gotchas and Lessons Learned (2/20/20)Spark Gotchas and Lessons Learned (2/20/20)
Spark Gotchas and Lessons Learned (2/20/20)
 
Cannibalising The Google App Engine
Cannibalising The  Google  App  EngineCannibalising The  Google  App  Engine
Cannibalising The Google App Engine
 
Netty training
Netty trainingNetty training
Netty training
 
Distributed app development with nodejs and zeromq
Distributed app development with nodejs and zeromqDistributed app development with nodejs and zeromq
Distributed app development with nodejs and zeromq
 
OpenShift Overview
OpenShift OverviewOpenShift Overview
OpenShift Overview
 
From Monoliths to Microservices - A Journey With Confluent With Gayathri Veal...
From Monoliths to Microservices - A Journey With Confluent With Gayathri Veal...From Monoliths to Microservices - A Journey With Confluent With Gayathri Veal...
From Monoliths to Microservices - A Journey With Confluent With Gayathri Veal...
 
Node.js Course 2 of 2 - Advanced techniques
Node.js Course 2 of 2 - Advanced techniquesNode.js Course 2 of 2 - Advanced techniques
Node.js Course 2 of 2 - Advanced techniques
 
Podila mesos con europe keynote aug sep 2016
Podila mesos con europe keynote aug sep 2016Podila mesos con europe keynote aug sep 2016
Podila mesos con europe keynote aug sep 2016
 
Public PaaS Throwdown!
Public PaaS Throwdown!Public PaaS Throwdown!
Public PaaS Throwdown!
 

More from smalltown

Kubernetes Summit 2023: Head First Kubernetes
Kubernetes Summit 2023: Head First Kubernetes Kubernetes Summit 2023: Head First Kubernetes
Kubernetes Summit 2023: Head First Kubernetes smalltown
 
SRE Conference 2022 - How to Build a Healthy On-Call Culture
SRE Conference 2022 - How to Build a Healthy On-Call CultureSRE Conference 2022 - How to Build a Healthy On-Call Culture
SRE Conference 2022 - How to Build a Healthy On-Call Culturesmalltown
 
Kubernetes Summit 2021: Multi-Cluster - The Good, the Bad and the Ugly
Kubernetes Summit 2021: Multi-Cluster - The Good, the Bad and the UglyKubernetes Summit 2021: Multi-Cluster - The Good, the Bad and the Ugly
Kubernetes Summit 2021: Multi-Cluster - The Good, the Bad and the Uglysmalltown
 
DevOpsDays Taipei 2021 - How FinTech Embrace Change Management
DevOpsDays Taipei 2021 - How FinTech Embrace Change ManagementDevOpsDays Taipei 2021 - How FinTech Embrace Change Management
DevOpsDays Taipei 2021 - How FinTech Embrace Change Managementsmalltown
 
Kubernetes Summit 2019 - Harden Your Kubernetes Cluster
Kubernetes Summit 2019 - Harden Your Kubernetes ClusterKubernetes Summit 2019 - Harden Your Kubernetes Cluster
Kubernetes Summit 2019 - Harden Your Kubernetes Clustersmalltown
 
HashiCorp Vault Workshop:幫 Credentials 找個窩
HashiCorp Vault Workshop:幫 Credentials 找個窩HashiCorp Vault Workshop:幫 Credentials 找個窩
HashiCorp Vault Workshop:幫 Credentials 找個窩smalltown
 
TW SEAT - DevOps: Security 干我何事?
TW SEAT - DevOps: Security 干我何事?TW SEAT - DevOps: Security 干我何事?
TW SEAT - DevOps: Security 干我何事?smalltown
 
Cloud Native User Group: Prometheus Day 2
Cloud Native User Group:  Prometheus Day 2Cloud Native User Group:  Prometheus Day 2
Cloud Native User Group: Prometheus Day 2smalltown
 
DevOpsDays - DevOps: Security 干我何事?
DevOpsDays - DevOps: Security 干我何事?DevOpsDays - DevOps: Security 干我何事?
DevOpsDays - DevOps: Security 干我何事?smalltown
 
Kubernetes Day 2017 - Build, Ship and Run Your APP, Production !!
Kubernetes Day 2017 - Build, Ship and Run Your APP, Production !!Kubernetes Day 2017 - Build, Ship and Run Your APP, Production !!
Kubernetes Day 2017 - Build, Ship and Run Your APP, Production !!smalltown
 
Docker Summit 2016 - Kubernetes: Sweets and Bitters
Docker Summit 2016 - Kubernetes: Sweets and BittersDocker Summit 2016 - Kubernetes: Sweets and Bitters
Docker Summit 2016 - Kubernetes: Sweets and Bitterssmalltown
 
DevOpsDays Taipei 2017 - Terraform: Everything Is Code
DevOpsDays Taipei 2017 - Terraform: Everything Is CodeDevOpsDays Taipei 2017 - Terraform: Everything Is Code
DevOpsDays Taipei 2017 - Terraform: Everything Is Codesmalltown
 
COSCUP 2017 - infrastructure As Code
COSCUP 2017 - infrastructure As Code COSCUP 2017 - infrastructure As Code
COSCUP 2017 - infrastructure As Code smalltown
 
AWS Connect 2017 - Container (feat. AWS)
AWS Connect 2017 -  Container (feat. AWS)AWS Connect 2017 -  Container (feat. AWS)
AWS Connect 2017 - Container (feat. AWS)smalltown
 
DevOps Summit 2016 - The immutable Journey
DevOps Summit 2016 - The immutable JourneyDevOps Summit 2016 - The immutable Journey
DevOps Summit 2016 - The immutable Journeysmalltown
 
DevOps 2015 - Dancing with Chef
DevOps 2015 - Dancing with ChefDevOps 2015 - Dancing with Chef
DevOps 2015 - Dancing with Chefsmalltown
 

More from smalltown (16)

Kubernetes Summit 2023: Head First Kubernetes
Kubernetes Summit 2023: Head First Kubernetes Kubernetes Summit 2023: Head First Kubernetes
Kubernetes Summit 2023: Head First Kubernetes
 
SRE Conference 2022 - How to Build a Healthy On-Call Culture
SRE Conference 2022 - How to Build a Healthy On-Call CultureSRE Conference 2022 - How to Build a Healthy On-Call Culture
SRE Conference 2022 - How to Build a Healthy On-Call Culture
 
Kubernetes Summit 2021: Multi-Cluster - The Good, the Bad and the Ugly
Kubernetes Summit 2021: Multi-Cluster - The Good, the Bad and the UglyKubernetes Summit 2021: Multi-Cluster - The Good, the Bad and the Ugly
Kubernetes Summit 2021: Multi-Cluster - The Good, the Bad and the Ugly
 
DevOpsDays Taipei 2021 - How FinTech Embrace Change Management
DevOpsDays Taipei 2021 - How FinTech Embrace Change ManagementDevOpsDays Taipei 2021 - How FinTech Embrace Change Management
DevOpsDays Taipei 2021 - How FinTech Embrace Change Management
 
Kubernetes Summit 2019 - Harden Your Kubernetes Cluster
Kubernetes Summit 2019 - Harden Your Kubernetes ClusterKubernetes Summit 2019 - Harden Your Kubernetes Cluster
Kubernetes Summit 2019 - Harden Your Kubernetes Cluster
 
HashiCorp Vault Workshop:幫 Credentials 找個窩
HashiCorp Vault Workshop:幫 Credentials 找個窩HashiCorp Vault Workshop:幫 Credentials 找個窩
HashiCorp Vault Workshop:幫 Credentials 找個窩
 
TW SEAT - DevOps: Security 干我何事?
TW SEAT - DevOps: Security 干我何事?TW SEAT - DevOps: Security 干我何事?
TW SEAT - DevOps: Security 干我何事?
 
Cloud Native User Group: Prometheus Day 2
Cloud Native User Group:  Prometheus Day 2Cloud Native User Group:  Prometheus Day 2
Cloud Native User Group: Prometheus Day 2
 
DevOpsDays - DevOps: Security 干我何事?
DevOpsDays - DevOps: Security 干我何事?DevOpsDays - DevOps: Security 干我何事?
DevOpsDays - DevOps: Security 干我何事?
 
Kubernetes Day 2017 - Build, Ship and Run Your APP, Production !!
Kubernetes Day 2017 - Build, Ship and Run Your APP, Production !!Kubernetes Day 2017 - Build, Ship and Run Your APP, Production !!
Kubernetes Day 2017 - Build, Ship and Run Your APP, Production !!
 
Docker Summit 2016 - Kubernetes: Sweets and Bitters
Docker Summit 2016 - Kubernetes: Sweets and BittersDocker Summit 2016 - Kubernetes: Sweets and Bitters
Docker Summit 2016 - Kubernetes: Sweets and Bitters
 
DevOpsDays Taipei 2017 - Terraform: Everything Is Code
DevOpsDays Taipei 2017 - Terraform: Everything Is CodeDevOpsDays Taipei 2017 - Terraform: Everything Is Code
DevOpsDays Taipei 2017 - Terraform: Everything Is Code
 
COSCUP 2017 - infrastructure As Code
COSCUP 2017 - infrastructure As Code COSCUP 2017 - infrastructure As Code
COSCUP 2017 - infrastructure As Code
 
AWS Connect 2017 - Container (feat. AWS)
AWS Connect 2017 -  Container (feat. AWS)AWS Connect 2017 -  Container (feat. AWS)
AWS Connect 2017 - Container (feat. AWS)
 
DevOps Summit 2016 - The immutable Journey
DevOps Summit 2016 - The immutable JourneyDevOps Summit 2016 - The immutable Journey
DevOps Summit 2016 - The immutable Journey
 
DevOps 2015 - Dancing with Chef
DevOps 2015 - Dancing with ChefDevOps 2015 - Dancing with Chef
DevOps 2015 - Dancing with Chef
 

Recently uploaded

System Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event SchedulingSystem Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event SchedulingBootNeck1
 
THE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTION
THE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTIONTHE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTION
THE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTIONjhunlian
 
"Exploring the Essential Functions and Design Considerations of Spillways in ...
"Exploring the Essential Functions and Design Considerations of Spillways in ..."Exploring the Essential Functions and Design Considerations of Spillways in ...
"Exploring the Essential Functions and Design Considerations of Spillways in ...Erbil Polytechnic University
 
US Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of ActionUS Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of ActionMebane Rash
 
Gravity concentration_MI20612MI_________
Gravity concentration_MI20612MI_________Gravity concentration_MI20612MI_________
Gravity concentration_MI20612MI_________Romil Mishra
 
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor CatchersTechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catcherssdickerson1
 
Python Programming for basic beginners.pptx
Python Programming for basic beginners.pptxPython Programming for basic beginners.pptx
Python Programming for basic beginners.pptxmohitesoham12
 
National Level Hackathon Participation Certificate.pdf
National Level Hackathon Participation Certificate.pdfNational Level Hackathon Participation Certificate.pdf
National Level Hackathon Participation Certificate.pdfRajuKanojiya4
 
Robotics-Asimov's Laws, Mechanical Subsystems, Robot Kinematics, Robot Dynami...
Robotics-Asimov's Laws, Mechanical Subsystems, Robot Kinematics, Robot Dynami...Robotics-Asimov's Laws, Mechanical Subsystems, Robot Kinematics, Robot Dynami...
Robotics-Asimov's Laws, Mechanical Subsystems, Robot Kinematics, Robot Dynami...Sumanth A
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AIabhishek36461
 
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfg
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfgUnit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfg
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfgsaravananr517913
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...VICTOR MAESTRE RAMIREZ
 
DM Pillar Training Manual.ppt will be useful in deploying TPM in project
DM Pillar Training Manual.ppt will be useful in deploying TPM in projectDM Pillar Training Manual.ppt will be useful in deploying TPM in project
DM Pillar Training Manual.ppt will be useful in deploying TPM in projectssuserb6619e
 
Energy Awareness training ppt for manufacturing process.pptx
Energy Awareness training ppt for manufacturing process.pptxEnergy Awareness training ppt for manufacturing process.pptx
Energy Awareness training ppt for manufacturing process.pptxsiddharthjain2303
 
Internet of things -Arshdeep Bahga .pptx
Internet of things -Arshdeep Bahga .pptxInternet of things -Arshdeep Bahga .pptx
Internet of things -Arshdeep Bahga .pptxVelmuruganTECE
 
chpater16.pptxMMMMMMMMMMMMMMMMMMMMMMMMMMM
chpater16.pptxMMMMMMMMMMMMMMMMMMMMMMMMMMMchpater16.pptxMMMMMMMMMMMMMMMMMMMMMMMMMMM
chpater16.pptxMMMMMMMMMMMMMMMMMMMMMMMMMMMNanaAgyeman13
 
Crushers to screens in aggregate production
Crushers to screens in aggregate productionCrushers to screens in aggregate production
Crushers to screens in aggregate productionChinnuNinan
 
Crystal Structure analysis and detailed information pptx
Crystal Structure analysis and detailed information pptxCrystal Structure analysis and detailed information pptx
Crystal Structure analysis and detailed information pptxachiever3003
 
Virtual memory management in Operating System
Virtual memory management in Operating SystemVirtual memory management in Operating System
Virtual memory management in Operating SystemRashmi Bhat
 

Recently uploaded (20)

System Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event SchedulingSystem Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event Scheduling
 
THE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTION
THE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTIONTHE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTION
THE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTION
 
"Exploring the Essential Functions and Design Considerations of Spillways in ...
"Exploring the Essential Functions and Design Considerations of Spillways in ..."Exploring the Essential Functions and Design Considerations of Spillways in ...
"Exploring the Essential Functions and Design Considerations of Spillways in ...
 
US Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of ActionUS Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of Action
 
Gravity concentration_MI20612MI_________
Gravity concentration_MI20612MI_________Gravity concentration_MI20612MI_________
Gravity concentration_MI20612MI_________
 
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor CatchersTechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
 
Python Programming for basic beginners.pptx
Python Programming for basic beginners.pptxPython Programming for basic beginners.pptx
Python Programming for basic beginners.pptx
 
National Level Hackathon Participation Certificate.pdf
National Level Hackathon Participation Certificate.pdfNational Level Hackathon Participation Certificate.pdf
National Level Hackathon Participation Certificate.pdf
 
Robotics-Asimov's Laws, Mechanical Subsystems, Robot Kinematics, Robot Dynami...
Robotics-Asimov's Laws, Mechanical Subsystems, Robot Kinematics, Robot Dynami...Robotics-Asimov's Laws, Mechanical Subsystems, Robot Kinematics, Robot Dynami...
Robotics-Asimov's Laws, Mechanical Subsystems, Robot Kinematics, Robot Dynami...
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AI
 
Design and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdfDesign and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdf
 
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfg
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfgUnit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfg
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfg
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...
 
DM Pillar Training Manual.ppt will be useful in deploying TPM in project
DM Pillar Training Manual.ppt will be useful in deploying TPM in projectDM Pillar Training Manual.ppt will be useful in deploying TPM in project
DM Pillar Training Manual.ppt will be useful in deploying TPM in project
 
Energy Awareness training ppt for manufacturing process.pptx
Energy Awareness training ppt for manufacturing process.pptxEnergy Awareness training ppt for manufacturing process.pptx
Energy Awareness training ppt for manufacturing process.pptx
 
Internet of things -Arshdeep Bahga .pptx
Internet of things -Arshdeep Bahga .pptxInternet of things -Arshdeep Bahga .pptx
Internet of things -Arshdeep Bahga .pptx
 
chpater16.pptxMMMMMMMMMMMMMMMMMMMMMMMMMMM
chpater16.pptxMMMMMMMMMMMMMMMMMMMMMMMMMMMchpater16.pptxMMMMMMMMMMMMMMMMMMMMMMMMMMM
chpater16.pptxMMMMMMMMMMMMMMMMMMMMMMMMMMM
 
Crushers to screens in aggregate production
Crushers to screens in aggregate productionCrushers to screens in aggregate production
Crushers to screens in aggregate production
 
Crystal Structure analysis and detailed information pptx
Crystal Structure analysis and detailed information pptxCrystal Structure analysis and detailed information pptx
Crystal Structure analysis and detailed information pptx
 
Virtual memory management in Operating System
Virtual memory management in Operating SystemVirtual memory management in Operating System
Virtual memory management in Operating System
 

Kubernetes Summit 2020 - DevOps: Where is My PodPod

  • 1. DevOps: Where is My PodPod
  • 2. Hello! I am smalltown MaiCoin Site Reliability Engineer Taipei HashiCorp UG Organizer AWS UG Taiwan Staff
  • 3. ● GUI Driven ● Ticket Based ● Hand Crafted ● Reserved ● Scale-Up ● Smart Hardware ● Proprietary ● Waterfall Ops ● ... ● API Driven ● Self Service ● Automated ● On Demand ● Scale-Out ● Smart Apps ● Open Source ● Agile DevOps ● ... Pets vs Cattle
  • 6. Livestock Industry Requires Expertise System Feeding Breeding Animal Health Range of Species Product
  • 7. The Same Thing Happened in K8S Pod is Pending Node Not Ready App Not Redundancy Out of Resource Pod Not in Right Node Interfere W/ Each Other
  • 8. Yes, You are Involved in Livestock Industry Now! 真的變成 “碼農” 了...
  • 9. Cluster Pattern Resource ManagementPod Arrangement
  • 10. Cluster Pattern Resource ManagementPod Arrangement
  • 11. How to Arrange Application Workload? ● If There are 3 Applications, 3 Environments (Alpha, Beta, Production) ... ● Run All Application Instances on a Single Cluster? ● A Separate Cluster for Each Application Instance? ● A Combination of the Above?
  • 12. One Large Shared Cluster 👍 Efficient Resource Usage 👍 Cheap 👍 Efficient Administration 👎 Single Point of Failure 👎 No Hard Security Isolation 👎 No Hard Multi-Tenancy 👎 Many Users 👎 Clusters Can't Grow Infinitely Large Alpha Beta Prod Alpha Beta Prod Alpha Beta Prod
  • 13. Many Small Single-Use Clusters 👍 Reduced Blast Radius 👍 Isolation 👍 Few Users 👎 Inefficient Resource Usage 👎 Expensive 👎 Complex Administration Alpha Beta Prod Alpha Beta Prod Alpha Beta Prod
  • 14. Cluster per Application 👍 Cluster Can be Customised for an App 👎 Different Environments in the Same Cluster Alpha Beta Prod Alpha Beta Prod Alpha Beta Prod
  • 15. Cluster per Environment 👍 Isolation of the Prod Environment 👍 Cluster can be Customised for an Environment 👍 Lock Down Access to Prod Cluster 👎 Lack of Isolation Between Apps 👎 App Requirements are Not Localised Alpha Beta Prod
  • 16. Which One is Better? ● Depends on Your Use Case ● Trade-Off the Pros and Cons of the Different Approaches ● The Choice is Not Limited to the Above Examples ● It can be Any Combination of Them! Ref
  • 17. Multiple (Availability) Zones ● Multiple, Isolated Locations Within Each Region ● Protect your Application Against (Availability) Zone Disruption
  • 18. Network Latency ● Take AWS for Example, Inter-AZ Network Latency Depends on Different Region, General Below 10 ms ● Does It Matter?
  • 19. Persistent Volume ● High Efficiency Storage and Pod Need to Stay in the Same (Availability) Zone ● What is the Problem?
  • 20. Extra Cost ● AWS/Azure/GCP Regional Data Transfer is Charged at $ 0.01/GB ● Large Amount of Data Transfer will Lead to Huge Cost (GitLab)
  • 21. Cluster Pattern Resource ManagementPod Arrangement
  • 22. How to Put Pod in the Right Node ● Dedicated Nodes ● Nodes with Special Hardware ● Taint based Evictions
  • 23. Node Selector apiVersion: v1 kind: Pod ... spec: containers: - name: cattle image: cattle imagePullPolicy: IfNotPresent nodeSelector: land: grass land:grass land:grass ❤
  • 24. Node Affinity - Required apiVersion: v1 kind: Pod metadata: name: with-node-affinity spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/land operator: In values: - pasture-1 - pasture-2 ... kubernetes.io/land: pasture-1 http://kubernetes.io/land: pasture-1 or pasture-2 ❤
  • 25. Node Affinity - Preferred ╮(╯_╰)╭ apiVersion: v1 kind: Pod metadata: name: with-node-affinity spec: affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 1 preference: matchExpressions: - key: kubernetes.io/land operator: In values: - pasture-1 - pasture-2 ... http://kubernetes.io/land: pasture-1 or pasture-1 😢 kubernetes.io/land: pasture-3
  • 26. Taint apiVersion: v1 kind: Pod metadata: name: cattle labels: env: test spec: containers: - name: cattle image: cattle imagePullPolicy: IfNotPresent land=mud:NoSchedule
  • 27. Toleration ... spec: containers: - name: pig image: pig imagePullPolicy: IfNotPresent tolerations: - key: "land" operator: "Equal" value: "mud" effect: "NoSchedule" land=mud:NoSchedule
  • 28. Inter-Pod Affinity apiVersion: v1 kind: Pod metadata: name: with-pod-affinity spec: affinity: podAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: species operator: In values: - cattle topologyKey: failure-domain.beta.kubernetes.io/land land:grass land:grass land:mud land:mud
  • 29. Inter-Pod Anti-Affinity apiVersion: v1 kind: Pod metadata: name: with-pod-affinity spec: affinity: podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: species operator: In values: - cattle topologyKey: failure-domain.beta.kubernetes.io/land land:grass land:mud
  • 30. Why Need PodTopologySpread? apiVersion: v1 kind: Pod metadata: name: with-pod-affinity spec: affinity: podAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: species operator: In values: - cattle topologyKey: failure-domain.beta.kubernetes.io/land land:grass land:grass land:mud land:mud
  • 31. spec: topologySpreadConstraints: - maxSkew: 1 topologyKey: land whenUnsatisfiable: DoNotSchedule labelSelector: species: cattle How PodTopologySpread Work? land:grass land:grass skew=3 ❌ skew=0 ✅
  • 32. Cluster Pattern Resource ManagementPod Arrangement
  • 33. Why Need Resource Management? ● Avoid Out of Control Application Affect Others ● Application Support Scale Out Ability ● Easy to Plan Cluster Overall Capability ● Ensure The Most Important Application Survival and Safety ● ...
  • 34. Everyone Knows Resource Request & Limit Ref
  • 35. ● Default Memory Requests and Limits for a Namespace ● Default CPU Requests and Limits for a Namespace ● Minimum and Maximum Memory Constraints for a Namespace ● Minimum and Maximum CPU Constraints for a Namespace ● Memory and CPU Quotas for a Namespace ● Pod Quota for a Namespace When K8S Users Ignore You 😆
  • 36. But Do You Know Pod QoS? ● Guaranteed: Every Container in the Pod Must Have a Memory/CPU Limit and a Memory/CPU Request, and They Must be the Same ● Burstable: Not Meet the Criteria for QoS Class Guaranteed, and At Least one Container in the Pod has a Memory or CPU Request ● BestEffort: Not Have Any Memory or CPU Limits or Requests
  • 37. When Out of Resource... ● BestEffort Pods ● Burstable Pods Whose Resource Usage Exceeds Its Request ● Burstable Pods Whose Resource Usage is Beneath Its Request ● Guaranteed Pods ��
  • 38. Pod Disruptions ● Voluntary and Involuntary Disruptions ● Dealing with Disruptions ○ Ensure Pod Requests Appropriate Resources ○ Replicate Your Application ○ Spread Applications Across Racks (Using Anti-Affinity) or Across Zones (if Using a Multi-Zone Cluster)
  • 39. Perform a Disruptive Action on All the Nodes ● Accept Downtime ● Failover to Another Complete Replica Cluster ● Use Pod Disruption Budget
  • 40. Pod Disruption Budget (1/6) PDB = At Least 2 of The 3 Pods to be Available at All Times
  • 41. Pod Disruption Budget (2/6) PDB = At Least 2 of The 3 Pods to be Available at All Times
  • 42. Pod Disruption Budget (3/6) PDB = At Least 2 of The 3 Pods to be Available at All Times
  • 43. Pod Disruption Budget (4/6) PDB = At Least 2 of The 3 Pods to be Available at All Times
  • 44. Pod Disruption Budget (5/6) PDB = At Least 2 of The 3 Pods to be Available at All Times
  • 45. Pod Disruption Budget (6/6) PDB = At Least 2 of The 3 Pods to be Available at All Times
  • 46. Pod Priority and Preemption apiVersion: scheduling.k8s.io/v1 kind: PriorityClass metadata: name: high-priority-nonpreempting value: 1000000 preemptionPolicy: Never/PreemptLowerPriority globalDefault: false/true description: "Pod Priority and Preemption" ��
  • 47. THANKS! ANY QUESTIONS? You can find me at my office: ● Frontend Engineer ● Backend Engineer