SlideShare a Scribd company logo
1 of 15
Download to read offline
Quick Intro - July 13 2018
As a scalable and resilient
storage solution, that pods
from any az can utilize
● Kubernetes - Fault Zones
● Setting up GKE cluster with nodes across zones
● Deploying a Application Volume with 3 Replicas across Zones
● Deploying a StatefulSet Application with 3 Volumes across Zones
Agenda
● Always co-located in the same node or not!
Affinity and Anti-Affinity
https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
https://cloud.google.com/compute/docs/regions-zones/
topologyKey
● kubernetes.io/hostname
● failure-domain.beta.kubernetes.io/zone
● failure-domain.beta.kubernetes.io/region
● beta.kubernetes.io/instance-type
● beta.kubernetes.io/os
● beta.kubernetes.io/arch
podAntiAffinity:
… :
- labelSelector:
matchLabels:
app : application1
topologyKey:
failure-domain.beta.kubernetes.io/zone
Cluster with nodes Across Zones
us-central-1a
node1
node2
node3
us-central-1b
node4
node5
node6
us-central-1c
node7
node8
node9
kubectl get nodes --show-labels
Cluster with nodes Across Zones
kubectl get nodes --show-labels
Cluster with nodes Across Zones
kiran_mova@kmova-dev:~$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
gke-kmova-helm-default-pool-1fd63be5-3w0j Ready <none> 9h v1.10.4-gke.2
gke-kmova-helm-default-pool-1fd63be5-gnb8 Ready <none> 9h v1.10.4-gke.2
gke-kmova-helm-default-pool-86bcd4aa-lmkm Ready <none> 9h v1.10.4-gke.2
gke-kmova-helm-default-pool-86bcd4aa-sjb4 Ready <none> 9h v1.10.4-gke.2
gke-kmova-helm-default-pool-ecaeb5c5-r5s6 Ready <none> 9h v1.10.4-gke.2
gke-kmova-helm-default-pool-ecaeb5c5-v78j Ready <none> 9h v1.10.4-gke.2
Cluster with nodes Across Zones
kiran_mova@kmova-dev:~$ kubectl get nodes --show-labels
NAME STATUS ROLES AGE VERSION
LABELS
gke-kmova-helm-default-pool-1fd63be5-3w0j Ready <none> 9h v1.10.4-gke.2
beta.kubernetes.io/arch=amd64,beta.kubernetes.io/fluentd-ds-ready=true,beta.kubernetes.io/in
stance-type=n1-standard-2,beta.kubernetes.io/os=linux,cloud.google.com/gke-nodepool=default-
pool,failure-domain.beta.kubernetes.io/region=us-central1,failure-domain.beta.kubernetes.io/
zone=us-central1-a,kubernetes.io/hostname=gke-kmova-helm-default-pool-1fd63be5-3w0j
gke-kmova-helm-default-pool-86bcd4aa-lmkm Ready <none> 9h v1.10.4-gke.2
beta.kubernetes.io/arch=amd64,beta.kubernetes.io/fluentd-ds-ready=true,beta.kubernetes.io/in
stance-type=n1-standard-2,beta.kubernetes.io/os=linux,cloud.google.com/gke-nodepool=default-
pool,failure-domain.beta.kubernetes.io/region=us-central1,failure-domain.beta.kubernetes.io/
zone=us-central1-b,kubernetes.io/hostname=gke-kmova-helm-default-pool-86bcd4aa-lmkm
Scenario 1 : Deploy replicas across AZ
us-central-1a us-central-1b us-central-1c
v1
a1
v1 v1
● Application (a1) is
deployed in one of the
availability zones, while
the data copies
(replica=3) are
maintained across
different availability
zones.
● (Optional) Some nodes in
a zone can be
designated as storage
nodes where the copies
are maintained.
Scenario 1 : Deploy replicas across AZ
us-central-1a us-central-1b us-central-1c
v1
a1
v1 v1
● When one of the zones
where application is
running is gone, the
application (a1) moves to
one of the other zones
and can access the data
from the available
replicas.
a1
Scenario 1 : Deploy replicas across AZ
us-central-1a us-central-1b us-central-1c
v1 v1 v1
● When either the older
zone is made available or
a new zone is added back
to the cluster, a new
replica for the volume (v1)
is configured back by
OpenEBS.
a1
Scenario 1 : Deploy replicas across AZ
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: demo-vol1-claim
labels:
"volumeprovisioner.mapi.openebs.io/replica-topology-key-domain": "failure-domain.beta.kubernetes.io"
"volumeprovisioner.mapi.openebs.io/replica-topology-key-type": "zone"
spec:
storageClassName: openebs-standard
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 4G
- labelSelector:
matchLabels:
vsm: pvc-a246b23d-85e3-11e8-9ef7-42010a800016
openebs/replica: jiva-replica
topologyKey: failure-domain.beta.kubernetes.io/zone
Scenario 2 : Deploy volumes of STS
across AZ
us-central-1a us-central-1b us-central-1c
v1 v2 v3
● A statefulset application like
MongoDB can be configured to
run 3 instances ( s1, s2,s3), with
their corresponding volumes
(v1, v2, v3) provisioned in
different Availability Zone.
● (Optional) Volumes for a
Statefulset like Mongo can be
configured with single replica -
since application can handle
replication.
● (Optional) The stateful
instances themself (s1, s2, s3)
need not be tied to a zone.
s2 s3s1
Scenario 2 : Deploy volumes of STS
across AZ
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
name: mongo
spec:
serviceName: "mongo"
replicas: 2
template:
metadata:
labels:
role: mongo
environment: test
"volumeprovisioner.mapi.openebs.io/application": "mongo-app1"
"volumeprovisioner.mapi.openebs.io/replica-topology-key-domain": "failure-domain.beta.kubernetes.io"
"volumeprovisioner.mapi.openebs.io/replica-topology-key-type": "zone"
spec:
- labelSelector:
matchLabels:
application: mongo-app1
openebs/replica: jiva-replica
topologyKey: failure-domain.beta.kubernetes.io/zone
Show me the code!
https://github.com/openebs/maya/pull/380
https://github.com/openebs/maya/pull/390
Thank you!

