SlideShare une entreprise Scribd logo
1  sur  16
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

Database experiences designing cassandra schema for keystone
Database experiences designing cassandra schema for keystone Database experiences designing cassandra schema for keystone
Database experiences designing cassandra schema for keystone
openstackindia
 
State of Linux Containers in OpenStack
State of Linux Containers in OpenStackState of Linux Containers in OpenStack
State of Linux Containers in OpenStack
openstackindia
 
Demistifying open stack storage
Demistifying open stack storageDemistifying open stack storage
Demistifying open stack storage
openstackindia
 

Tendances (20)

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

Similaire à Scheduling a Kubernetes Federation with Admiralty

Similaire à Scheduling a Kubernetes Federation with Admiralty (20)

01. Kubernetes-PPT.pptx
01. Kubernetes-PPT.pptx01. Kubernetes-PPT.pptx
01. Kubernetes-PPT.pptx
 
Kubernetes Internals
Kubernetes InternalsKubernetes Internals
Kubernetes Internals
 
DevOps in AWS with Kubernetes
DevOps in AWS with KubernetesDevOps in AWS with Kubernetes
DevOps in AWS with Kubernetes
 
A Million ways of Deploying a Kubernetes Cluster
A Million ways of Deploying a Kubernetes ClusterA Million ways of Deploying a Kubernetes Cluster
A Million ways of Deploying a Kubernetes Cluster
 
Kubernetes fundamentals
Kubernetes fundamentalsKubernetes fundamentals
Kubernetes fundamentals
 
Secure Your Containers: What Network Admins Should Know When Moving Into Prod...
Secure Your Containers: What Network Admins Should Know When Moving Into Prod...Secure Your Containers: What Network Admins Should Know When Moving Into Prod...
Secure Your Containers: What Network Admins Should Know When Moving Into Prod...
 
Centralizing Kubernetes and Container Operations
Centralizing Kubernetes and Container OperationsCentralizing Kubernetes and Container Operations
Centralizing Kubernetes and Container Operations
 
KuberNETes - meetup
KuberNETes - meetupKuberNETes - meetup
KuberNETes - meetup
 
Kubernetes Introduction & Whats new in Kubernetes 1.6
Kubernetes Introduction & Whats new in Kubernetes 1.6Kubernetes Introduction & Whats new in Kubernetes 1.6
Kubernetes Introduction & Whats new in Kubernetes 1.6
 
Intro to kubernetes
Intro to kubernetesIntro to kubernetes
Intro to kubernetes
 
SCaLE 20X: Kubernetes Cloud Cost Monitoring with OpenCost & Optimization Stra...
SCaLE 20X: Kubernetes Cloud Cost Monitoring with OpenCost & Optimization Stra...SCaLE 20X: Kubernetes Cloud Cost Monitoring with OpenCost & Optimization Stra...
SCaLE 20X: Kubernetes Cloud Cost Monitoring with OpenCost & Optimization Stra...
 
Setup Kubernetes Cluster On AWS Using KOPS
Setup Kubernetes Cluster On AWS Using KOPSSetup Kubernetes Cluster On AWS Using KOPS
Setup Kubernetes Cluster On AWS Using KOPS
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to Kubernetes
 
Deep Dive Into the CERN Cloud Infrastructure - November, 2013
Deep Dive Into the CERN Cloud Infrastructure - November, 2013Deep Dive Into the CERN Cloud Infrastructure - November, 2013
Deep Dive Into the CERN Cloud Infrastructure - November, 2013
 
DevOps with Kubernetes
DevOps with KubernetesDevOps with Kubernetes
DevOps with Kubernetes
 
An Introduction to Using PostgreSQL with Docker & Kubernetes
An Introduction to Using PostgreSQL with Docker & KubernetesAn Introduction to Using PostgreSQL with Docker & Kubernetes
An Introduction to Using PostgreSQL with Docker & Kubernetes
 
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
 
Kubernetes for Enterprise DevOps
Kubernetes for Enterprise DevOpsKubernetes for Enterprise DevOps
Kubernetes for Enterprise DevOps
 
LISA2017 Kubernetes: Hit the Ground Running
LISA2017 Kubernetes: Hit the Ground RunningLISA2017 Kubernetes: Hit the Ground Running
LISA2017 Kubernetes: Hit the Ground Running
 
An overview of the Kubernetes architecture
An overview of the Kubernetes architectureAn overview of the Kubernetes architecture
An overview of the Kubernetes architecture
 

Plus de Igor Sfiligoi

Comparing single-node and multi-node performance of an important fusion HPC c...
Comparing single-node and multi-node performance of an important fusion HPC c...Comparing single-node and multi-node performance of an important fusion HPC c...
Comparing single-node and multi-node performance of an important fusion HPC c...
Igor Sfiligoi
 
The anachronism of whole-GPU accounting
The anachronism of whole-GPU accountingThe anachronism of whole-GPU accounting
The anachronism of whole-GPU accounting
Igor Sfiligoi
 

Plus de Igor Sfiligoi (20)

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

Dernier

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Dernier (20)

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
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
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
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
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.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