SlideShare a Scribd company logo
Scheduling a Kubernetes Federation
with Admiralty
OSG All-Hands Meeting 2020 - USCMS-USATLAS Session
September 2020
PRP, Nautilus and Kubernetes
• The Pacific Research Platform (PRP) has been using Kubernetes
since 2016
• Started as a way to conveniently schedule
network test services
• Evolved in being a convenient
platform for ML research
• OSG has had a CE gathering
opportunistic cycles
for over a year now
• As well as orchestrating some
of its services
e.g. StashCache and Frontends
100G NVMe 6.4TB
Caltech
40G 160TB HPWREN
40G 160TB
4 FIONA8s*
Calit2/UCI
35 FIONA2s
17 FIONA8s
2x40G 160TB HPWREN
UCSD
100G Epyc NVMe
100G Gold NVMe
27 FIONA8s + 5 FIONA8s
SDSC @ UCSD
1 FIONA8
40G 160TB
UCR 40G 160TB
USC
100G NVMe 6.4TB
2x40G 160TB
UCLA
1 FIONA8
2x40G 160TB
Stanford U
2 FIONA8s
40G 192TB
UCSB
4.5 FIONA8s
100G NVMe 6.4TB
40G 160TB
UCSC
Connected by PRP’s Use of CENIC 100G Network and Its National and
International Partner networks: PRP’s Nautilus Hypercluster
10 FIONA2s
2 FIONA8
40G 160TB
UCM
32-Location Nautilus Cluster:
6918 CPU Cores on 187 Hosts
2.1 PB Storage
550 GPUs
40G 160TB HPWREN
100G NVMe 6.4TB
1 FIONA8* 2 FIONA4s
FPGAs + 2PB BeeGFS
SDSU
PRP Disks
10G 3TB
CSUSB
Minority Serving
Institution
CHASE-CI
100G 48TB
NPS
40G 192TB
USD
Why federation?
• PRP/Nautilus has been steadily growing
• It now has nodes also in Asia, Europe and Australia
• While successful, we do understand not everyone will want to join the club
• Separate administration domains
• We even have the use case at UCSD
• PRP Nautilus and SDSC Expanse will operate separately,
but will work together through federation
• Multiple platforms
• PRP has an IoT component, where ARM CPUs rule
• Having a dedicated ARM k3s and federating with it ended being simpler
Driving principles
• We wanted a “native Kubernetes” solution
• I.e. kubectl should be all that the user needs
• We did not want a centralized solution
• All participating Kubernetes clusters should be on equal playing field
• Each Kubernetes cluster should be able to participate
in any number of federations
• We did not want to do any development ourselves
• Helping with testing OK
• Occasional patch OK
• But no long-term maintenance
Admiralty’s Multicluster-Scheduler
https://admiralty.io
Admiralty’s Multicluster-Scheduler
Admiralty on Nautilus
• Currently running 0.10.0-rc1
• Have been federating with
• ARM-based k3s
• PacificWave Kubernetes cluster
• Google Cloud Kubernetes cluster
• Kubernetes Cluster inside Azure
• Getting ready to federate with
• Expanse’s Kubernetes partition
• A Windows-based Kubernetes cluster
Installing Admiralty
• Pretty well documented in github:
https://github.com/admiraltyio/multicluster-scheduler/tree/v0.10.0-rc.1
• Source and target cluster both need Admiralty installed
helm install cert-manager …
helm install multicluster-scheduler admiralty/multicluster-scheduler …
• Create secret in target cluster and propagate to source cluster
(targer) kubemcsa export -n klum c1 --as c2 >s.yaml
(source) kubectl -n admiralty apply -f s.yaml
• Whitelist target cluster in source cluster (helm update …)
• You are pretty much good to go!
• Pods in source cluster just need to add an annotation
metadata:
annotations:
multicluster.admiralty.io/elect: ""
Installing Admiralty
• Admiralty creates a set of new resource types
• Target clusters can be seen as virtual nodes
Installing Admiralty
• We have been mostly using one-way federation
• Nautilus as source, others as targets
• Nautilus can easily be the target, too
• Admiralty allows for arbitrary mesh
• Federation with SDSC Expanse is expected to be both ways
Scheduling to target clusters
• Admiralty’s Multicluster-Scheduler is a real Kubernetes scheduler
• Users do not get to pick explicitly the target
• Offload happens based on standard requirements and preferences
• Users just have to opt-in
• When there are nodes in multiple possible clusters that match
• Admiralty will consider only clusters that have free matching nodes
• Which target cluster will be picked is (mostly) non-deterministic
• If no target clusters have any available matching nodes,
the pod remains pending in the source cluster (only)
• Priorities and preemption work as you would expect them to
Scheduling to target clusters
Under the hood,
uses the standard
k8s filtering and
scoring
mechanisms
https://kubernetes.io/docs/concepts/scheduling-eviction/kube-scheduler/#kube-scheduler-implementation
Scheduling to target clusters
Other features
• Admiralty has several other features we have not explored yet
• Three potentially interesting options:
• Multi-cluster services, using
load-balancing across a Cilium cluster mesh
• Identity federation (instead of shared secrets)
• Federation with Targets lacking a public IP (reversed connectivity)
Conclusion
• Admiralty has been in use in the PRP k8s cluster/Nautilus
for some time now
• Works as advertised for our main use cases
• We are planning to use it to expand to more clusters in the future
OSG All-Hands Meeting 2020 - USCMS-USATLAS Session
September 2020
Acknowledgments
• This work was partially funded by the
US National Science Foundation (NSF)
under grants OAC-1826967, OAC-1541349,
MPS-1148698 and OAC-1841530.
OSG All-Hands Meeting 2020 - USCMS-USATLAS Session
September 2020