More Related Content

Similar to Deploying OpenEBS with Availability Zones

Cluster management with Kubernetes
Cluster management with KubernetesCluster management with Kubernetes
Cluster management with KubernetesSatnam Singh
 
Horizontal scaling with Galaxy
Horizontal scaling with GalaxyHorizontal scaling with Galaxy
Horizontal scaling with GalaxyEnis Afgan
 
Kubernetes talk at DDDSydney 2017
Kubernetes talk at DDDSydney 2017Kubernetes talk at DDDSydney 2017
Kubernetes talk at DDDSydney 2017Hesham Amin
 
Thoughts on heptio's ark - Contributors Meet 21st Sept 2018
Thoughts on heptio's ark - Contributors Meet 21st Sept 2018Thoughts on heptio's ark - Contributors Meet 21st Sept 2018
Thoughts on heptio's ark - Contributors Meet 21st Sept 2018OpenEBS
 
Webinar OpenEBS 0.8.1 Release presentation
Webinar   OpenEBS 0.8.1 Release presentationWebinar   OpenEBS 0.8.1 Release presentation
Webinar OpenEBS 0.8.1 Release presentationMayaData Inc
 
Container Orchestration using Kubernetes
Container Orchestration using KubernetesContainer Orchestration using Kubernetes
Container Orchestration using KubernetesHesham Amin
 
CN Asturias - Stateful application for kubernetes
CN Asturias -  Stateful application for kubernetes CN Asturias -  Stateful application for kubernetes
CN Asturias - Stateful application for kubernetes Cédrick Lunven
 
2016 08-30 Kubernetes talk for Waterloo DevOps
2016 08-30 Kubernetes talk for Waterloo DevOps2016 08-30 Kubernetes talk for Waterloo DevOps
2016 08-30 Kubernetes talk for Waterloo DevOpscraigbox
 
