SlideShare a Scribd company logo
1 of 36
Download to read offline
Federated
Kubernetes
As a Platform for
Distributed Scientific Computing
Kubernetes v1.9 - 03/2018
Who Am I?
Bob Killen
rkillen@umich.edu
Senior Research Cloud Administrator
CNCF Ambassador
Github: @mrbobbytables
Twitter: @mrbobbytables
SLATE
Service Layer at the Edge
Mission: Enable multi-institution
computational research by providing a
uniform, easy to consume method of
access and distribution of research
applications. NSF Award Number:
1724821
slateci.io
The Problem
Well...it’s hard..and...complicated
Across multiple
disparate sites and
infrastructures
● Packaging
● Distribution
● Orchestration
● AuthN/AuthZ
● Storage
● Monitoring
● Security
● Resource
Allocation
● multi-group
administration
Solution Part 1
Docker and the large scale
adoption of containers have
(mostly) solved the technical
aspects of the packaging and
distribution problem.
Solution Part 2
Kubernetes and its ecosystem provide the
primitives to safely handle the rest.
Why Kubernetes
Kubernetes boasts one of the largest community
backings with a relentlessly fast velocity.
It has been designed from the ground-up as a loosely
coupled collection of components centered around
deploying, maintaining and scaling a wide variety of
workloads.
Importantly, it has the primitives needed for “clusters of
clusters” aka Federation.
Federation aka “Ubernetes”
Federation extends Kubernetes by providing a
one-to-many Kubernetes API endpoint.
This endpoint is managed by the Federation
Control Plane which handles the placement
and propagation of the supported Kubernetes
objects.
Federated Cluster
Federated Deployment
1. Objects are posted to federation-api server
2. Federation scheduler takes into account
placement directives and creates
subsequent objects
3. Federation server posts new objects to the
designated federation members.
$ kubectl get deploy
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
spread 2 2 2 2 22m
Federation API Server
Just because you can communicate with a
Federated Cluster API Server as you would a
normal Kubernetes cluster, does not mean you
can treat it as a “normal” Kubernetes cluster.
The API is 100% Kubernetes compatible, but
does not support all API types and actions.
Supported API Types
● Cluster
● ConfigMap
● DaemonSet
● Deployment
● Events
● HPA
● Ingress
● Job
● Namespace
● ReplicaSet
● Secret
● Service
Where’s the Pod?
$ kubectl get deploy
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
spread 2 2 2 2 40m
$ kubectl get pods
the server doesn't have a resource type "pods"
$ kubectl config use-context umich
Switched to context "umich".
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
spread-6bbc9898b9-btc8z 1/1 Running 0 40m
Pods and several other resources are
NOT queryable from a federation
endpoint.
Where’s the Pod?
$ kubectl get deploy
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
spread 2 2 2 2 40m
$ kubectl get pods
the server doesn't have a resource type "pods"
$ kubectl config use-context umich
Switched to context "umich".
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
spread-6bbc9898b9-btc8z 1/1 Running 0 40m
Viewing Pods requires using a
cluster-member context.
Working with the Federation API
The Federation API Server is better thought of
as a deployment endpoint that will handle
multi-cluster placement and availability.
Day-to-day operations will always be with the
underlying Federation cluster members.
Is That a Show Stopper?
NO!
The greater challenge lies in coordinating the
disparate sites in a way that their resources
may easily be consumed.
Federation Requirements
● Federation Control Plane runs in its own cluster
● Kubernetes versions across sites must be tightly
managed
● Must be backed by a DNS Zone managed in AWS,
GCP, or CoreDNS
● Support service type LoadBalancer
● Nodes labeled with:
○ failure-domain.beta.kubernetes.io/zone=<zone>
○ failure-domain.beta.kubernetes.io/region=<region>
Federation Service Discovery
The DNS Zone and LoadBalancer Service
Type when combined make the fulcrum for
cross-cluster service discovery.
Providing the External IPs for those services
when bare metal can be a challenge...
External IP Management
EVERY site must have a pool of available cross-cluster
reachable IPs that can be managed by their associated
Cluster.
Two tools for enabling this in an on-prem environment:
● keepalived-cloud-provider
https://github.com/munnerz/keepalived-cloud-provider
● metalLB
https://github.com/google/metallb
DNS
The services that are exposed on those external IPs are
given similar names to their in-cluster DNS name.
With additional records being added for each region and
zone.
<service name>.<namespace>.<federation>.svc.<domain>
<service name>.<namespace>.<federation>.svc.<region>.<domain>
<service name>.<namespace>.<federation>.svc.<zone>.<region>.<domain>
hello.default.myfed.svc.example.com
hello.default.myfed.svc.umich.example.com
hello.default.myfed.svc.umich1.umich.example.com
Importance of Consistency
Consistent labeling and naming is essential in
making federation successful.
Deployments must be able to make reference
to resources by their attributes, and their
attributes should equate to the same thing
across all member clusters.
Importance of Consistency
A PersistentVolumeClaim targeting StorageClass “Fast”
may have vastly different characteristics across the clusters.
Importance of Consistency
A PersistentVolumeClaim targeting StorageClass “Fast”
may have vastly different characteristics across the clusters.
Consistent Labeling
Things will also quickly become unmanageable if site-specific data is
forced into names.
Consistent Labeling
Things will also quickly become unmanageable if site-specific data is
forced into names.
Consistent Labeling
The group managing the Federation should have a predetermined
set of labels for ALL resources that may impact resource selection.
A Word on Placement
Workload locality should still be considered
with preferences weighted to the most
desirable location.
ALWAYS account for cross cluster services
that may send traffic to another unencrypted.
End User (Researcher) Experience
Research App User
● Does not want to use kubectl
● Does not want to have to think
about placement.. resources..
security..etc
● Does want to get up and going
quickly
● Does want it to “just work”
Research App Publisher
● Wants CONSISTENCY above all
else
● Want to iterate application
deployment design quickly
● An easy method to package
entire app stacks
Solution: Helm
Helm is a Kubernetes Package Manager, that
allows you to package up entire application stacks
into “Charts”.
A Chart is a collection of templates and files that describe
the stack you wish to deploy.
Helm also is one of the few tools that is Federation aware:
https://github.com/kubernetes-helm/rudder-federation
Logging and Monitoring
Logging and Monitoring are important to both
the Research End User and the Administrator
as a support tool.
Logs and metrics should be aggregated to a
central location to give both a single
pane-of-glass view of their resources.
Logging and Monitoring
Popular Log Shipper with
native Kubernetes
integration and a massive
plugin ecosystem.
Defacto standard for
Kubernetes monitoring with
full aggregation/federation
support.
Administration
Being a part of a Federation implicitly means a
high level of trust is needed.
A full federation administrator
is essentially a cluster admin
in EVERY cluster.
Future
Federation v2 is well under development with the lessons
learned from developing and managing v1.
Cluster discovery is being moved into the Kubernetes
Cluster Registry.
Policy based placement becomes a first class citizen.
Useful Links
● minifed - minikube + federation = minifed
https://github.com/slateci/minifed
● Kubernetes Federation - The Hard Way
https://github.com/kelseyhightower/kubernetes-cluster-federation
● Kubecon Europe 2017 Keynote: Federation
https://www.youtube.com/watch?v=kwOvOLnFYck
● SIG Multicluster - Home of Federation
https://github.com/kubernetes/community/tree/master/sig-multicluster
Questions?

