Slide 1

Slide 1 text

Kubernetes no CERN Ricardo Rocha CERN Cloud Team @ahcorporto ricardo.rocha@cern.ch

Slide 2

Slide 2 text

Ricardo Rocha Engenheiro de Computação no CERN Containers, Kubernetes e Networking GPUs e outros aceleradores, Machine Learning Passado: Armazenamento de dados, grelha de computação do LHC

Slide 3

Slide 3 text

Fundado em 1954 De que é feita 96% da matéria do universo? Ciência Fundamental Porque não vemos anti-matéria no universo? Qual era o estado da matéria logo após o Big Bang?

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

9

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

11

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

~70 PB/year 700 000 Cores ~400 000 Jobs ~30 GiB/s 200+ Sites

Slide 15

Slide 15 text

Computação no CERN Mais recursos, mais automação 1970s 2007

Slide 16

Slide 16 text

Computação no CERN Mais recursos, mais automação 1970 2007

Slide 17

Slide 17 text

Computação no CERN Mais recursos, mais automação 1970 2007

Slide 18

Slide 18 text

Computação no CERN Mais recursos, mais automação 1970 2007

Slide 19

Slide 19 text

Containers Simplificação da Infra-estrutura Monitorização, Ciclo e Manutenção, Alarmes Simplificacao do Deployment API Uniforme, Replicação, Load Balancing, Configuração Picos periódicos de utilização Conferências internacionais, Campanhas de Reprocessamento

Slide 20

Slide 20 text

Provisionamento Deployment Atualização Infra-estrutura Fisica Dias ou Semanas Minutos ou Horas Minutos ou Horas Utilização Fraca Manutenção Muito Intrusivo Virtualização e Cloud Minutos Minutos ou Horas Minutos ou Horas Boa Possivelmente Menos Intrusivo Containers Segundos Segundos Segundos Muito Boa Menos Intrusivo

Slide 21

Slide 21 text

Lingua franca da cloud Oferta na maior parte das clouds publicas Múltiplas opções para deployment privado API declarativa para toda a infra-estrutura : computação, armazenamento, networking Ecosistema com vários produtos para funcionalidade adicional Kubernetes

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

Exemplos de Utilização

Slide 25

Slide 25 text

Exemplos de Utilização Filtros dos detectores das experiências Spark as a Service, Spark clusters em Kubernetes KubeFlow e ML distribuído Sistemas Batch em Kubernetes WebLogic e outros serviços internos Experiências com DR para a Oracle Cloud

Slide 26

Slide 26 text

1 PB / seg < 10 GB / seg Tradicionalmente separada em filtros de Hardware e Software ( a mudar gradualmente ) 40 milhões de colisões / segundo ~3000 nós multi core ~30.000 aplicações a monitorizar Sistema critico, falha significa perda de dados Melhorias para a Run 4? Estudo 2017, Mattia Cadeddu, Giuseppe Avolio Kubernetes 1.5.x Primeiro deployment este ano com 1.18.x ATLAS Event Filter

Slide 27

Slide 27 text

1 PB / seg < 10 GB / seg Tradicionalmente separada em filtros de Hardware e Software ( a mudar gradualmente ) 40 milhões de colisões / segundo ~3000 nós multi-core ~30.000 aplicações a monitorizar Sistema critico, falha significa perda de dados Melhorias para a Run 4? Estudo 2017, Mattia Cadeddu, Giuseppe Avolio Kubernetes 1.5.x Primeiro deployment este ano ATLAS Event Filter

Slide 28

Slide 28 text

Simulação é um dos principais workloads x100 no proximo upgrade para HL-LHC Simulação Rápida com Deep Learning Como reduzir o tempo de treino dos modelos? Sofia Vallecorsa, CERN OpenLab Konstantinos Samaras-Tsakiris

Slide 29

Slide 29 text

Sched Negotiator Collector Host StartD ... StartD ... StartD ... kubefed init fed --host-cluster-context=condor-host ... kubefed join --context fed tsystems \ --host-cluster-context condor-host --cluster-context tsystems Federação v1 - May 2018 Cloud Bingo? kind: DaemonSet ... hostNetwork: true containers: - name: condor-startd image: .../cloud/condor-startd command: ["/usr/sbin/condor_startd", "-f"] securityContext: privileged: true livenessProbe: exec: command: - condor_who