HP-UX 11i LVM Mirroring Features and Multi-threads by Dusan Baljevic
HP-UX 11i LVM Mirroring Features and Multi-threads by Dusan BaljevicHP-UX 11i LVM Mirroring Features and Multi-threads by Dusan Baljevic
HP-UX 11i LVM Mirroring Features and Multi-threads by Dusan BaljevicCircling Cycle
 
(DVO313) Building Next-Generation Applications with Amazon ECS
(DVO313) Building Next-Generation Applications with Amazon ECS(DVO313) Building Next-Generation Applications with Amazon ECS
(DVO313) Building Next-Generation Applications with Amazon ECSAmazon Web Services
 
Testing kubernetes and_open_shift_at_scale_20170209
Testing kubernetes and_open_shift_at_scale_20170209Testing kubernetes and_open_shift_at_scale_20170209
Testing kubernetes and_open_shift_at_scale_20170209mffiedler
 
Cloud Expo East 2013: Essential Open Source Software for Building the Open Cloud
Cloud Expo East 2013: Essential Open Source Software for Building the Open CloudCloud Expo East 2013: Essential Open Source Software for Building the Open Cloud
Cloud Expo East 2013: Essential Open Source Software for Building the Open CloudMark Hinkle
 
Volume Policies in OpenEBS 0.7
Volume Policies in OpenEBS 0.7Volume Policies in OpenEBS 0.7
Volume Policies in OpenEBS 0.7OpenEBS
 
Container orchestration in geo-distributed cloud computing platforms
Container orchestration in geo-distributed cloud computing platformsContainer orchestration in geo-distributed cloud computing platforms
Container orchestration in geo-distributed cloud computing platformsFogGuru MSCA Project
 
Issues of OpenStack multi-region mode
Issues of OpenStack multi-region modeIssues of OpenStack multi-region mode
Issues of OpenStack multi-region modeJoe Huang
 
Stop Worrying and Keep Querying, Using Automated Multi-Region Disaster Recovery
Stop Worrying and Keep Querying, Using Automated Multi-Region Disaster RecoveryStop Worrying and Keep Querying, Using Automated Multi-Region Disaster Recovery
Stop Worrying and Keep Querying, Using Automated Multi-Region Disaster RecoveryDoKC
 
FIWARE Tech Summit - Docker Swarm Secrets for Creating Great FIWARE Platforms
FIWARE Tech Summit - Docker Swarm Secrets for Creating Great FIWARE PlatformsFIWARE Tech Summit - Docker Swarm Secrets for Creating Great FIWARE Platforms
FIWARE Tech Summit - Docker Swarm Secrets for Creating Great FIWARE PlatformsFIWARE
 
Advanced Access Control with Docker EE
Advanced Access Control with Docker EEAdvanced Access Control with Docker EE
Advanced Access Control with Docker EEDocker, Inc.
 

Similar to Deploying OpenEBS with Availability Zones (20)

Cluster management with Kubernetes
Cluster management with KubernetesCluster management with Kubernetes
Cluster management with Kubernetes
 
Horizontal scaling with Galaxy
Horizontal scaling with GalaxyHorizontal scaling with Galaxy
Horizontal scaling with Galaxy
 
Kubernetes talk at DDDSydney 2017
Kubernetes talk at DDDSydney 2017Kubernetes talk at DDDSydney 2017
Kubernetes talk at DDDSydney 2017
 
Thoughts on heptio's ark - Contributors Meet 21st Sept 2018
Thoughts on heptio's ark - Contributors Meet 21st Sept 2018Thoughts on heptio's ark - Contributors Meet 21st Sept 2018
Thoughts on heptio's ark - Contributors Meet 21st Sept 2018
 
Webinar OpenEBS 0.8.1 Release presentation
Webinar   OpenEBS 0.8.1 Release presentationWebinar   OpenEBS 0.8.1 Release presentation
Webinar OpenEBS 0.8.1 Release presentation
 
Container Orchestration using Kubernetes
Container Orchestration using KubernetesContainer Orchestration using Kubernetes
Container Orchestration using Kubernetes
 
CN Asturias - Stateful application for kubernetes
CN Asturias -  Stateful application for kubernetes CN Asturias -  Stateful application for kubernetes
CN Asturias - Stateful application for kubernetes
 