More Related Content

What's hot

The (mutable) config management showdown
The (mutable) config management showdownThe (mutable) config management showdown
The (mutable) config management showdownBob Killen
 
K8s in 3h - Kubernetes Fundamentals Training
K8s in 3h - Kubernetes Fundamentals TrainingK8s in 3h - Kubernetes Fundamentals Training
K8s in 3h - Kubernetes Fundamentals TrainingPiotr Perzyna
 
Brief Introduction To Kubernetes
Brief Introduction To KubernetesBrief Introduction To Kubernetes
Brief Introduction To KubernetesAvinash Ketkar
 
Kubernetes a comprehensive overview
Kubernetes   a comprehensive overviewKubernetes   a comprehensive overview
Kubernetes a comprehensive overviewGabriel Carro
 
Kubernetes for Beginners: An Introductory Guide
Kubernetes for Beginners: An Introductory GuideKubernetes for Beginners: An Introductory Guide
Kubernetes for Beginners: An Introductory GuideBytemark
 
Kubernetes: The Next Research Platform
Kubernetes: The Next Research PlatformKubernetes: The Next Research Platform
Kubernetes: The Next Research PlatformBob Killen
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetesRishabh Indoria
 
Deploying your first application with Kubernetes
Deploying your first application with KubernetesDeploying your first application with Kubernetes
Deploying your first application with KubernetesOVHcloud
 
