Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Kubernetes no CERN

Kubernetes no CERN

Ricardo Rocha

June 26, 2020
Tweet

More Decks by Ricardo Rocha

Other Decks in Technology

Transcript

  1. 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
  2. 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?
  3. 9

  4. 11

  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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, ...
  20. 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
  21. 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
  22. 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/