2016 08-30 Kubernetes talk for Waterloo DevOps
2016 08-30 Kubernetes talk for Waterloo DevOps2016 08-30 Kubernetes talk for Waterloo DevOps
2016 08-30 Kubernetes talk for Waterloo DevOps
 
HP-UX 11i LVM Mirroring Features and Multi-threads by Dusan Baljevic
HP-UX 11i LVM Mirroring Features and Multi-threads by Dusan BaljevicHP-UX 11i LVM Mirroring Features and Multi-threads by Dusan Baljevic
HP-UX 11i LVM Mirroring Features and Multi-threads by Dusan Baljevic
 
(DVO313) Building Next-Generation Applications with Amazon ECS
(DVO313) Building Next-Generation Applications with Amazon ECS(DVO313) Building Next-Generation Applications with Amazon ECS
(DVO313) Building Next-Generation Applications with Amazon ECS
 
Testing kubernetes and_open_shift_at_scale_20170209
Testing kubernetes and_open_shift_at_scale_20170209Testing kubernetes and_open_shift_at_scale_20170209
Testing kubernetes and_open_shift_at_scale_20170209
 
Cloud Expo East 2013: Essential Open Source Software for Building the Open Cloud
Cloud Expo East 2013: Essential Open Source Software for Building the Open CloudCloud Expo East 2013: Essential Open Source Software for Building the Open Cloud
Cloud Expo East 2013: Essential Open Source Software for Building the Open Cloud
 
Volume Policies in OpenEBS 0.7
Volume Policies in OpenEBS 0.7Volume Policies in OpenEBS 0.7
Volume Policies in OpenEBS 0.7
 
Container orchestration in geo-distributed cloud computing platforms
Container orchestration in geo-distributed cloud computing platformsContainer orchestration in geo-distributed cloud computing platforms
Container orchestration in geo-distributed cloud computing platforms
 
Issues of OpenStack multi-region mode
Issues of OpenStack multi-region modeIssues of OpenStack multi-region mode
Issues of OpenStack multi-region mode
 
Stop Worrying and Keep Querying, Using Automated Multi-Region Disaster Recovery
Stop Worrying and Keep Querying, Using Automated Multi-Region Disaster RecoveryStop Worrying and Keep Querying, Using Automated Multi-Region Disaster Recovery
Stop Worrying and Keep Querying, Using Automated Multi-Region Disaster Recovery
 
FIWARE Tech Summit - Docker Swarm Secrets for Creating Great FIWARE Platforms
FIWARE Tech Summit - Docker Swarm Secrets for Creating Great FIWARE PlatformsFIWARE Tech Summit - Docker Swarm Secrets for Creating Great FIWARE Platforms
FIWARE Tech Summit - Docker Swarm Secrets for Creating Great FIWARE Platforms
 
[OSS Upstream Training] 5 open stack liberty_recap
[OSS Upstream Training] 5 open stack liberty_recap[OSS Upstream Training] 5 open stack liberty_recap
[OSS Upstream Training] 5 open stack liberty_recap
 
open stackliberty_recap_by_VietOpenStack
open stackliberty_recap_by_VietOpenStackopen stackliberty_recap_by_VietOpenStack
open stackliberty_recap_by_VietOpenStack
 
Advanced Access Control with Docker EE
Advanced Access Control with Docker EEAdvanced Access Control with Docker EE
Advanced Access Control with Docker EE
 

More from OpenEBS

Redis Conf 2019--Container Attached Storage for Redis
Redis Conf 2019--Container Attached Storage for RedisRedis Conf 2019--Container Attached Storage for Redis
Redis Conf 2019--Container Attached Storage for RedisOpenEBS
 
Replication and rebuild in cStor
Replication and rebuild in cStorReplication and rebuild in cStor
Replication and rebuild in cStorOpenEBS
 
Data Agility for Devops - OSI 2018
Data Agility for Devops - OSI 2018Data Agility for Devops - OSI 2018
Data Agility for Devops - OSI 2018OpenEBS
 