Evolution of containers to kubernetes
Evolution of containers to kubernetesEvolution of containers to kubernetes
Evolution of containers to kubernetesKrishna-Kumar
 
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...Edureka!
 
Kubernetes @ Squarespace: Kubernetes in the Datacenter
Kubernetes @ Squarespace: Kubernetes in the DatacenterKubernetes @ Squarespace: Kubernetes in the Datacenter
Kubernetes @ Squarespace: Kubernetes in the DatacenterKevin Lynch
 
Kubernetes
KubernetesKubernetes
Kuberneteserialc_w
 
A Peek Behind the Curtain: Managing the Kubernetes Contributor Community
A Peek Behind the Curtain: Managing the Kubernetes Contributor CommunityA Peek Behind the Curtain: Managing the Kubernetes Contributor Community
A Peek Behind the Curtain: Managing the Kubernetes Contributor CommunityBob Killen
 
Kubernetes automation in production
Kubernetes automation in productionKubernetes automation in production
Kubernetes automation in productionPaul Bakker
 
Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17Ryan Jarvinen
 
Nugwc k8s session-16-march-2021
Nugwc k8s session-16-march-2021Nugwc k8s session-16-march-2021
Nugwc k8s session-16-march-2021Avanti Patil
 

What's hot (20)

The (mutable) config management showdown
The (mutable) config management showdownThe (mutable) config management showdown
The (mutable) config management showdown
 
K8s in 3h - Kubernetes Fundamentals Training
K8s in 3h - Kubernetes Fundamentals TrainingK8s in 3h - Kubernetes Fundamentals Training
K8s in 3h - Kubernetes Fundamentals Training
 
Brief Introduction To Kubernetes
Brief Introduction To KubernetesBrief Introduction To Kubernetes
Brief Introduction To Kubernetes
 
kubernetes 101
kubernetes 101kubernetes 101
kubernetes 101
 
Kubernetes a comprehensive overview
Kubernetes   a comprehensive overviewKubernetes   a comprehensive overview
Kubernetes a comprehensive overview
 
Kubernetes for Beginners: An Introductory Guide
Kubernetes for Beginners: An Introductory GuideKubernetes for Beginners: An Introductory Guide
Kubernetes for Beginners: An Introductory Guide
 
Kubernetes: The Next Research Platform
Kubernetes: The Next Research PlatformKubernetes: The Next Research Platform
Kubernetes: The Next Research Platform
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
 
Deploying your first application with Kubernetes
Deploying your first application with KubernetesDeploying your first application with Kubernetes
Deploying your first application with Kubernetes
 
Evolution of containers to kubernetes
Evolution of containers to kubernetesEvolution of containers to kubernetes
Evolution of containers to kubernetes
 
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
 
DevOps with Kubernetes
DevOps with KubernetesDevOps with Kubernetes
DevOps with Kubernetes
 
Kubernetes @ Squarespace: Kubernetes in the Datacenter
Kubernetes @ Squarespace: Kubernetes in the DatacenterKubernetes @ Squarespace: Kubernetes in the Datacenter
Kubernetes @ Squarespace: Kubernetes in the Datacenter
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
A Peek Behind the Curtain: Managing the Kubernetes Contributor Community
A Peek Behind the Curtain: Managing the Kubernetes Contributor CommunityA Peek Behind the Curtain: Managing the Kubernetes Contributor Community
A Peek Behind the Curtain: Managing the Kubernetes Contributor Community
 
Intro to Kubernetes
Intro to KubernetesIntro to Kubernetes
Intro to Kubernetes
 
Kubernetes Basics
Kubernetes BasicsKubernetes Basics
Kubernetes Basics
 
Kubernetes automation in production
Kubernetes automation in productionKubernetes automation in production
Kubernetes automation in production
 
Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17
 
Nugwc k8s session-16-march-2021
Nugwc k8s session-16-march-2021Nugwc k8s session-16-march-2021
Nugwc k8s session-16-march-2021
 