Slide 30

Slide 30 text

Virtual Kubelet Implementação com um backend para a Kubernetes API Burst para qualquer outro cluster Kubernetes, interno ou externo CPU CPU CPU GPU VK CERN

Slide 31

Slide 31 text

Architecture Stack actual no CERN Integração focada nestes components Standard na maior parte dos deployments Incluindo os das clouds publics E deployments de Rancher / k3s Usar uma stack comum facilita a manutenção Master Kubelet cri-containerd containerd Master Kubelet

Slide 32

Slide 32 text

Automação e GitOps Já fazíamos GitOps antes com Puppet e Ansible Git como única “source of truth” para configuração Múltiplos modelos de deployment possíveis 1 ⇢ 1: Actualmente o mais popular: uma aplicação, um cluster 1 ⇢ *: Uma aplicação, múltiplos clusters (HA, Blast Radius, Rolling Upgrades) * ⇢ *: Melhoria de utilização dos recursos Meta Chart git push FluxCD git pull Helm Release CRD Helm Operator

Slide 33

Slide 33 text

Mais do que gestão da infra-estrutura Melhoria na utilização e exploração de recursos externos para análise Challenge: Re-processamento da análise do Higgs em menos de 10min Processamento de um dataset de ~70TB e ~25000 ficheiros Criação do Cluster Pre-Pull da Imagem Stage-In dos Dados Process amento 5 min 4 min 4 min 90 sec Kubernetes para Análise de Dados

Slide 34

Slide 34 text

Acesso rápido ao software, lazy loading Download das imagens docker pode demorar muito tempo ~75% do tempo total de lançamento de um container

Slide 35

Slide 35 text

Acesso rápido ao software, lazy loading Remote Snapshotter + stargz stargz (seekable stargz), tar de ficheiros tar Imagens compatíveis com runtimes actuais estargz (enhanced stargz) Melhoramento com pre-fetch dos dados Usa o entrypoint para escolher esses dados Tempo de start do container: sempre < 6 segs https://medium.com/nttlabs/startup-containers-in-lightning-speed-with-lazy-image-distribution-on-containerd-243d94522361

Slide 36

Slide 36 text

Desafios e Futuro Necessidade de fazer mais com os mesmos recursos High Luminosity Large Hadron Collider - HL-LHC x7 colisões por segundo, x10 mais dados e computação Machine Learning Simulacao rapida, filtros nos detetores, deteção de anomalias, … Melhorar a integração com GPUs, utilização de TPUs, IPUs, FPGAs, ...

Slide 37

Slide 37 text

Questões ? @ahcorporto ricardo.rocha@cern.ch http://visits.cern/

Slide 38

Slide 38 text

Backup

Slide 39

Slide 39 text

Kubernetes Integration Master CPU AZ-A CPU AZ-B GPUs Relying on node groups/pools to get heterogeneous clusters Different flavor for each node group: m2.xlarge, g1.xlarge, ... Automated detection and configuration of GPUs Managed by a Helm chart https://gitlab.cern.ch/helm/charts/cern/tree/master/nvidia-gpu Alternative with the GPU operator https://github.com/NVIDIA/gpu-operator https://github.com/NVIDIA/k8s-device-plugin

Slide 40

Slide 40 text

Kubernetes Integration GPUs are already treated as first class resources in Kubernetes apiVersion: v1 kind: Pod metadata: name: mypod spec: containers: - name: mycontainer image: "mycontainerimage:tag" resources: limits: nvidia.com/gpu: 1 # no fractions possible $ kubectl get nodes NAME STATUS ROLES AGE VERSION ... hub-001-gpu-nvi...7iz-node-0 Ready gpu 63d v1.15.3 hub-001-gpu-nvi...7iz-node-1 Ready gpu 63d v1.15.3 Scheduling Quotas Monitoring Sharing NUMA Performance License Yes Yes Yes No Yes Best x

Slide 41

Slide 41 text

Kubernetes Integration Monitoring is done with a Nvidia Prometheus exporter Metrics for temperature, SM/Memory clocks, power usage, throughput, ... https://github.com/NVIDIA/gpu-monitoring-tools/