Introduction to cStor replica - Contributors Meet 5th Oct 2018
Introduction to cStor replica - Contributors Meet 5th Oct 2018Introduction to cStor replica - Contributors Meet 5th Oct 2018
Introduction to cStor replica - Contributors Meet 5th Oct 2018OpenEBS
 
Running OpenEBS on GPDs - Weekly Contributors Meet 28th Sep 2018
Running OpenEBS on GPDs - Weekly Contributors Meet 28th Sep 2018Running OpenEBS on GPDs - Weekly Contributors Meet 28th Sep 2018
Running OpenEBS on GPDs - Weekly Contributors Meet 28th Sep 2018OpenEBS
 
Container Attached Storage (CAS) with OpenEBS - SDC 2018
Container Attached Storage (CAS) with OpenEBS -  SDC 2018Container Attached Storage (CAS) with OpenEBS -  SDC 2018
Container Attached Storage (CAS) with OpenEBS - SDC 2018OpenEBS
 
Latest (storage IO) patterns for cloud-native applications
Latest (storage IO) patterns for cloud-native applications Latest (storage IO) patterns for cloud-native applications
Latest (storage IO) patterns for cloud-native applications OpenEBS
 
Kubernetes Monitoring and Troubleshooting using Weavescope- Kubernetes Meetup...
Kubernetes Monitoring and Troubleshooting using Weavescope- Kubernetes Meetup...Kubernetes Monitoring and Troubleshooting using Weavescope- Kubernetes Meetup...
Kubernetes Monitoring and Troubleshooting using Weavescope- Kubernetes Meetup...OpenEBS
 
OpenEBS Visualization and Monitoring using Weave-scope - Contributors Meet 1s...
OpenEBS Visualization and Monitoring using Weave-scope - Contributors Meet 1s...OpenEBS Visualization and Monitoring using Weave-scope - Contributors Meet 1s...
OpenEBS Visualization and Monitoring using Weave-scope - Contributors Meet 1s...OpenEBS
 
Container Attached Storage (CAS) with OpenEBS - Berlin Kubernetes Meetup - Ma...
Container Attached Storage (CAS) with OpenEBS - Berlin Kubernetes Meetup - Ma...Container Attached Storage (CAS) with OpenEBS - Berlin Kubernetes Meetup - Ma...
Container Attached Storage (CAS) with OpenEBS - Berlin Kubernetes Meetup - Ma...OpenEBS
 
BDD Testing Using Godog - Bangalore Golang Meetup # 32
BDD Testing Using Godog - Bangalore Golang Meetup # 32BDD Testing Using Godog - Bangalore Golang Meetup # 32
BDD Testing Using Godog - Bangalore Golang Meetup # 32OpenEBS
 
Container Attached Storage - Chennai Kubernetes Meetup #2 - April 21st 2018
Container Attached Storage - Chennai Kubernetes Meetup #2 - April 21st 2018Container Attached Storage - Chennai Kubernetes Meetup #2 - April 21st 2018
Container Attached Storage - Chennai Kubernetes Meetup #2 - April 21st 2018OpenEBS
 
Kubernetes Visualization-and-Monitoring-using-Weave-scope
Kubernetes Visualization-and-Monitoring-using-Weave-scopeKubernetes Visualization-and-Monitoring-using-Weave-scope
Kubernetes Visualization-and-Monitoring-using-Weave-scopeOpenEBS
 
OpenEBS CAS SDC India - 2018
OpenEBS CAS SDC India - 2018OpenEBS CAS SDC India - 2018
OpenEBS CAS SDC India - 2018OpenEBS
 
OpenEBS hangout #4
OpenEBS hangout #4OpenEBS hangout #4
OpenEBS hangout #4OpenEBS
 
Containerized Storage for Containers
Containerized Storage for ContainersContainerized Storage for Containers
Containerized Storage for ContainersOpenEBS
 
South Bay Kubernetes DevOps
South Bay Kubernetes DevOps South Bay Kubernetes DevOps
South Bay Kubernetes DevOps OpenEBS
 