Similar to Federated Kubernetes: As a Platform for Distributed Scientific Computing

prodops.io k8s presentation
prodops.io k8s presentationprodops.io k8s presentation
prodops.io k8s presentationProdops.io
 
The App Developer's Kubernetes Toolbox
The App Developer's Kubernetes ToolboxThe App Developer's Kubernetes Toolbox
The App Developer's Kubernetes ToolboxNebulaworks
 
Sumo Logic Cert Jam - Advanced Metrics with Kubernetes
Sumo Logic Cert Jam - Advanced Metrics with KubernetesSumo Logic Cert Jam - Advanced Metrics with Kubernetes
Sumo Logic Cert Jam - Advanced Metrics with KubernetesSumo Logic
 
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...MongoDB
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to KubernetesSamuel Dratwa
 
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)QAware GmbH
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to KubernetesVishal Biyani
 
Mattia Gandolfi - Improving utilization and portability with Containers and C...
Mattia Gandolfi - Improving utilization and portability with Containers and C...Mattia Gandolfi - Improving utilization and portability with Containers and C...
Mattia Gandolfi - Improving utilization and portability with Containers and C...Codemotion
 
Docker Application to Scientific Computing
Docker Application to Scientific ComputingDocker Application to Scientific Computing
Docker Application to Scientific ComputingPeter Bryzgalov
 
Dev opsec dockerimage_patch_n_lifecyclemanagement_
Dev opsec dockerimage_patch_n_lifecyclemanagement_Dev opsec dockerimage_patch_n_lifecyclemanagement_
Dev opsec dockerimage_patch_n_lifecyclemanagement_kanedafromparis
 
Introduction to KubeDirector - SF Kubernetes Meetup
Introduction to KubeDirector - SF Kubernetes MeetupIntroduction to KubeDirector - SF Kubernetes Meetup
Introduction to KubeDirector - SF Kubernetes MeetupBlueData, Inc.
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetesGabriel Carro
 
Kubernetes for Java developers
Kubernetes for Java developersKubernetes for Java developers
Kubernetes for Java developersRobert Barr
 
Kubernetes Operability Tooling (GOTO Chicago 2019)
Kubernetes Operability Tooling (GOTO Chicago 2019)Kubernetes Operability Tooling (GOTO Chicago 2019)
Kubernetes Operability Tooling (GOTO Chicago 2019)bridgetkromhout
 
Cloud-Native Operations with Kubernetes and CI/CD
Cloud-Native Operations with Kubernetes and CI/CDCloud-Native Operations with Kubernetes and CI/CD
Cloud-Native Operations with Kubernetes and CI/CDVMware Tanzu
 
Kubernetes Clusters as a Service with Gardener
Kubernetes Clusters as a Service with GardenerKubernetes Clusters as a Service with Gardener
Kubernetes Clusters as a Service with GardenerQAware GmbH
 
DevOps with Kubernetes and Helm - Jenkins World Edition
DevOps with Kubernetes and Helm - Jenkins World EditionDevOps with Kubernetes and Helm - Jenkins World Edition
DevOps with Kubernetes and Helm - Jenkins World EditionJessica Deen
 

Similar to Federated Kubernetes: As a Platform for Distributed Scientific Computing (20)

Container Orchestration using kubernetes
Container Orchestration using kubernetesContainer Orchestration using kubernetes
Container Orchestration using kubernetes
 
prodops.io k8s presentation
prodops.io k8s presentationprodops.io k8s presentation
prodops.io k8s presentation
 
The App Developer's Kubernetes Toolbox
The App Developer's Kubernetes ToolboxThe App Developer's Kubernetes Toolbox
The App Developer's Kubernetes Toolbox
 
Sumo Logic Cert Jam - Advanced Metrics with Kubernetes
Sumo Logic Cert Jam - Advanced Metrics with KubernetesSumo Logic Cert Jam - Advanced Metrics with Kubernetes
Sumo Logic Cert Jam - Advanced Metrics with Kubernetes
 
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to Kubernetes
 
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to Kubernetes
 
Mattia Gandolfi - Improving utilization and portability with Containers and C...
Mattia Gandolfi - Improving utilization and portability with Containers and C...Mattia Gandolfi - Improving utilization and portability with Containers and C...
Mattia Gandolfi - Improving utilization and portability with Containers and C...
 
