SlideShare a Scribd company logo
1 of 32
Download to read offline
Anusha Ragunathan
Senior Software Engineer, Docker Inc.
Persistent Storage for Windows
workloads in Kubernetes
Deep Debroy
Engineering Manager, Docker Inc.
o Kubernetes and Windows
o Persistent Storage in Kubernetes
o Storage Plugins in Windows
Agenda
Kubernetes &
Windows
Kubernetes and Windows
o Windows support is stable in Kubernetes v1.14
o Worker nodes need to run Windows Server 2019
o Kubernetes master nodes need to be Linux
o Docker engine is the supported container runtime
Kubernetes and Windows
q Active Directory integration through GMSA
o Alpha in v1.14
q Support for ContainerD through CRI
o In design phase
q Support for multiple CNI plugins
o Azure CNI, Docker CNI, Flannel
q Persistent Storage
Kubernetes Architecture
Kubernetes Master
Scheduler
API Server
Controller
Node
Kubelet
Kube-proxy
CNI/CRI/CSI plugins
Cloud Datacenter
Network Fabric
Datacenter
Storage Fabric
Node
Kubelet
Kube-proxy
CNI/CRI/CSI plugins
Node
Kubelet
Kube-proxy
CNI/CRI/CSI plugins
q Cluster-wide controller loops in master nodes
o PV controller
o Attach/Detach controller
o Node controller
q OS-specific logic in worker nodes
o Kubelet
o Container runtimes
o Flexvolume and CSI node plugins
Key components of Kubernetes
Persistent storage in
Kubernetes
Kubernetes Jargon
● A storage claim made by a
user
● Just like how Pods consume
Compute resources, PVC
consume Volume resources.
● Just like how Pods can
request specific levels CPU &
memory, PVCs can request
specific sizes and access
modes.
● Pods reference PVC
Persistent Volume
Claim (PVC)
Persistent Volume (PV)
● Storage resources in a cluster
● Lifecycle independent of a Pod
Pods
● A set of running containers
representing a workload
Lifeof a PV
CreateVolume
AttachVolume (to a Node)
UnMountVolume (from Pod)
MountVolume (to Pod and
format if necessary)
DetachVolume (from Node)
DeleteVolume (after use)
Storage Service
PodPod PodPod
PodPod
● Provisioning is the creation/allocation of Persistent Volumes
● Static and Dynamic Provisioning
○ Static: pre creation of PV
○ Dynamic: automatic creation of PV based on size,
permissions requested.
● Dynamic Provisioning through Storage Classes
○ Provides a way for Admins to describe “classes” of storage
available. Eg, different performance SLAs, value-add features
such as replication, backup, etc
○ Backed by a provisioner
PV Provisioning
Provisioning Workflow (static)
1. Cluster Admin
pre-provisions
volumes and
registers PVs
2. Developer
claims a PV
from the pool
4. Developer
references the
claim in a Pod
3. Controller BINDS
PV to PVC
Pool of Persistent Volumes
NFS PV iSCSI PV EBS PV
Claim
`Claim
ClaimClaim
Pod
Claim
5. Controller inspects
Claim and MOUNTs
the PV into the Pod.
Provisioning Workflow (dynamic)
1. Cluster Admin
registers
Storage Classes
2. Developer defines a
claim by referring a
storage class
5. Developer
references the
claim in a Pod
4. Controller BINDS
PV to PVC
6. Controller
inspects Claim
and MOUNTs the
PV into the Pod.
SSD
Pod
Claim
Claim
Persistent
Volumes
Storage
Classes
Slow
Fast
3. Controller
provisions
volumes
on-demand
• In-tree volume plugins
• Flexvolume plugins
• CSI plugins
• External provisioners
Persistent storage interfaces
Plugin Type Pros Cons Future
InTree
No extra installation
necessary
Release cycles tied to
k8s releases
Superseded by CSI
External
Provisioner
Code maintained
independently
Limited customization for
attach and mount ops
Superseded by CSI
FlexVolume
Customizable code for
attach/mount maintained
independently
Host based exec model
reduces portability.
Plugin lifecycle is non-
native to k8s.
Deprecated for Linux
Will be used for Windows
CSI
Highly customizable code
maintained independently
and based on standard
Requires installation and
configuration
The future of storage
plugins
Persistent Storage Interfaces
Storage Plugins in
Windows
Considerations for Windows
q Disk device and Volume enumeration interfaces
o Object based (rather than file based)
q File System support
o NTFS for block
o SMB for shared
q Powershell cmdlets/scripts for many actions
In-tree storage support for Windows
q Core support in kubelet.exe to:
o Partition disk and format volumes with NTFS
o Link volumes to container's file system
o Link SMB shares to container's file system
In-tree plugins for Windows
q File based cloud volumes:
o Azure File through SMB
q Block based cloud volumes with attach support:
o Azure Disk
o GCE PD
o EBS [WIP]
In tree Plugin Architecture
Worker Worker
Master
Storage Service
Kubelet Kubelet
AttachVolum
e
DetachVolu
me
CreateVolum
e
DeleteVolum
e
Kube Core Components
MountVolume
UnmountVolume
AttachVolume
DetachVolume
CreateVolume
Delete Volume
In-tree
Plugins
PV Claim
API Server
Demo 1: In-tree storage with Azure File
Worker Worker
Master
Azure File Storage
Flexvolume plugins for Windows
q Attach/mount pre-provisioned volumes over:
o SMB (shared file system)
o iSCSI (dedicated block)
q Dynamic provisioning with external provisioners:
o Set PV source to supported Flexvolume plugins
ExternalProvisionerArchitecture
Worker Worker
Master
Storage Service
Kubelet Kubelet
External Provisioner
(StatefulSet/Deployment Pod)
Kube Core Components
External components
API Server
MountVolume
UnmountVolume
AttachVolume
DetachVolume
CreateVolume
Delete Volume
In-tree Plugins
PV Claim
PV
FlexVolume Plugin
Demo 2: External Provisioning + iSCSI
Worker Worker
Master
ISCSI Target Server
iSCSI LUN
CSI plugins for Windows
q CSI support for Windows is a Work in Progress.
q No privileged support for containers in Windows yet
q Options for deploying plugin
o Host process
o Container with privileged host-based proxy
Summary
q In-tree and Flexvolume plugins ready to be used.
q External provisioners coming soon.
q CSI plugins for Windows node plugins in future.
What's next
Support for Windows workloads in Kubernetes clusters
coming in Docker Enterprise Tech Preview!!
Thank You
Q&A
Backup slides
CSI node plugins as host process
q Plugin process runs directly on host
q Handles plugin registration with kubelet
o Cannot use node driver registrar sidecar
o Other side cars can be scheduled on Linux
masters.
q Independent life-cycle and log management
CSI node plugins as container
q Plugin process packaged and deployed as containers
q Use node driver registrar for plugin registration
q Life-cycle and log management through Kubernetes
q Requires a privileged proxy in host for operations
CSIPlugins
Worker Worker
Storage Service
Kubelet Kubelet
External
Provisioner
(Deployment/
StatefulSet)
CreateVolume
DeleteVolume
External
Attacher
(Deployment/
StatefulSet)
CSI Controller
(Deployment/
StatefulSet)
CSI Node
(DaemonSet)
Kube Core Components Kube Sidecar containers CSI plugin components
ControllerPublish
ControllerUnPublish
Master
API Server
NodeStage/NodeUnstage
NodePublish/NodeUnpublish
PV
PV Claim
volume
attachment
CSI
InTree

More Related Content

What's hot

Kubernetes in Docker
Kubernetes in DockerKubernetes in Docker
Kubernetes in DockerDocker, Inc.
 
DCEU 18: Docker for Windows Containers and Kubernetes
DCEU 18: Docker for Windows Containers and KubernetesDCEU 18: Docker for Windows Containers and Kubernetes
DCEU 18: Docker for Windows Containers and KubernetesDocker, Inc.
 
Docker London Meetup: Docker Engine Evolution
Docker London Meetup: Docker Engine EvolutionDocker London Meetup: Docker Engine Evolution
Docker London Meetup: Docker Engine EvolutionPhil Estes
 
The state of containerd
The state of containerdThe state of containerd
The state of containerdDocker, Inc.
 
Enabling Security via Container Runtimes
Enabling Security via Container RuntimesEnabling Security via Container Runtimes
Enabling Security via Container RuntimesPhil Estes
 
Kubernetes and Hybrid Deployments
Kubernetes and Hybrid DeploymentsKubernetes and Hybrid Deployments
Kubernetes and Hybrid DeploymentsSandeep Parikh
 
Using Docker EE to Scale Operational Intelligence at Splunk
Using Docker EE to Scale Operational Intelligence at SplunkUsing Docker EE to Scale Operational Intelligence at Splunk
Using Docker EE to Scale Operational Intelligence at SplunkDocker, Inc.
 
Integration kubernetes with docker private registry
Integration kubernetes with docker private registryIntegration kubernetes with docker private registry
Integration kubernetes with docker private registryHungWei Chiu
 
Containers in production with docker, coreos, kubernetes and apache stratos
Containers in production with docker, coreos, kubernetes and apache stratosContainers in production with docker, coreos, kubernetes and apache stratos
Containers in production with docker, coreos, kubernetes and apache stratosWSO2
 
Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1
Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1
Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1Etsuji Nakai
 
Kubernetes persistence 101
Kubernetes persistence 101Kubernetes persistence 101
Kubernetes persistence 101Kublr
 
Apache Stratos 4.1.0 Architecture
Apache Stratos 4.1.0 ArchitectureApache Stratos 4.1.0 Architecture
Apache Stratos 4.1.0 ArchitectureImesh Gunaratne
 
Let's Try Every CRI Runtime Available for Kubernetes
Let's Try Every CRI Runtime Available for KubernetesLet's Try Every CRI Runtime Available for Kubernetes
Let's Try Every CRI Runtime Available for KubernetesPhil Estes
 
Securing Containerized Applications: A Primer
Securing Containerized Applications: A PrimerSecuring Containerized Applications: A Primer
Securing Containerized Applications: A PrimerPhil Estes
 
Cloud Native TLV Meetup: Securing Containerized Applications Primer
Cloud Native TLV Meetup: Securing Containerized Applications PrimerCloud Native TLV Meetup: Securing Containerized Applications Primer
Cloud Native TLV Meetup: Securing Containerized Applications PrimerPhil Estes
 
DCEU 18: Provisioning and Managing Storage for Docker Containers
DCEU 18: Provisioning and Managing Storage for Docker ContainersDCEU 18: Provisioning and Managing Storage for Docker Containers
DCEU 18: Provisioning and Managing Storage for Docker ContainersDocker, Inc.
 
Embedding Containerd For Fun and Profit
Embedding Containerd For Fun and ProfitEmbedding Containerd For Fun and Profit
Embedding Containerd For Fun and ProfitPhil Estes
 
Bucketbench: Benchmarking Container Runtime Performance
Bucketbench: Benchmarking Container Runtime PerformanceBucketbench: Benchmarking Container Runtime Performance
Bucketbench: Benchmarking Container Runtime PerformancePhil Estes
 
Kubernetes Architecture and Introduction – Paris Kubernetes Meetup
Kubernetes Architecture and Introduction – Paris Kubernetes MeetupKubernetes Architecture and Introduction – Paris Kubernetes Meetup
Kubernetes Architecture and Introduction – Paris Kubernetes MeetupStefan Schimanski
 

What's hot (20)

Kubernetes in Docker
Kubernetes in DockerKubernetes in Docker
Kubernetes in Docker
 
DCEU 18: Docker for Windows Containers and Kubernetes
DCEU 18: Docker for Windows Containers and KubernetesDCEU 18: Docker for Windows Containers and Kubernetes
DCEU 18: Docker for Windows Containers and Kubernetes
 
Docker London Meetup: Docker Engine Evolution
Docker London Meetup: Docker Engine EvolutionDocker London Meetup: Docker Engine Evolution
Docker London Meetup: Docker Engine Evolution
 
The state of containerd
The state of containerdThe state of containerd
The state of containerd
 
Enabling Security via Container Runtimes
Enabling Security via Container RuntimesEnabling Security via Container Runtimes
Enabling Security via Container Runtimes
 
Kubernetes and Hybrid Deployments
Kubernetes and Hybrid DeploymentsKubernetes and Hybrid Deployments
Kubernetes and Hybrid Deployments
 
Using Docker EE to Scale Operational Intelligence at Splunk
Using Docker EE to Scale Operational Intelligence at SplunkUsing Docker EE to Scale Operational Intelligence at Splunk
Using Docker EE to Scale Operational Intelligence at Splunk
 
Integration kubernetes with docker private registry
Integration kubernetes with docker private registryIntegration kubernetes with docker private registry
Integration kubernetes with docker private registry
 
Containers in production with docker, coreos, kubernetes and apache stratos
Containers in production with docker, coreos, kubernetes and apache stratosContainers in production with docker, coreos, kubernetes and apache stratos
Containers in production with docker, coreos, kubernetes and apache stratos
 
Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1
Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1
Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1
 
Kubernetes persistence 101
Kubernetes persistence 101Kubernetes persistence 101
Kubernetes persistence 101
 
Apache Stratos 4.1.0 Architecture
Apache Stratos 4.1.0 ArchitectureApache Stratos 4.1.0 Architecture
Apache Stratos 4.1.0 Architecture
 
Let's Try Every CRI Runtime Available for Kubernetes
Let's Try Every CRI Runtime Available for KubernetesLet's Try Every CRI Runtime Available for Kubernetes
Let's Try Every CRI Runtime Available for Kubernetes
 
Securing Containerized Applications: A Primer
Securing Containerized Applications: A PrimerSecuring Containerized Applications: A Primer
Securing Containerized Applications: A Primer
 
Cloud Native TLV Meetup: Securing Containerized Applications Primer
Cloud Native TLV Meetup: Securing Containerized Applications PrimerCloud Native TLV Meetup: Securing Containerized Applications Primer
Cloud Native TLV Meetup: Securing Containerized Applications Primer
 
DCEU 18: Provisioning and Managing Storage for Docker Containers
DCEU 18: Provisioning and Managing Storage for Docker ContainersDCEU 18: Provisioning and Managing Storage for Docker Containers
DCEU 18: Provisioning and Managing Storage for Docker Containers
 
Embedding Containerd For Fun and Profit
Embedding Containerd For Fun and ProfitEmbedding Containerd For Fun and Profit
Embedding Containerd For Fun and Profit
 
Bucketbench: Benchmarking Container Runtime Performance
Bucketbench: Benchmarking Container Runtime PerformanceBucketbench: Benchmarking Container Runtime Performance
Bucketbench: Benchmarking Container Runtime Performance
 
Kubernetes Architecture and Introduction – Paris Kubernetes Meetup
Kubernetes Architecture and Introduction – Paris Kubernetes MeetupKubernetes Architecture and Introduction – Paris Kubernetes Meetup
Kubernetes Architecture and Introduction – Paris Kubernetes Meetup
 
Introduction to OCI Image Technologies Serving Container
Introduction to OCI Image Technologies Serving ContainerIntroduction to OCI Image Technologies Serving Container
Introduction to OCI Image Technologies Serving Container
 

Similar to Storage for Windows workloads in Kubernetes

Introduction to Container Storage Interface (CSI)
Introduction to Container Storage Interface (CSI)Introduction to Container Storage Interface (CSI)
Introduction to Container Storage Interface (CSI)Idan Atias
 
Container and Cloud Native Application: What is VMware doing in this space? -...
Container and Cloud Native Application: What is VMware doing in this space? -...Container and Cloud Native Application: What is VMware doing in this space? -...
Container and Cloud Native Application: What is VMware doing in this space? -...gguglie
 
04_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
04_Azure Kubernetes Service: Basic Practices for Developers_GAB201904_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
04_Azure Kubernetes Service: Basic Practices for Developers_GAB2019Kumton Suttiraksiri
 
Containarized Gluster Storage in Kubernetes
Containarized Gluster Storage in KubernetesContainarized Gluster Storage in Kubernetes
Containarized Gluster Storage in KubernetesNeependra Khare
 
MongoDB World 2018: Partner Talk - Red Hat: Deploying to Enterprise Kubernetes
MongoDB World 2018: Partner Talk - Red Hat: Deploying to Enterprise KubernetesMongoDB World 2018: Partner Talk - Red Hat: Deploying to Enterprise Kubernetes
MongoDB World 2018: Partner Talk - Red Hat: Deploying to Enterprise KubernetesMongoDB
 
20171122 aws usergrp_coretech-spn-cicd-aws-v01
20171122 aws usergrp_coretech-spn-cicd-aws-v0120171122 aws usergrp_coretech-spn-cicd-aws-v01
20171122 aws usergrp_coretech-spn-cicd-aws-v01Scott Miao
 
On demand-block-storage-for-docker
On demand-block-storage-for-dockerOn demand-block-storage-for-docker
On demand-block-storage-for-dockerJangseon Ryu
 
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMwareVMUG IT
 
Build optimization mechanisms in GitLab and Docker
Build optimization mechanisms in GitLab and DockerBuild optimization mechanisms in GitLab and Docker
Build optimization mechanisms in GitLab and DockerDmytro Patkovskyi
 
Presentation v cat 3.0 - architecture to implementation
Presentation   v cat 3.0 - architecture to implementationPresentation   v cat 3.0 - architecture to implementation
Presentation v cat 3.0 - architecture to implementationsolarisyourep
 
WebSphere and Docker
WebSphere and DockerWebSphere and Docker
WebSphere and DockerDavid Currie
 
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...Oleg Shalygin
 
Red Hat Storage Day LA - Persistent Storage for Linux Containers
Red Hat Storage Day LA - Persistent Storage for Linux Containers Red Hat Storage Day LA - Persistent Storage for Linux Containers
Red Hat Storage Day LA - Persistent Storage for Linux Containers Red_Hat_Storage
 
Kata Container - The Security of VM and The Speed of Container | Yuntong Jin
Kata Container - The Security of VM and The Speed of Container | Yuntong Jin	Kata Container - The Security of VM and The Speed of Container | Yuntong Jin
Kata Container - The Security of VM and The Speed of Container | Yuntong Jin Vietnam Open Infrastructure User Group
 
Neues aus dem Docker-Universum
Neues aus dem Docker-UniversumNeues aus dem Docker-Universum
Neues aus dem Docker-UniversumNicholas Dille
 
Tectonic Summit 2016: Brandon Philips, CTO of CoreOS, Keynote
Tectonic Summit 2016: Brandon Philips, CTO of CoreOS, KeynoteTectonic Summit 2016: Brandon Philips, CTO of CoreOS, Keynote
Tectonic Summit 2016: Brandon Philips, CTO of CoreOS, KeynoteCoreOS
 
Gordon's secret session kubernetes on windows
Gordon's secret session   kubernetes on windowsGordon's secret session   kubernetes on windows
Gordon's secret session kubernetes on windowsDocker, Inc.
 
Introduction to Kubernetes Workshop
Introduction to Kubernetes WorkshopIntroduction to Kubernetes Workshop
Introduction to Kubernetes WorkshopBob Killen
 
containerD
containerDcontainerD
containerDstrikr .
 
vSphere with Tanzu Tech Overview 7.0 U1 (1).pptx
vSphere with Tanzu Tech Overview 7.0 U1 (1).pptxvSphere with Tanzu Tech Overview 7.0 U1 (1).pptx
vSphere with Tanzu Tech Overview 7.0 U1 (1).pptxhokismen
 

Similar to Storage for Windows workloads in Kubernetes (20)

Introduction to Container Storage Interface (CSI)
Introduction to Container Storage Interface (CSI)Introduction to Container Storage Interface (CSI)
Introduction to Container Storage Interface (CSI)
 
Container and Cloud Native Application: What is VMware doing in this space? -...
Container and Cloud Native Application: What is VMware doing in this space? -...Container and Cloud Native Application: What is VMware doing in this space? -...
Container and Cloud Native Application: What is VMware doing in this space? -...
 
04_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
04_Azure Kubernetes Service: Basic Practices for Developers_GAB201904_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
04_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
 
Containarized Gluster Storage in Kubernetes
Containarized Gluster Storage in KubernetesContainarized Gluster Storage in Kubernetes
Containarized Gluster Storage in Kubernetes
 
MongoDB World 2018: Partner Talk - Red Hat: Deploying to Enterprise Kubernetes
MongoDB World 2018: Partner Talk - Red Hat: Deploying to Enterprise KubernetesMongoDB World 2018: Partner Talk - Red Hat: Deploying to Enterprise Kubernetes
MongoDB World 2018: Partner Talk - Red Hat: Deploying to Enterprise Kubernetes
 
20171122 aws usergrp_coretech-spn-cicd-aws-v01
20171122 aws usergrp_coretech-spn-cicd-aws-v0120171122 aws usergrp_coretech-spn-cicd-aws-v01
20171122 aws usergrp_coretech-spn-cicd-aws-v01
 
On demand-block-storage-for-docker
On demand-block-storage-for-dockerOn demand-block-storage-for-docker
On demand-block-storage-for-docker
 
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
 
Build optimization mechanisms in GitLab and Docker
Build optimization mechanisms in GitLab and DockerBuild optimization mechanisms in GitLab and Docker
Build optimization mechanisms in GitLab and Docker
 
Presentation v cat 3.0 - architecture to implementation
Presentation   v cat 3.0 - architecture to implementationPresentation   v cat 3.0 - architecture to implementation
Presentation v cat 3.0 - architecture to implementation
 
WebSphere and Docker
WebSphere and DockerWebSphere and Docker
WebSphere and Docker
 
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
 
Red Hat Storage Day LA - Persistent Storage for Linux Containers
Red Hat Storage Day LA - Persistent Storage for Linux Containers Red Hat Storage Day LA - Persistent Storage for Linux Containers
Red Hat Storage Day LA - Persistent Storage for Linux Containers
 
Kata Container - The Security of VM and The Speed of Container | Yuntong Jin
Kata Container - The Security of VM and The Speed of Container | Yuntong Jin	Kata Container - The Security of VM and The Speed of Container | Yuntong Jin
Kata Container - The Security of VM and The Speed of Container | Yuntong Jin
 
Neues aus dem Docker-Universum
Neues aus dem Docker-UniversumNeues aus dem Docker-Universum
Neues aus dem Docker-Universum
 
Tectonic Summit 2016: Brandon Philips, CTO of CoreOS, Keynote
Tectonic Summit 2016: Brandon Philips, CTO of CoreOS, KeynoteTectonic Summit 2016: Brandon Philips, CTO of CoreOS, Keynote
Tectonic Summit 2016: Brandon Philips, CTO of CoreOS, Keynote
 
Gordon's secret session kubernetes on windows
Gordon's secret session   kubernetes on windowsGordon's secret session   kubernetes on windows
Gordon's secret session kubernetes on windows
 
Introduction to Kubernetes Workshop
Introduction to Kubernetes WorkshopIntroduction to Kubernetes Workshop
Introduction to Kubernetes Workshop
 
containerD
containerDcontainerD
containerD
 
vSphere with Tanzu Tech Overview 7.0 U1 (1).pptx
vSphere with Tanzu Tech Overview 7.0 U1 (1).pptxvSphere with Tanzu Tech Overview 7.0 U1 (1).pptx
vSphere with Tanzu Tech Overview 7.0 U1 (1).pptx
 

Recently uploaded

Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxDeepakSakkari2
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024Mark Billinghurst
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
power system scada applications and uses
power system scada applications and usespower system scada applications and uses
power system scada applications and usesDevarapalliHaritha
 
microprocessor 8085 and its interfacing
microprocessor 8085  and its interfacingmicroprocessor 8085  and its interfacing
microprocessor 8085 and its interfacingjaychoudhary37
 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.eptoze12
 
Heart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptxHeart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptxPoojaBan
 
Application of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptxApplication of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptx959SahilShah
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130Suhani Kapoor
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130Suhani Kapoor
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionDr.Costas Sachpazis
 
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
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSCAESB
 
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2RajaP95
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024hassan khalil
 
Introduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptxIntroduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptxvipinkmenon1
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escortsranjana rawat
 
Artificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxArtificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxbritheesh05
 
chaitra-1.pptx fake news detection using machine learning
chaitra-1.pptx  fake news detection using machine learningchaitra-1.pptx  fake news detection using machine learning
chaitra-1.pptx fake news detection using machine learningmisbanausheenparvam
 

Recently uploaded (20)

Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptx
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
power system scada applications and uses
power system scada applications and usespower system scada applications and uses
power system scada applications and uses
 
microprocessor 8085 and its interfacing
microprocessor 8085  and its interfacingmicroprocessor 8085  and its interfacing
microprocessor 8085 and its interfacing
 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.
 
Heart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptxHeart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptx
 
Application of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptxApplication of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptx
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
 
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...
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentation
 
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024
 
Introduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptxIntroduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptx
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
 
Artificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxArtificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptx
 
chaitra-1.pptx fake news detection using machine learning
chaitra-1.pptx  fake news detection using machine learningchaitra-1.pptx  fake news detection using machine learning
chaitra-1.pptx fake news detection using machine learning
 

Storage for Windows workloads in Kubernetes

  • 1. Anusha Ragunathan Senior Software Engineer, Docker Inc. Persistent Storage for Windows workloads in Kubernetes Deep Debroy Engineering Manager, Docker Inc.
  • 2. o Kubernetes and Windows o Persistent Storage in Kubernetes o Storage Plugins in Windows Agenda
  • 4. Kubernetes and Windows o Windows support is stable in Kubernetes v1.14 o Worker nodes need to run Windows Server 2019 o Kubernetes master nodes need to be Linux o Docker engine is the supported container runtime
  • 5. Kubernetes and Windows q Active Directory integration through GMSA o Alpha in v1.14 q Support for ContainerD through CRI o In design phase q Support for multiple CNI plugins o Azure CNI, Docker CNI, Flannel q Persistent Storage
  • 6. Kubernetes Architecture Kubernetes Master Scheduler API Server Controller Node Kubelet Kube-proxy CNI/CRI/CSI plugins Cloud Datacenter Network Fabric Datacenter Storage Fabric Node Kubelet Kube-proxy CNI/CRI/CSI plugins Node Kubelet Kube-proxy CNI/CRI/CSI plugins
  • 7. q Cluster-wide controller loops in master nodes o PV controller o Attach/Detach controller o Node controller q OS-specific logic in worker nodes o Kubelet o Container runtimes o Flexvolume and CSI node plugins Key components of Kubernetes
  • 9. Kubernetes Jargon ● A storage claim made by a user ● Just like how Pods consume Compute resources, PVC consume Volume resources. ● Just like how Pods can request specific levels CPU & memory, PVCs can request specific sizes and access modes. ● Pods reference PVC Persistent Volume Claim (PVC) Persistent Volume (PV) ● Storage resources in a cluster ● Lifecycle independent of a Pod Pods ● A set of running containers representing a workload
  • 10. Lifeof a PV CreateVolume AttachVolume (to a Node) UnMountVolume (from Pod) MountVolume (to Pod and format if necessary) DetachVolume (from Node) DeleteVolume (after use) Storage Service PodPod PodPod PodPod
  • 11. ● Provisioning is the creation/allocation of Persistent Volumes ● Static and Dynamic Provisioning ○ Static: pre creation of PV ○ Dynamic: automatic creation of PV based on size, permissions requested. ● Dynamic Provisioning through Storage Classes ○ Provides a way for Admins to describe “classes” of storage available. Eg, different performance SLAs, value-add features such as replication, backup, etc ○ Backed by a provisioner PV Provisioning
  • 12. Provisioning Workflow (static) 1. Cluster Admin pre-provisions volumes and registers PVs 2. Developer claims a PV from the pool 4. Developer references the claim in a Pod 3. Controller BINDS PV to PVC Pool of Persistent Volumes NFS PV iSCSI PV EBS PV Claim `Claim ClaimClaim Pod Claim 5. Controller inspects Claim and MOUNTs the PV into the Pod.
  • 13. Provisioning Workflow (dynamic) 1. Cluster Admin registers Storage Classes 2. Developer defines a claim by referring a storage class 5. Developer references the claim in a Pod 4. Controller BINDS PV to PVC 6. Controller inspects Claim and MOUNTs the PV into the Pod. SSD Pod Claim Claim Persistent Volumes Storage Classes Slow Fast 3. Controller provisions volumes on-demand
  • 14. • In-tree volume plugins • Flexvolume plugins • CSI plugins • External provisioners Persistent storage interfaces
  • 15. Plugin Type Pros Cons Future InTree No extra installation necessary Release cycles tied to k8s releases Superseded by CSI External Provisioner Code maintained independently Limited customization for attach and mount ops Superseded by CSI FlexVolume Customizable code for attach/mount maintained independently Host based exec model reduces portability. Plugin lifecycle is non- native to k8s. Deprecated for Linux Will be used for Windows CSI Highly customizable code maintained independently and based on standard Requires installation and configuration The future of storage plugins Persistent Storage Interfaces
  • 17. Considerations for Windows q Disk device and Volume enumeration interfaces o Object based (rather than file based) q File System support o NTFS for block o SMB for shared q Powershell cmdlets/scripts for many actions
  • 18. In-tree storage support for Windows q Core support in kubelet.exe to: o Partition disk and format volumes with NTFS o Link volumes to container's file system o Link SMB shares to container's file system
  • 19. In-tree plugins for Windows q File based cloud volumes: o Azure File through SMB q Block based cloud volumes with attach support: o Azure Disk o GCE PD o EBS [WIP]
  • 20. In tree Plugin Architecture Worker Worker Master Storage Service Kubelet Kubelet AttachVolum e DetachVolu me CreateVolum e DeleteVolum e Kube Core Components MountVolume UnmountVolume AttachVolume DetachVolume CreateVolume Delete Volume In-tree Plugins PV Claim API Server
  • 21. Demo 1: In-tree storage with Azure File Worker Worker Master Azure File Storage
  • 22. Flexvolume plugins for Windows q Attach/mount pre-provisioned volumes over: o SMB (shared file system) o iSCSI (dedicated block) q Dynamic provisioning with external provisioners: o Set PV source to supported Flexvolume plugins
  • 23. ExternalProvisionerArchitecture Worker Worker Master Storage Service Kubelet Kubelet External Provisioner (StatefulSet/Deployment Pod) Kube Core Components External components API Server MountVolume UnmountVolume AttachVolume DetachVolume CreateVolume Delete Volume In-tree Plugins PV Claim PV FlexVolume Plugin
  • 24. Demo 2: External Provisioning + iSCSI Worker Worker Master ISCSI Target Server iSCSI LUN
  • 25. CSI plugins for Windows q CSI support for Windows is a Work in Progress. q No privileged support for containers in Windows yet q Options for deploying plugin o Host process o Container with privileged host-based proxy
  • 26. Summary q In-tree and Flexvolume plugins ready to be used. q External provisioners coming soon. q CSI plugins for Windows node plugins in future.
  • 27. What's next Support for Windows workloads in Kubernetes clusters coming in Docker Enterprise Tech Preview!!
  • 30. CSI node plugins as host process q Plugin process runs directly on host q Handles plugin registration with kubelet o Cannot use node driver registrar sidecar o Other side cars can be scheduled on Linux masters. q Independent life-cycle and log management
  • 31. CSI node plugins as container q Plugin process packaged and deployed as containers q Use node driver registrar for plugin registration q Life-cycle and log management through Kubernetes q Requires a privileged proxy in host for operations
  • 32. CSIPlugins Worker Worker Storage Service Kubelet Kubelet External Provisioner (Deployment/ StatefulSet) CreateVolume DeleteVolume External Attacher (Deployment/ StatefulSet) CSI Controller (Deployment/ StatefulSet) CSI Node (DaemonSet) Kube Core Components Kube Sidecar containers CSI plugin components ControllerPublish ControllerUnPublish Master API Server NodeStage/NodeUnstage NodePublish/NodeUnpublish PV PV Claim volume attachment CSI InTree