More Related Content

PPTX
Persistent, Portable Storage for Docker Containers and Microservices
PDF
Kubernetes as a Concrete Abstraction Layer
PDF
6 open stack_swift_panoramic_view
PDF
Kubernetes – An open platform for container orchestration
PPTX
PDF
Kubernetes User Group: 維運 Kubernetes 的兩三事
PDF
Intro to Kubernetes
PDF
Running and Managing Kubernetes on OpenStack
Persistent, Portable Storage for Docker Containers and Microservices
Kubernetes as a Concrete Abstraction Layer
6 open stack_swift_panoramic_view
Kubernetes – An open platform for container orchestration
Kubernetes User Group: 維運 Kubernetes 的兩三事
Intro to Kubernetes
Running and Managing Kubernetes on OpenStack

What's hot (20)

PPTX
Working with kubernetes
PDF
Kubernetes 101
PDF
Intro into Rook and Ceph on Kubernetes
PPTX
Topologies of OpenStack
PPTX
Stateful set in kubernetes implementation & usecases
PDF
Getting started with kubernetes
PDF
Kubernetes Webinar - Using ConfigMaps & Secrets
PDF
Database experiences designing cassandra schema for keystone
PDF
Persistent Storage with Containers with Kubernetes & OpenShift
PPTX
State of Linux Containers in OpenStack
PDF
Architecting a Cloud Native Internet Archive
PPTX
Intro to cluster scheduler for Linux containers
PPTX
Kubernetes Fundamentals on Azure 2017
PDF
Docker for HPC in a Nutshell
PPTX
Gocd – Kubernetes/Nomad Continuous Deployment
PDF
Kubernetes in Hybrid Environments with Submariner
PDF
Guts & OpenStack migration
PPTX
Cluster Management _ kubernetes MADIHA HARIFI
PDF
Kubernetes dealing with storage and persistence
PPTX
Demistifying open stack storage
Working with kubernetes
Kubernetes 101
Intro into Rook and Ceph on Kubernetes
Topologies of OpenStack
Stateful set in kubernetes implementation & usecases
Getting started with kubernetes
Kubernetes Webinar - Using ConfigMaps & Secrets
Database experiences designing cassandra schema for keystone
Persistent Storage with Containers with Kubernetes & OpenShift
State of Linux Containers in OpenStack
Architecting a Cloud Native Internet Archive
Intro to cluster scheduler for Linux containers
Kubernetes Fundamentals on Azure 2017
Docker for HPC in a Nutshell
Gocd – Kubernetes/Nomad Continuous Deployment
Kubernetes in Hybrid Environments with Submariner
Guts & OpenStack migration
Cluster Management _ kubernetes MADIHA HARIFI
Kubernetes dealing with storage and persistence
Demistifying open stack storage
Ad