Docker Application to Scientific Computing
Docker Application to Scientific ComputingDocker Application to Scientific Computing
Docker Application to Scientific Computing
 
Dev opsec dockerimage_patch_n_lifecyclemanagement_
Dev opsec dockerimage_patch_n_lifecyclemanagement_Dev opsec dockerimage_patch_n_lifecyclemanagement_
Dev opsec dockerimage_patch_n_lifecyclemanagement_
 
Introduction to KubeDirector - SF Kubernetes Meetup
Introduction to KubeDirector - SF Kubernetes MeetupIntroduction to KubeDirector - SF Kubernetes Meetup
Introduction to KubeDirector - SF Kubernetes Meetup
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
 
Kubernetes for Java developers
Kubernetes for Java developersKubernetes for Java developers
Kubernetes for Java developers
 
Containers kuberenetes
Containers kuberenetesContainers kuberenetes
Containers kuberenetes
 
Containers kuberenetes
Containers kuberenetesContainers kuberenetes
Containers kuberenetes
 
Kubernetes Operability Tooling (GOTO Chicago 2019)
Kubernetes Operability Tooling (GOTO Chicago 2019)Kubernetes Operability Tooling (GOTO Chicago 2019)
Kubernetes Operability Tooling (GOTO Chicago 2019)
 
Cloud-Native Operations with Kubernetes and CI/CD
Cloud-Native Operations with Kubernetes and CI/CDCloud-Native Operations with Kubernetes and CI/CD
Cloud-Native Operations with Kubernetes and CI/CD
 
Kubernetes Clusters as a Service with Gardener
Kubernetes Clusters as a Service with GardenerKubernetes Clusters as a Service with Gardener
Kubernetes Clusters as a Service with Gardener
 
DevOps with Kubernetes and Helm - Jenkins World Edition
DevOps with Kubernetes and Helm - Jenkins World EditionDevOps with Kubernetes and Helm - Jenkins World Edition
DevOps with Kubernetes and Helm - Jenkins World Edition
 

More from Bob Killen

Tackling New Challenges in a Virtual Focused Community
Tackling New Challenges in a Virtual Focused CommunityTackling New Challenges in a Virtual Focused Community
Tackling New Challenges in a Virtual Focused CommunityBob Killen
 
KubeCon EU 2021 Keynote: Shaping Kubernetes Community Culture
KubeCon EU 2021 Keynote: Shaping Kubernetes Community CultureKubeCon EU 2021 Keynote: Shaping Kubernetes Community Culture
KubeCon EU 2021 Keynote: Shaping Kubernetes Community CultureBob Killen
 
Intro to Kubernetes SIG Contributor Experience
Intro to Kubernetes SIG Contributor ExperienceIntro to Kubernetes SIG Contributor Experience
Intro to Kubernetes SIG Contributor ExperienceBob Killen
 
Intro to the CNCF Research User Group
Intro to the CNCF Research User GroupIntro to the CNCF Research User Group
Intro to the CNCF Research User GroupBob Killen
 
Kubernetes The New Research Platform
Kubernetes The New Research PlatformKubernetes The New Research Platform
Kubernetes The New Research PlatformBob Killen
 
Ansible, integration testing, and you.
Ansible, integration testing, and you.Ansible, integration testing, and you.
Ansible, integration testing, and you.Bob Killen
 
Pluggable Infrastructure with CI/CD and Docker
Pluggable Infrastructure with CI/CD and DockerPluggable Infrastructure with CI/CD and Docker
Pluggable Infrastructure with CI/CD and DockerBob Killen
 

More from Bob Killen (7)

Tackling New Challenges in a Virtual Focused Community
Tackling New Challenges in a Virtual Focused CommunityTackling New Challenges in a Virtual Focused Community
Tackling New Challenges in a Virtual Focused Community
 
KubeCon EU 2021 Keynote: Shaping Kubernetes Community Culture
KubeCon EU 2021 Keynote: Shaping Kubernetes Community CultureKubeCon EU 2021 Keynote: Shaping Kubernetes Community Culture
KubeCon EU 2021 Keynote: Shaping Kubernetes Community Culture
 