Containerized Storage for Containers Meetup #3
Containerized Storage for Containers Meetup #3Containerized Storage for Containers Meetup #3
Containerized Storage for Containers Meetup #3OpenEBS
 
Containerized Storage for Containers- Kubernetes LA Meetup , July 2017
Containerized Storage for Containers- Kubernetes LA Meetup , July 2017Containerized Storage for Containers- Kubernetes LA Meetup , July 2017
Containerized Storage for Containers- Kubernetes LA Meetup , July 2017OpenEBS
 
Dynamic Instrumentation- OpenEBS Golang Meetup July 2017
Dynamic Instrumentation- OpenEBS Golang Meetup July 2017Dynamic Instrumentation- OpenEBS Golang Meetup July 2017
Dynamic Instrumentation- OpenEBS Golang Meetup July 2017OpenEBS
 

More from OpenEBS (20)

Redis Conf 2019--Container Attached Storage for Redis
Redis Conf 2019--Container Attached Storage for RedisRedis Conf 2019--Container Attached Storage for Redis
Redis Conf 2019--Container Attached Storage for Redis
 
Replication and rebuild in cStor
Replication and rebuild in cStorReplication and rebuild in cStor
Replication and rebuild in cStor
 
Data Agility for Devops - OSI 2018
Data Agility for Devops - OSI 2018Data Agility for Devops - OSI 2018
Data Agility for Devops - OSI 2018
 
Introduction to cStor replica - Contributors Meet 5th Oct 2018
Introduction to cStor replica - Contributors Meet 5th Oct 2018Introduction to cStor replica - Contributors Meet 5th Oct 2018
Introduction to cStor replica - Contributors Meet 5th Oct 2018
 
Running OpenEBS on GPDs - Weekly Contributors Meet 28th Sep 2018
Running OpenEBS on GPDs - Weekly Contributors Meet 28th Sep 2018Running OpenEBS on GPDs - Weekly Contributors Meet 28th Sep 2018
Running OpenEBS on GPDs - Weekly Contributors Meet 28th Sep 2018
 
Container Attached Storage (CAS) with OpenEBS - SDC 2018
Container Attached Storage (CAS) with OpenEBS -  SDC 2018Container Attached Storage (CAS) with OpenEBS -  SDC 2018
Container Attached Storage (CAS) with OpenEBS - SDC 2018
 
Latest (storage IO) patterns for cloud-native applications
Latest (storage IO) patterns for cloud-native applications Latest (storage IO) patterns for cloud-native applications
Latest (storage IO) patterns for cloud-native applications
 
Kubernetes Monitoring and Troubleshooting using Weavescope- Kubernetes Meetup...
Kubernetes Monitoring and Troubleshooting using Weavescope- Kubernetes Meetup...Kubernetes Monitoring and Troubleshooting using Weavescope- Kubernetes Meetup...
Kubernetes Monitoring and Troubleshooting using Weavescope- Kubernetes Meetup...
 
OpenEBS Visualization and Monitoring using Weave-scope - Contributors Meet 1s...
OpenEBS Visualization and Monitoring using Weave-scope - Contributors Meet 1s...OpenEBS Visualization and Monitoring using Weave-scope - Contributors Meet 1s...
OpenEBS Visualization and Monitoring using Weave-scope - Contributors Meet 1s...
 
Container Attached Storage (CAS) with OpenEBS - Berlin Kubernetes Meetup - Ma...
Container Attached Storage (CAS) with OpenEBS - Berlin Kubernetes Meetup - Ma...Container Attached Storage (CAS) with OpenEBS - Berlin Kubernetes Meetup - Ma...
Container Attached Storage (CAS) with OpenEBS - Berlin Kubernetes Meetup - Ma...
 
BDD Testing Using Godog - Bangalore Golang Meetup # 32
BDD Testing Using Godog - Bangalore Golang Meetup # 32BDD Testing Using Godog - Bangalore Golang Meetup # 32
BDD Testing Using Godog - Bangalore Golang Meetup # 32
 