Similar to Scheduling a Kubernetes Federation with Admiralty (20)

PPTX
01. Kubernetes-PPT.pptx
PPTX
Kubernetes Internals
PDF
DevOps in AWS with Kubernetes
PPTX
A Million ways of Deploying a Kubernetes Cluster
PPTX
Kubernetes fundamentals
PPTX
Secure Your Containers: What Network Admins Should Know When Moving Into Prod...
PPTX
Centralizing Kubernetes and Container Operations
PPTX
KuberNETes - meetup
PPTX
Kubernetes Introduction & Whats new in Kubernetes 1.6
PDF
SCaLE 20X: Kubernetes Cloud Cost Monitoring with OpenCost & Optimization Stra...
PPTX
Setup Kubernetes Cluster On AWS Using KOPS
PPTX
Introduction to Kubernetes
PDF
Deep Dive Into the CERN Cloud Infrastructure - November, 2013
PPTX
DevOps with Kubernetes
PDF
An Introduction to Using PostgreSQL with Docker & Kubernetes
PPTX
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
PDF
Kubernetes for Enterprise DevOps
PDF
LISA2017 Kubernetes: Hit the Ground Running
PDF
An overview of the Kubernetes architecture
01. Kubernetes-PPT.pptx
Kubernetes Internals
DevOps in AWS with Kubernetes
A Million ways of Deploying a Kubernetes Cluster
Kubernetes fundamentals
Secure Your Containers: What Network Admins Should Know When Moving Into Prod...
Centralizing Kubernetes and Container Operations
KuberNETes - meetup
Kubernetes Introduction & Whats new in Kubernetes 1.6
SCaLE 20X: Kubernetes Cloud Cost Monitoring with OpenCost & Optimization Stra...
Setup Kubernetes Cluster On AWS Using KOPS
Introduction to Kubernetes
Deep Dive Into the CERN Cloud Infrastructure - November, 2013
DevOps with Kubernetes
An Introduction to Using PostgreSQL with Docker & Kubernetes
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
Kubernetes for Enterprise DevOps
LISA2017 Kubernetes: Hit the Ground Running
An overview of the Kubernetes architecture
Ad

More from Igor Sfiligoi (20)