Intro to Kubernetes SIG Contributor Experience
Intro to Kubernetes SIG Contributor ExperienceIntro to Kubernetes SIG Contributor Experience
Intro to Kubernetes SIG Contributor Experience
 
Intro to the CNCF Research User Group
Intro to the CNCF Research User GroupIntro to the CNCF Research User Group
Intro to the CNCF Research User Group
 
Kubernetes The New Research Platform
Kubernetes The New Research PlatformKubernetes The New Research Platform
Kubernetes The New Research Platform
 
Ansible, integration testing, and you.
Ansible, integration testing, and you.Ansible, integration testing, and you.
Ansible, integration testing, and you.
 
Pluggable Infrastructure with CI/CD and Docker
Pluggable Infrastructure with CI/CD and DockerPluggable Infrastructure with CI/CD and Docker
Pluggable Infrastructure with CI/CD and Docker
 

Recently uploaded

Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 

Recently uploaded (20)

Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 

Federated Kubernetes: As a Platform for Distributed Scientific Computing

  • 1. Federated Kubernetes As a Platform for Distributed Scientific Computing Kubernetes v1.9 - 03/2018
  • 2. Who Am I? Bob Killen rkillen@umich.edu Senior Research Cloud Administrator CNCF Ambassador Github: @mrbobbytables Twitter: @mrbobbytables
  • 3. SLATE Service Layer at the Edge Mission: Enable multi-institution computational research by providing a uniform, easy to consume method of access and distribution of research applications. NSF Award Number: 1724821 slateci.io
  • 4. The Problem Well...it’s hard..and...complicated Across multiple disparate sites and infrastructures ● Packaging ● Distribution ● Orchestration ● AuthN/AuthZ ● Storage ● Monitoring ● Security ● Resource Allocation ● multi-group administration
  • 5. Solution Part 1 Docker and the large scale adoption of containers have (mostly) solved the technical aspects of the packaging and distribution problem.
  • 6. Solution Part 2 Kubernetes and its ecosystem provide the primitives to safely handle the rest.
  • 7. Why Kubernetes Kubernetes boasts one of the largest community backings with a relentlessly fast velocity. It has been designed from the ground-up as a loosely coupled collection of components centered around deploying, maintaining and scaling a wide variety of workloads. Importantly, it has the primitives needed for “clusters of clusters” aka Federation.
  • 8. Federation aka “Ubernetes” Federation extends Kubernetes by providing a one-to-many Kubernetes API endpoint. This endpoint is managed by the Federation Control Plane which handles the placement and propagation of the supported Kubernetes objects.
  • 10. Federated Deployment 1. Objects are posted to federation-api server 2. Federation scheduler takes into account placement directives and creates subsequent objects 3. Federation server posts new objects to the designated federation members. $ kubectl get deploy NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE spread 2 2 2 2 22m
  • 11. Federation API Server Just because you can communicate with a Federated Cluster API Server as you would a normal Kubernetes cluster, does not mean you can treat it as a “normal” Kubernetes cluster. The API is 100% Kubernetes compatible, but does not support all API types and actions.
  • 12. Supported API Types ● Cluster ● ConfigMap ● DaemonSet ● Deployment ● Events ● HPA ● Ingress ● Job ● Namespace ● ReplicaSet ● Secret ● Service
  • 13.
  • 14. Where’s the Pod? $ kubectl get deploy NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE spread 2 2 2 2 40m $ kubectl get pods the server doesn't have a resource type "pods" $ kubectl config use-context umich Switched to context "umich". $ kubectl get pods NAME READY STATUS RESTARTS AGE spread-6bbc9898b9-btc8z 1/1 Running 0 40m Pods and several other resources are NOT queryable from a federation endpoint.
  • 15. Where’s the Pod? $ kubectl get deploy NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE spread 2 2 2 2 40m $ kubectl get pods the server doesn't have a resource type "pods" $ kubectl config use-context umich Switched to context "umich". $ kubectl get pods NAME READY STATUS RESTARTS AGE spread-6bbc9898b9-btc8z 1/1 Running 0 40m Viewing Pods requires using a cluster-member context.
  • 16. Working with the Federation API The Federation API Server is better thought of as a deployment endpoint that will handle multi-cluster placement and availability. Day-to-day operations will always be with the underlying Federation cluster members.
  • 17. Is That a Show Stopper? NO! The greater challenge lies in coordinating the disparate sites in a way that their resources may easily be consumed.
  • 18. Federation Requirements ● Federation Control Plane runs in its own cluster ● Kubernetes versions across sites must be tightly managed ● Must be backed by a DNS Zone managed in AWS, GCP, or CoreDNS ● Support service type LoadBalancer ● Nodes labeled with: ○ failure-domain.beta.kubernetes.io/zone=<zone> ○ failure-domain.beta.kubernetes.io/region=<region>
  • 19. Federation Service Discovery The DNS Zone and LoadBalancer Service Type when combined make the fulcrum for cross-cluster service discovery. Providing the External IPs for those services when bare metal can be a challenge...
  • 20. External IP Management EVERY site must have a pool of available cross-cluster reachable IPs that can be managed by their associated Cluster. Two tools for enabling this in an on-prem environment: ● keepalived-cloud-provider https://github.com/munnerz/keepalived-cloud-provider ● metalLB https://github.com/google/metallb
  • 21. DNS The services that are exposed on those external IPs are given similar names to their in-cluster DNS name. With additional records being added for each region and zone. <service name>.<namespace>.<federation>.svc.<domain> <service name>.<namespace>.<federation>.svc.<region>.<domain> <service name>.<namespace>.<federation>.svc.<zone>.<region>.<domain> hello.default.myfed.svc.example.com hello.default.myfed.svc.umich.example.com hello.default.myfed.svc.umich1.umich.example.com
  • 22. Importance of Consistency Consistent labeling and naming is essential in making federation successful. Deployments must be able to make reference to resources by their attributes, and their attributes should equate to the same thing across all member clusters.
  • 23. Importance of Consistency A PersistentVolumeClaim targeting StorageClass “Fast” may have vastly different characteristics across the clusters.
  • 24. Importance of Consistency A PersistentVolumeClaim targeting StorageClass “Fast” may have vastly different characteristics across the clusters.
  • 25. Consistent Labeling Things will also quickly become unmanageable if site-specific data is forced into names.
  • 26. Consistent Labeling Things will also quickly become unmanageable if site-specific data is forced into names.
  • 27. Consistent Labeling The group managing the Federation should have a predetermined set of labels for ALL resources that may impact resource selection.
  • 28. A Word on Placement Workload locality should still be considered with preferences weighted to the most desirable location. ALWAYS account for cross cluster services that may send traffic to another unencrypted.
  • 29. End User (Researcher) Experience Research App User ● Does not want to use kubectl ● Does not want to have to think about placement.. resources.. security..etc ● Does want to get up and going quickly ● Does want it to “just work” Research App Publisher ● Wants CONSISTENCY above all else ● Want to iterate application deployment design quickly ● An easy method to package entire app stacks
  • 30. Solution: Helm Helm is a Kubernetes Package Manager, that allows you to package up entire application stacks into “Charts”. A Chart is a collection of templates and files that describe the stack you wish to deploy. Helm also is one of the few tools that is Federation aware: https://github.com/kubernetes-helm/rudder-federation
  • 31. Logging and Monitoring Logging and Monitoring are important to both the Research End User and the Administrator as a support tool. Logs and metrics should be aggregated to a central location to give both a single pane-of-glass view of their resources.
  • 32. Logging and Monitoring Popular Log Shipper with native Kubernetes integration and a massive plugin ecosystem. Defacto standard for Kubernetes monitoring with full aggregation/federation support.
  • 33. Administration Being a part of a Federation implicitly means a high level of trust is needed. A full federation administrator is essentially a cluster admin in EVERY cluster.
  • 34. Future Federation v2 is well under development with the lessons learned from developing and managing v1. Cluster discovery is being moved into the Kubernetes Cluster Registry. Policy based placement becomes a first class citizen.
  • 35. Useful Links ● minifed - minikube + federation = minifed https://github.com/slateci/minifed ● Kubernetes Federation - The Hard Way https://github.com/kelseyhightower/kubernetes-cluster-federation ● Kubecon Europe 2017 Keynote: Federation https://www.youtube.com/watch?v=kwOvOLnFYck ● SIG Multicluster - Home of Federation https://github.com/kubernetes/community/tree/master/sig-multicluster