Container Attached Storage - Chennai Kubernetes Meetup #2 - April 21st 2018
Container Attached Storage - Chennai Kubernetes Meetup #2 - April 21st 2018Container Attached Storage - Chennai Kubernetes Meetup #2 - April 21st 2018
Container Attached Storage - Chennai Kubernetes Meetup #2 - April 21st 2018
 
Kubernetes Visualization-and-Monitoring-using-Weave-scope
Kubernetes Visualization-and-Monitoring-using-Weave-scopeKubernetes Visualization-and-Monitoring-using-Weave-scope
Kubernetes Visualization-and-Monitoring-using-Weave-scope
 
OpenEBS CAS SDC India - 2018
OpenEBS CAS SDC India - 2018OpenEBS CAS SDC India - 2018
OpenEBS CAS SDC India - 2018
 
OpenEBS hangout #4
OpenEBS hangout #4OpenEBS hangout #4
OpenEBS hangout #4
 
Containerized Storage for Containers
Containerized Storage for ContainersContainerized Storage for Containers
Containerized Storage for Containers
 
South Bay Kubernetes DevOps
South Bay Kubernetes DevOps South Bay Kubernetes DevOps
South Bay Kubernetes DevOps
 
Containerized Storage for Containers Meetup #3
Containerized Storage for Containers Meetup #3Containerized Storage for Containers Meetup #3
Containerized Storage for Containers Meetup #3
 
Containerized Storage for Containers- Kubernetes LA Meetup , July 2017
Containerized Storage for Containers- Kubernetes LA Meetup , July 2017Containerized Storage for Containers- Kubernetes LA Meetup , July 2017
Containerized Storage for Containers- Kubernetes LA Meetup , July 2017
 
Dynamic Instrumentation- OpenEBS Golang Meetup July 2017
Dynamic Instrumentation- OpenEBS Golang Meetup July 2017Dynamic Instrumentation- OpenEBS Golang Meetup July 2017
Dynamic Instrumentation- OpenEBS Golang Meetup July 2017
 

Recently uploaded

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 

Recently uploaded (20)

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 