PDF
Preparing Fusion codes for Perlmutter - CGYRO
PDF
O&C Meeting - Evaluation of ARM CPUs for IceCube available through Google Kub...
PDF
Comparing single-node and multi-node performance of an important fusion HPC c...
PDF
The anachronism of whole-GPU accounting
PDF
Auto-scaling HTCondor pools using Kubernetes compute resources
PDF
Speeding up bowtie2 by improving cache-hit rate
PDF
Performance Optimization of CGYRO for Multiscale Turbulence Simulations
PDF
Comparing GPU effectiveness for Unifrac distance compute
PDF
Managing Cloud networking costs for data-intensive applications by provisioni...
PDF
Accelerating Key Bioinformatics Tasks 100-fold by Improving Memory Access
PDF
Using A100 MIG to Scale Astronomy Scientific Output
PDF
Using commercial Clouds to process IceCube jobs
PDF
Modest scale HPC on Azure using CGYRO
PDF
Data-intensive IceCube Cloud Burst
PDF
Accelerating microbiome research with OpenACC
PDF
Demonstrating a Pre-Exascale, Cost-Effective Multi-Cloud Environment for Scie...
PDF
Porting and optimizing UniFrac for GPUs
PDF
Demonstrating 100 Gbps in and out of the public Clouds
PDF
TransAtlantic Networking using Cloud links
PDF
Bursting into the public Cloud - Sharing my experience doing it at large scal...
Preparing Fusion codes for Perlmutter - CGYRO
O&C Meeting - Evaluation of ARM CPUs for IceCube available through Google Kub...
Comparing single-node and multi-node performance of an important fusion HPC c...
The anachronism of whole-GPU accounting
Auto-scaling HTCondor pools using Kubernetes compute resources
Speeding up bowtie2 by improving cache-hit rate
Performance Optimization of CGYRO for Multiscale Turbulence Simulations
Comparing GPU effectiveness for Unifrac distance compute
Managing Cloud networking costs for data-intensive applications by provisioni...
Accelerating Key Bioinformatics Tasks 100-fold by Improving Memory Access
Using A100 MIG to Scale Astronomy Scientific Output
Using commercial Clouds to process IceCube jobs
Modest scale HPC on Azure using CGYRO
Data-intensive IceCube Cloud Burst
Accelerating microbiome research with OpenACC
Demonstrating a Pre-Exascale, Cost-Effective Multi-Cloud Environment for Scie...
Porting and optimizing UniFrac for GPUs
Demonstrating 100 Gbps in and out of the public Clouds
TransAtlantic Networking using Cloud links
Bursting into the public Cloud - Sharing my experience doing it at large scal...

Recently uploaded (20)

DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
cuic standard and advanced reporting.pdf
PPTX
Spectroscopy.pptx food analysis technology
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
KodekX | Application Modernization Development
PDF
Encapsulation theory and applications.pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
sap open course for s4hana steps from ECC to s4
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Approach and Philosophy of On baking technology
PPTX
Big Data Technologies - Introduction.pptx
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
The AUB Centre for AI in Media Proposal.docx
cuic standard and advanced reporting.pdf
Spectroscopy.pptx food analysis technology
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
MYSQL Presentation for SQL database connectivity
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Chapter 3 Spatial Domain Image Processing.pdf
Unlocking AI with Model Context Protocol (MCP)
KodekX | Application Modernization Development
Encapsulation theory and applications.pdf
Building Integrated photovoltaic BIPV_UPV.pdf
sap open course for s4hana steps from ECC to s4
20250228 LYD VKU AI Blended-Learning.pptx
Approach and Philosophy of On baking technology
Big Data Technologies - Introduction.pptx
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Mobile App Security Testing_ A Comprehensive Guide.pdf