Deploying OpenEBS with Availability Zones

  • 1. Quick Intro - July 13 2018 As a scalable and resilient storage solution, that pods from any az can utilize
  • 2. ● Kubernetes - Fault Zones ● Setting up GKE cluster with nodes across zones ● Deploying a Application Volume with 3 Replicas across Zones ● Deploying a StatefulSet Application with 3 Volumes across Zones Agenda
  • 3. ● Always co-located in the same node or not! Affinity and Anti-Affinity https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ https://cloud.google.com/compute/docs/regions-zones/ topologyKey ● kubernetes.io/hostname ● failure-domain.beta.kubernetes.io/zone ● failure-domain.beta.kubernetes.io/region ● beta.kubernetes.io/instance-type ● beta.kubernetes.io/os ● beta.kubernetes.io/arch podAntiAffinity: … : - labelSelector: matchLabels: app : application1 topologyKey: failure-domain.beta.kubernetes.io/zone
  • 4. Cluster with nodes Across Zones us-central-1a node1 node2 node3 us-central-1b node4 node5 node6 us-central-1c node7 node8 node9 kubectl get nodes --show-labels
  • 5. Cluster with nodes Across Zones kubectl get nodes --show-labels
  • 6. Cluster with nodes Across Zones kiran_mova@kmova-dev:~$ kubectl get nodes NAME STATUS ROLES AGE VERSION gke-kmova-helm-default-pool-1fd63be5-3w0j Ready <none> 9h v1.10.4-gke.2 gke-kmova-helm-default-pool-1fd63be5-gnb8 Ready <none> 9h v1.10.4-gke.2 gke-kmova-helm-default-pool-86bcd4aa-lmkm Ready <none> 9h v1.10.4-gke.2 gke-kmova-helm-default-pool-86bcd4aa-sjb4 Ready <none> 9h v1.10.4-gke.2 gke-kmova-helm-default-pool-ecaeb5c5-r5s6 Ready <none> 9h v1.10.4-gke.2 gke-kmova-helm-default-pool-ecaeb5c5-v78j Ready <none> 9h v1.10.4-gke.2
  • 7. Cluster with nodes Across Zones kiran_mova@kmova-dev:~$ kubectl get nodes --show-labels NAME STATUS ROLES AGE VERSION LABELS gke-kmova-helm-default-pool-1fd63be5-3w0j Ready <none> 9h v1.10.4-gke.2 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/fluentd-ds-ready=true,beta.kubernetes.io/in stance-type=n1-standard-2,beta.kubernetes.io/os=linux,cloud.google.com/gke-nodepool=default- pool,failure-domain.beta.kubernetes.io/region=us-central1,failure-domain.beta.kubernetes.io/ zone=us-central1-a,kubernetes.io/hostname=gke-kmova-helm-default-pool-1fd63be5-3w0j gke-kmova-helm-default-pool-86bcd4aa-lmkm Ready <none> 9h v1.10.4-gke.2 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/fluentd-ds-ready=true,beta.kubernetes.io/in stance-type=n1-standard-2,beta.kubernetes.io/os=linux,cloud.google.com/gke-nodepool=default- pool,failure-domain.beta.kubernetes.io/region=us-central1,failure-domain.beta.kubernetes.io/ zone=us-central1-b,kubernetes.io/hostname=gke-kmova-helm-default-pool-86bcd4aa-lmkm
  • 8. Scenario 1 : Deploy replicas across AZ us-central-1a us-central-1b us-central-1c v1 a1 v1 v1 ● Application (a1) is deployed in one of the availability zones, while the data copies (replica=3) are maintained across different availability zones. ● (Optional) Some nodes in a zone can be designated as storage nodes where the copies are maintained.
  • 9. Scenario 1 : Deploy replicas across AZ us-central-1a us-central-1b us-central-1c v1 a1 v1 v1 ● When one of the zones where application is running is gone, the application (a1) moves to one of the other zones and can access the data from the available replicas. a1
  • 10. Scenario 1 : Deploy replicas across AZ us-central-1a us-central-1b us-central-1c v1 v1 v1 ● When either the older zone is made available or a new zone is added back to the cluster, a new replica for the volume (v1) is configured back by OpenEBS. a1
  • 11. Scenario 1 : Deploy replicas across AZ kind: PersistentVolumeClaim apiVersion: v1 metadata: name: demo-vol1-claim labels: "volumeprovisioner.mapi.openebs.io/replica-topology-key-domain": "failure-domain.beta.kubernetes.io" "volumeprovisioner.mapi.openebs.io/replica-topology-key-type": "zone" spec: storageClassName: openebs-standard accessModes: - ReadWriteOnce resources: requests: storage: 4G - labelSelector: matchLabels: vsm: pvc-a246b23d-85e3-11e8-9ef7-42010a800016 openebs/replica: jiva-replica topologyKey: failure-domain.beta.kubernetes.io/zone
  • 12. Scenario 2 : Deploy volumes of STS across AZ us-central-1a us-central-1b us-central-1c v1 v2 v3 ● A statefulset application like MongoDB can be configured to run 3 instances ( s1, s2,s3), with their corresponding volumes (v1, v2, v3) provisioned in different Availability Zone. ● (Optional) Volumes for a Statefulset like Mongo can be configured with single replica - since application can handle replication. ● (Optional) The stateful instances themself (s1, s2, s3) need not be tied to a zone. s2 s3s1
  • 13. Scenario 2 : Deploy volumes of STS across AZ apiVersion: apps/v1beta1 kind: StatefulSet metadata: name: mongo spec: serviceName: "mongo" replicas: 2 template: metadata: labels: role: mongo environment: test "volumeprovisioner.mapi.openebs.io/application": "mongo-app1" "volumeprovisioner.mapi.openebs.io/replica-topology-key-domain": "failure-domain.beta.kubernetes.io" "volumeprovisioner.mapi.openebs.io/replica-topology-key-type": "zone" spec: - labelSelector: matchLabels: application: mongo-app1 openebs/replica: jiva-replica topologyKey: failure-domain.beta.kubernetes.io/zone
  • 14. Show me the code! https://github.com/openebs/maya/pull/380 https://github.com/openebs/maya/pull/390