Scheduling a Kubernetes Federation with Admiralty

  • 1. Scheduling a Kubernetes Federation with Admiralty OSG All-Hands Meeting 2020 - USCMS-USATLAS Session September 2020
  • 2. PRP, Nautilus and Kubernetes • The Pacific Research Platform (PRP) has been using Kubernetes since 2016 • Started as a way to conveniently schedule network test services • Evolved in being a convenient platform for ML research • OSG has had a CE gathering opportunistic cycles for over a year now • As well as orchestrating some of its services e.g. StashCache and Frontends 100G NVMe 6.4TB Caltech 40G 160TB HPWREN 40G 160TB 4 FIONA8s* Calit2/UCI 35 FIONA2s 17 FIONA8s 2x40G 160TB HPWREN UCSD 100G Epyc NVMe 100G Gold NVMe 27 FIONA8s + 5 FIONA8s SDSC @ UCSD 1 FIONA8 40G 160TB UCR 40G 160TB USC 100G NVMe 6.4TB 2x40G 160TB UCLA 1 FIONA8 2x40G 160TB Stanford U 2 FIONA8s 40G 192TB UCSB 4.5 FIONA8s 100G NVMe 6.4TB 40G 160TB UCSC Connected by PRP’s Use of CENIC 100G Network and Its National and International Partner networks: PRP’s Nautilus Hypercluster 10 FIONA2s 2 FIONA8 40G 160TB UCM 32-Location Nautilus Cluster: 6918 CPU Cores on 187 Hosts 2.1 PB Storage 550 GPUs 40G 160TB HPWREN 100G NVMe 6.4TB 1 FIONA8* 2 FIONA4s FPGAs + 2PB BeeGFS SDSU PRP Disks 10G 3TB CSUSB Minority Serving Institution CHASE-CI 100G 48TB NPS 40G 192TB USD
  • 3. Why federation? • PRP/Nautilus has been steadily growing • It now has nodes also in Asia, Europe and Australia • While successful, we do understand not everyone will want to join the club • Separate administration domains • We even have the use case at UCSD • PRP Nautilus and SDSC Expanse will operate separately, but will work together through federation • Multiple platforms • PRP has an IoT component, where ARM CPUs rule • Having a dedicated ARM k3s and federating with it ended being simpler
  • 4. Driving principles • We wanted a “native Kubernetes” solution • I.e. kubectl should be all that the user needs • We did not want a centralized solution • All participating Kubernetes clusters should be on equal playing field • Each Kubernetes cluster should be able to participate in any number of federations • We did not want to do any development ourselves • Helping with testing OK • Occasional patch OK • But no long-term maintenance
  • 7. Admiralty on Nautilus • Currently running 0.10.0-rc1 • Have been federating with • ARM-based k3s • PacificWave Kubernetes cluster • Google Cloud Kubernetes cluster • Kubernetes Cluster inside Azure • Getting ready to federate with • Expanse’s Kubernetes partition • A Windows-based Kubernetes cluster
  • 8. Installing Admiralty • Pretty well documented in github: https://github.com/admiraltyio/multicluster-scheduler/tree/v0.10.0-rc.1 • Source and target cluster both need Admiralty installed helm install cert-manager … helm install multicluster-scheduler admiralty/multicluster-scheduler … • Create secret in target cluster and propagate to source cluster (targer) kubemcsa export -n klum c1 --as c2 >s.yaml (source) kubectl -n admiralty apply -f s.yaml • Whitelist target cluster in source cluster (helm update …) • You are pretty much good to go! • Pods in source cluster just need to add an annotation metadata: annotations: multicluster.admiralty.io/elect: ""
  • 9. Installing Admiralty • Admiralty creates a set of new resource types • Target clusters can be seen as virtual nodes
  • 10. Installing Admiralty • We have been mostly using one-way federation • Nautilus as source, others as targets • Nautilus can easily be the target, too • Admiralty allows for arbitrary mesh • Federation with SDSC Expanse is expected to be both ways
  • 11. Scheduling to target clusters • Admiralty’s Multicluster-Scheduler is a real Kubernetes scheduler • Users do not get to pick explicitly the target • Offload happens based on standard requirements and preferences • Users just have to opt-in • When there are nodes in multiple possible clusters that match • Admiralty will consider only clusters that have free matching nodes • Which target cluster will be picked is (mostly) non-deterministic • If no target clusters have any available matching nodes, the pod remains pending in the source cluster (only) • Priorities and preemption work as you would expect them to
  • 12. Scheduling to target clusters Under the hood, uses the standard k8s filtering and scoring mechanisms https://kubernetes.io/docs/concepts/scheduling-eviction/kube-scheduler/#kube-scheduler-implementation
  • 14. Other features • Admiralty has several other features we have not explored yet • Three potentially interesting options: • Multi-cluster services, using load-balancing across a Cilium cluster mesh • Identity federation (instead of shared secrets) • Federation with Targets lacking a public IP (reversed connectivity)
  • 15. Conclusion • Admiralty has been in use in the PRP k8s cluster/Nautilus for some time now • Works as advertised for our main use cases • We are planning to use it to expand to more clusters in the future OSG All-Hands Meeting 2020 - USCMS-USATLAS Session September 2020
  • 16. Acknowledgments • This work was partially funded by the US National Science Foundation (NSF) under grants OAC-1826967, OAC-1541349, MPS-1148698 and OAC-1841530. OSG All-Hands Meeting 2020 - USCMS-USATLAS Session September 2020