SlideShare a Scribd company logo
CERN OpenStack Cloud Control Plane
*From VMs to K8s*
OpenStack Summit - Shanghai 2019
Belmiro Moreira - @belmiromoreira
Spyridon Trigazis - @strigazi
CERN - Large Hadron Collider (LHC)
CERN - Large Hadron Collider (LHC)
CERN: Compact Muon Solenoid (CMS)
CERN Cloud Architecture (High level view)
compute node
nova-compute
child cell controller
nova-api
nova-conductor
nova-network
RabbitMQ
top cell controller
nova-scheduler
nova-conductor
nova cell_2 DB
API nodes
nova-api
nova_api DB
x20
x15
x200
x1
x80
Cinder
cinder-api
cinder-volume
cinder-scheduler
Magnum
magnum-api
magnum-conductor
Keystone
keystone
Glance
glance-api
Placement
placement-api
x30
RabbitMQ cluster
RabbitMQ cluster
RabbitMQ cluster
nova cell_1 DB
glance DB
magnum DB
keystone DB
x10
x10
x3
x3
CERN Cloud Control Plane - VMs
● Cloud “inception”
○ The CERN Cloud Control Plane runs in the Cloud that it provisions!
● Advantages
○ Each OpenStack component runs in a different VM
■ keystone; nova-api; nova-conductor; glance-api; rabbitmq …
○ Isolation between components
■ Scale individual components (Add more VMs)
■ Upgrade individual components
○ Use the same configuration management tool (Puppet) as in physical nodes
● Disadvantages
○ Large number of VMs
■ Difficult to manage
■ VM overhead creates unused resources
○ Configuration changes need to propagate into all service VMs
keystone DB
CERN Cloud Architecture (High level view)
compute node
nova-compute
child cell controller
nova-api
nova-conductor
nova-network
RabbitMQ
top cell controller
nova-scheduler
nova-conductor
nova cell_2 DB
API nodes
nova-api
nova_api DB
x20
x15
x200
x1
x80
Cinder
cinder-api
cinder-volume
cinder-scheduler
Magnum
magnum-api
magnum-conductor
Keystone
keystone
Glance
glance-api
Placement
placement-api
x30
RabbitMQ cluster
RabbitMQ cluster
RabbitMQ cluster
nova cell_1 DB
glance DB
magnum DB
x10
x10
x3
x3
CERN Cloud Architecture - Control Plane
Cell 1 Cell 2 Cell 3 Cell 4
Availability
Zone A
Availability
Zone B
nova-api userVM
keystone rabbitmq
nova-api cinder
userVM glance
userVM magnum
userVM placement
placement rabbitmq
cell controller userVM
userVM userVM
cinder rabbitmq
cell controller userVM userVM cell controller
nova-api userVM
keystone userVM
userVM
magnum
glance
userVM
userVM
userVM
userVMuserVM
CERN Cloud Control Plane - K8s
● Even more... Cloud “inception”!
● Advantages
○ Strong resource consolidation
○ Service replication and resilience native to the K8s orchestration
○ Accelerate deployment/development iterations (and rollback)
■ Handle faster configuration changes/upgrades when comparing with puppet
○ Cluster footprint scale up/down
○ Native autoscaling
● Disadvantages
○ One more “Inception” layer!
○ All support infrastructure (monitoring, alarming, ...) is still not ready for K8s
○ All staff needs to be trained for K8s
CERN Cloud Architecture - Control Plane
Cell 1 Cell 2 Cell 3 Cell 4
Availability
Zone A
Availability
Zone B
userVM userVM
k8s userVM
user VM k8s
userVM k8s
userVM userVM
userVM userVM
userVM user VM
k8s userVM
userVM userVM
userVM k8s
k8s userVM userVM k8s
userVM userVM
k8s userVM
userVM
userVM
k8s
userVM
userVM
userVM
userVMuserVM
CERN Cloud Architecture - Control Plane
User VM
k8s Cluster - VM
k8s Cluster - VM
c-api
Pod
n-cond
Pod
i-api
Pod
i-api
Pod
n-sche
Pod
n-api
Pod
n-api
Pod
n-cond
Pod
i-cond
Pod
m-api
Pod
m-cond
Pod
n-api
Pod
CERN Cloud Architecture - Control Plane
User VM
k8s Cluster - VM
k8s Cluster - VM
c-api
Pod
n-cond
Pod
i-api
Pod
i-api
Pod
n-sche
Pod
n-api
Pod
n-api
Pod
n-rabbit
Pod
i-cond
Pod
m-api
Pod
m-cond
Pod
m-api
Pod
CERN Cloud Architecture - Control Plane
User VM
k8s Cluster - VM
k8s Cluster - VM
c-api
Pod
n-cond
Pod
i-api
Pod
i-api
Pod
n-sche
Pod
n-api
Pod
n-api
Pod
n-rabbit
Pod
i-cond
Pod
m-api
Pod
m-cond
Pod
m-api
Pod
CERN Cloud Architecture - Control Plane
User VM
k8s Cluster - VM
k8s Cluster - VM
c-api
Pod
n-cond
Pod
i-api
Pod
i-api
Pod
n-sche
Pod
n-api
Pod
n-api
Pod
n-rabbit
Pod
i-cond
Pod
m-api
Pod
m-cond
Pod
m-api
Pod
Helm
● The package manager for kubernetes
● Large selection of community managed charts
● Manage only the parameters you need
● Charts stored in s3
● Managed by ChartMuseum
Helm usage (v2)
● Configure client
○ Use secure tiller configuration https://helm.sh/docs/using_helm/#using-ssl-between-helm-and-tiller
● Add chart repositories
● Always inspect the chart contents
● Install charts
$ helm init --tiller-tls …
$ helm repo add myrepo https://example.org/
$ helm repo update
$ helm dependency update
$ helm template <path to chart>
$ helm install myrepo/myapp --name myapp_name -f values.yaml
● One helm chart per service
● git repos openstack/openstack-helm and openstack/openstack-helm-infra
● 20 repos in openstack-helm
● 46 repos in openstack-helm-infra
OpenStack Helm
Secret Management Requirements
• Offer a gitops style solution, with encrypted secrets version controlled
along the rest of the application configuration data
• Allow usage of unchanged upstream helm charts
• Provide good integration with existing helm commands install, upgrade, …
• Secure, central store for encryption keys
• Use existing infrastructure
• Use existing AuthN/AuthZ
Helm Barbican Plugin
Barbican
• Key Manager OpenStack API
service
• types: generic, certificate, RSA
• OpenStack credentials (kerberos
for CERN)
Helm plugin
• Written in go
• Wrapper for install, upgrade, lint
• Edit secrets in memory, write to fs
encrypted
Image Credit: Ricardo Rocha, CERN Cloud
Secrets plugin usage
$ helm secrets -h
Secret handling using OpenStack Barbican.
Secrets are stored encrypted in local files, with the key being stored in
Barbican. These files can be safely committed to version control.
Usage:
secrets [command]
Available Commands:
dec decrypt secrets with barbican key
edit edit secrets
enc encrypt secrets with barbican key
help Help about any command
install wrapper for helm install, decrypting secrets
lint wrapper for helm lint, decrypting secrets
upgrade wrapper for helm upgrade, decrypting secrets
view decrypt and display secrets
Secrets plugin usage cont’d
$ helm secrets view service/secrets.yaml
conf:
service:
DEFAULT:
auth_key: somekey
endpoints:
identity:
service:
password: somepass
$ helm secrets install --name service ./service -f service/secrets.yaml 
-f service/values.yaml --version 0.0.2
...
$ helm secrets edit service/secrets.yaml
$ helm secrets upgrade service ./service -f service/secrets.yaml 
-f service/values.yaml --version 0.0.2
...
OpenStack LOCI
● OpenStack LOCI is a project designed to quickly build Lightweight OCI
compatible images of OpenStack services
● Several projects supported
○ Nova
○ Glance
○ Heat
○ …
● OpenStack-Helm uses OpenStack-LOCI
● We require custom images because the all the internal patches specific to the
CERN Infrastructure
○ Very easy to build local custom images
OpenStack LOCI
● CentOS is supported as base image
docker build 
https://opendev.org/openstack/loci.git#master:dockerfiles/centos 
--tag loci-base:centos
● Easy to use a custom OpenStack Project repo. Many other options available
docker build 
https://opendev.org/openstack/loci.git 
--build-arg PROJECT=nova 
--build-arg PROJECT_REPO=<YOUR_CUSTOM_REPO> 
--build-arg WHEELS="loci/requirements:master-centos" 
--build-arg FROM=loci-base:centos 
--build-arg PROJECT_REF=cern_stein 
--build-arg DIST_PACKAGES="httpd mod_wsgi python2-ldap python2-suds" 
--tag <YOUR_CUSTOM_IMAGE_TAG>
Use Case 1 - Glance on K8s
● How OpenStack HELM deploys Glance?
helm fetch --untar --untardir . 'openstack/glance'
helm template glance
● We would like to integrate the K8s Glance in the current Infrastructure
○ Not build a different deployment from scratch
○ OpenStack HELM is great to build an all in one OpenStack Cloud
○ We would like to have a more controlled initial experience
Use Case 1 - Glance on K8s
● What is needed to deploy Glance on K8s? The basics...
○ Image (LOCI)
○ “ConfigMap” for the configuration file; policy and start the service
○ “Deployment” for the glance-api pod
○ “Service” for port 9292
● How about the secrets?
○ OpenStack can load several configuration files
○ Dedicated configuration file only for the secrets
■ Glance DB password, transport URL for notifications, service accounts
● How about ingress?
○ ngnix Ingress
○ Deployed with HELM
Use Case 1 - Glance on K8s
● What’s different from the OpenStack HELM charts?
○ Used the OpenStack HELM template to built it...
○ But… a very simplified version!
○ Configuration/policy is not deployed as a secret
■ Allows to have the config file in git
■ The same configuration file as production
○ Only Glance and CEPH credentials are secrets
● Very easy to understand and deploy!
● How we deploy it?
○ Everything stored on Git but deployed manually
■ No GitOps for now
○ Ingress added into the production HAProxy
● Currently both deployments (VMs and K8s) run in parallel
Use Case 1 - Glance on K8s
$kubectl get pods
NAME READY STATUS RESTARTS AGE
braided-skunk-nginx-ingress-controller-kglzz 1/1 Running 0 95d
braided-skunk-nginx-ingress-controller-vzgcn 1/1 Running 0 95d
braided-skunk-nginx-ingress-default-backend-68f4755546-rfrr9 1/1 Running 0 95d
glance-api-f686d7cbb-rdw7w 1/1 Running 0 95d
kubectl get configmaps
NAME DATA AGE
braided-skunk-nginx-ingress-tcp 1 120d
glance-bin 7 120d
ingress-controller-leader-nginx 0 120d
$kubectl logs -f glance-api-f686d7cbb-rdw7w
(...)
Use Case 2 - Heat on K8s
● Deploy in parallel with VMs a la glance
● Stock loci image from docker.io/openstackhelm
● Stock Helm Chart replicated in our ChartMuseum
● External puppet-managed rabbit and DB
HA-proxy
Heat-{API,COND} VM
Heat-{API,COND} VM
H-api pod H-api pod
H-api pod H-api pod
RabbitMQ VM
RabbitMQ VM
Kubernetes Cluster Heat DB
Use Case 3 - New Region
● New region requirement
○ Ideal for All-In-One with OpenStack-Helm
● Isolated environment
○ No access to container registry
○ No managed storage
○ No access to puppet
● Small scale
○ Well defined use-case
● Kubernetes on demand for users
Use Case 3 - New Region Architecture
● Single five node kubernetes cluster
○ Manual Deployment with kubeadm
■ Manual import of container images
○ Kubespray has a lot of dependencies on external images
● Self-contained storage
○ Openebs for glance and ‘Registry’
● Self-contained container registry
● External Database
● Requires Glance, Nova, Neutron, Heat, Magnum
Conclusion
● Compact configuration with Helm values
○ Common logging and rabbit configuration
● OpenStack Helm can build a cloud out of the box!
○ Ideal for new deployments
○ Large collection of OS charts available
● OpenStack Helm is challenging for a large deployment
○ No external secret management (eg sealed secrets)
○ Strong dependencies on infra charts
○ Helm 3
Next Steps
● Continue to evaluate different tools
○ Helm3, Kustomize, FluxCD
● GitOps: Automated deployments with FluxCD
● Integrate logging and metrics monitoring
● kustomize with different overlays
● Service Mesh
○ Linkerd vs Istio VS Maesh
@belmiromoreira
@strigazi

More Related Content

What's hot

qemu + gdb: The efficient way to understand/debug Linux kernel code/data stru...
qemu + gdb: The efficient way to understand/debug Linux kernel code/data stru...qemu + gdb: The efficient way to understand/debug Linux kernel code/data stru...
qemu + gdb: The efficient way to understand/debug Linux kernel code/data stru...
Adrian Huang
 
Decompressed vmlinux: linux kernel initialization from page table configurati...
Decompressed vmlinux: linux kernel initialization from page table configurati...Decompressed vmlinux: linux kernel initialization from page table configurati...
Decompressed vmlinux: linux kernel initialization from page table configurati...
Adrian Huang
 
Linux Performance Analysis: New Tools and Old Secrets
Linux Performance Analysis: New Tools and Old SecretsLinux Performance Analysis: New Tools and Old Secrets
Linux Performance Analysis: New Tools and Old Secrets
Brendan Gregg
 
Deploying CloudStack and Ceph with flexible VXLAN and BGP networking
Deploying CloudStack and Ceph with flexible VXLAN and BGP networking Deploying CloudStack and Ceph with flexible VXLAN and BGP networking
Deploying CloudStack and Ceph with flexible VXLAN and BGP networking
ShapeBlue
 
LISA2019 Linux Systems Performance
LISA2019 Linux Systems PerformanceLISA2019 Linux Systems Performance
LISA2019 Linux Systems Performance
Brendan Gregg
 
Prometheus in openstack-helm
Prometheus in openstack-helmPrometheus in openstack-helm
Prometheus in openstack-helm
성일 임
 
Ceph Tech Talk -- Ceph Benchmarking Tool
Ceph Tech Talk -- Ceph Benchmarking ToolCeph Tech Talk -- Ceph Benchmarking Tool
Ceph Tech Talk -- Ceph Benchmarking Tool
Ceph Community
 
DMA Survival Guide
DMA Survival GuideDMA Survival Guide
DMA Survival Guide
Kernel TLV
 
Linux SD/MMC Driver Stack
Linux SD/MMC Driver Stack Linux SD/MMC Driver Stack
Linux SD/MMC Driver Stack
Champ Yen
 
Linux Systems Performance 2016
Linux Systems Performance 2016Linux Systems Performance 2016
Linux Systems Performance 2016
Brendan Gregg
 
The Linux Block Layer - Built for Fast Storage
The Linux Block Layer - Built for Fast StorageThe Linux Block Layer - Built for Fast Storage
The Linux Block Layer - Built for Fast Storage
Kernel TLV
 
DPDK layer for porting IPS-IDS
DPDK layer for porting IPS-IDSDPDK layer for porting IPS-IDS
DPDK layer for porting IPS-IDS
Vipin Varghese
 
DPDK In Depth
DPDK In DepthDPDK In Depth
DPDK In Depth
Kernel TLV
 
Ext4 filesystem(1)
Ext4 filesystem(1)Ext4 filesystem(1)
Ext4 filesystem(1)
Yoshihiro Yunomae
 
Static partitioning virtualization on RISC-V
Static partitioning virtualization on RISC-VStatic partitioning virtualization on RISC-V
Static partitioning virtualization on RISC-V
RISC-V International
 
[OpenStack Days Korea 2016] Track1 - All flash CEPH 구성 및 최적화
[OpenStack Days Korea 2016] Track1 - All flash CEPH 구성 및 최적화[OpenStack Days Korea 2016] Track1 - All flash CEPH 구성 및 최적화
[OpenStack Days Korea 2016] Track1 - All flash CEPH 구성 및 최적화
OpenStack Korea Community
 
Linux Network Stack
Linux Network StackLinux Network Stack
Linux Network Stack
Adrien Mahieux
 
OpenStack Cinder Best Practices - Meet Up
OpenStack Cinder Best Practices - Meet UpOpenStack Cinder Best Practices - Meet Up
OpenStack Cinder Best Practices - Meet Up
Aaron Delp
 
오픈스택 기반 클라우드 서비스 구축 방안 및 사례
오픈스택 기반 클라우드 서비스 구축 방안 및 사례오픈스택 기반 클라우드 서비스 구축 방안 및 사례
오픈스택 기반 클라우드 서비스 구축 방안 및 사례
SONG INSEOB
 
OpenShift Virtualization- Technical Overview.pdf
OpenShift Virtualization- Technical Overview.pdfOpenShift Virtualization- Technical Overview.pdf
OpenShift Virtualization- Technical Overview.pdf
ssuser1490e8
 

What's hot (20)

qemu + gdb: The efficient way to understand/debug Linux kernel code/data stru...
qemu + gdb: The efficient way to understand/debug Linux kernel code/data stru...qemu + gdb: The efficient way to understand/debug Linux kernel code/data stru...
qemu + gdb: The efficient way to understand/debug Linux kernel code/data stru...
 
Decompressed vmlinux: linux kernel initialization from page table configurati...
Decompressed vmlinux: linux kernel initialization from page table configurati...Decompressed vmlinux: linux kernel initialization from page table configurati...
Decompressed vmlinux: linux kernel initialization from page table configurati...
 
Linux Performance Analysis: New Tools and Old Secrets
Linux Performance Analysis: New Tools and Old SecretsLinux Performance Analysis: New Tools and Old Secrets
Linux Performance Analysis: New Tools and Old Secrets
 
Deploying CloudStack and Ceph with flexible VXLAN and BGP networking
Deploying CloudStack and Ceph with flexible VXLAN and BGP networking Deploying CloudStack and Ceph with flexible VXLAN and BGP networking
Deploying CloudStack and Ceph with flexible VXLAN and BGP networking
 
LISA2019 Linux Systems Performance
LISA2019 Linux Systems PerformanceLISA2019 Linux Systems Performance
LISA2019 Linux Systems Performance
 
Prometheus in openstack-helm
Prometheus in openstack-helmPrometheus in openstack-helm
Prometheus in openstack-helm
 
Ceph Tech Talk -- Ceph Benchmarking Tool
Ceph Tech Talk -- Ceph Benchmarking ToolCeph Tech Talk -- Ceph Benchmarking Tool
Ceph Tech Talk -- Ceph Benchmarking Tool
 
DMA Survival Guide
DMA Survival GuideDMA Survival Guide
DMA Survival Guide
 
Linux SD/MMC Driver Stack
Linux SD/MMC Driver Stack Linux SD/MMC Driver Stack
Linux SD/MMC Driver Stack
 
Linux Systems Performance 2016
Linux Systems Performance 2016Linux Systems Performance 2016
Linux Systems Performance 2016
 
The Linux Block Layer - Built for Fast Storage
The Linux Block Layer - Built for Fast StorageThe Linux Block Layer - Built for Fast Storage
The Linux Block Layer - Built for Fast Storage
 
DPDK layer for porting IPS-IDS
DPDK layer for porting IPS-IDSDPDK layer for porting IPS-IDS
DPDK layer for porting IPS-IDS
 
DPDK In Depth
DPDK In DepthDPDK In Depth
DPDK In Depth
 
Ext4 filesystem(1)
Ext4 filesystem(1)Ext4 filesystem(1)
Ext4 filesystem(1)
 
Static partitioning virtualization on RISC-V
Static partitioning virtualization on RISC-VStatic partitioning virtualization on RISC-V
Static partitioning virtualization on RISC-V
 
[OpenStack Days Korea 2016] Track1 - All flash CEPH 구성 및 최적화
[OpenStack Days Korea 2016] Track1 - All flash CEPH 구성 및 최적화[OpenStack Days Korea 2016] Track1 - All flash CEPH 구성 및 최적화
[OpenStack Days Korea 2016] Track1 - All flash CEPH 구성 및 최적화
 
Linux Network Stack
Linux Network StackLinux Network Stack
Linux Network Stack
 
OpenStack Cinder Best Practices - Meet Up
OpenStack Cinder Best Practices - Meet UpOpenStack Cinder Best Practices - Meet Up
OpenStack Cinder Best Practices - Meet Up
 
오픈스택 기반 클라우드 서비스 구축 방안 및 사례
오픈스택 기반 클라우드 서비스 구축 방안 및 사례오픈스택 기반 클라우드 서비스 구축 방안 및 사례
오픈스택 기반 클라우드 서비스 구축 방안 및 사례
 
OpenShift Virtualization- Technical Overview.pdf
OpenShift Virtualization- Technical Overview.pdfOpenShift Virtualization- Technical Overview.pdf
OpenShift Virtualization- Technical Overview.pdf
 

Similar to CERN OpenStack Cloud Control Plane - From VMs to K8s

Kolla talk at OpenStack Summit 2017 in Sydney
Kolla talk at OpenStack Summit 2017 in SydneyKolla talk at OpenStack Summit 2017 in Sydney
Kolla talk at OpenStack Summit 2017 in Sydney
Vikram G Hosakote
 
CloudNativeTurkey - Lines of Defence.pdf
CloudNativeTurkey - Lines of Defence.pdfCloudNativeTurkey - Lines of Defence.pdf
CloudNativeTurkey - Lines of Defence.pdf
Koray Oksay
 
MicroK8s 1.28 - MicroCeph on MicroK8s.pdf
MicroK8s 1.28 - MicroCeph on MicroK8s.pdfMicroK8s 1.28 - MicroCeph on MicroK8s.pdf
MicroK8s 1.28 - MicroCeph on MicroK8s.pdf
Konstantinos Tsakalozos
 
OpenShift 4 installation
OpenShift 4 installationOpenShift 4 installation
OpenShift 4 installation
Robert Bohne
 
Metal-k8s presentation by Julien Girardin @ Paris Kubernetes Meetup
Metal-k8s presentation by Julien Girardin @ Paris Kubernetes MeetupMetal-k8s presentation by Julien Girardin @ Paris Kubernetes Meetup
Metal-k8s presentation by Julien Girardin @ Paris Kubernetes Meetup
Laure Vergeron
 
Kubered -Recipes for C2 Operations on Kubernetes
Kubered -Recipes for C2 Operations on KubernetesKubered -Recipes for C2 Operations on Kubernetes
Kubered -Recipes for C2 Operations on Kubernetes
Jeffrey Holden
 
How Honestbee Does CI/CD on Kubernetes - Vincent DeSmet
How Honestbee Does CI/CD on Kubernetes - Vincent DeSmetHow Honestbee Does CI/CD on Kubernetes - Vincent DeSmet
How Honestbee Does CI/CD on Kubernetes - Vincent DeSmet
DevOpsDaysJKT
 
OpenShift_Installation_Deep_Dive_Robert_Bohne.pdf
OpenShift_Installation_Deep_Dive_Robert_Bohne.pdfOpenShift_Installation_Deep_Dive_Robert_Bohne.pdf
OpenShift_Installation_Deep_Dive_Robert_Bohne.pdf
ssuser9e06a61
 
Deploying PostgreSQL on Kubernetes
Deploying PostgreSQL on KubernetesDeploying PostgreSQL on Kubernetes
Deploying PostgreSQL on Kubernetes
Jimmy Angelakos
 
Performance characteristics of traditional v ms vs docker containers (dockerc...
Performance characteristics of traditional v ms vs docker containers (dockerc...Performance characteristics of traditional v ms vs docker containers (dockerc...
Performance characteristics of traditional v ms vs docker containers (dockerc...
Boden Russell
 
Openstack days taiwan 2016 0712
Openstack days taiwan 2016 0712Openstack days taiwan 2016 0712
Openstack days taiwan 2016 0712
Naoto Gohko
 
Minimal OpenStack LinuxCon NA 2015
Minimal OpenStack LinuxCon NA 2015Minimal OpenStack LinuxCon NA 2015
Minimal OpenStack LinuxCon NA 2015
Sean Dague
 
DockerCon14 Performance Characteristics of Traditional VMs vs. Docker Containers
DockerCon14 Performance Characteristics of Traditional VMs vs. Docker ContainersDockerCon14 Performance Characteristics of Traditional VMs vs. Docker Containers
DockerCon14 Performance Characteristics of Traditional VMs vs. Docker Containers
Docker, Inc.
 
OpenNebulaConf 2016 - OpenNebula, a story about flexibility and technological...
OpenNebulaConf 2016 - OpenNebula, a story about flexibility and technological...OpenNebulaConf 2016 - OpenNebula, a story about flexibility and technological...
OpenNebulaConf 2016 - OpenNebula, a story about flexibility and technological...
OpenNebula Project
 
Dockerizing the Hard Services: Neutron and Nova
Dockerizing the Hard Services: Neutron and NovaDockerizing the Hard Services: Neutron and Nova
Dockerizing the Hard Services: Neutron and Nova
clayton_oneill
 
The Future of Security and Productivity in Our Newly Remote World
The Future of Security and Productivity in Our Newly Remote WorldThe Future of Security and Productivity in Our Newly Remote World
The Future of Security and Productivity in Our Newly Remote World
DevOps.com
 
CD in kubernetes using helm and ksonnet. Stas Kolenkin
CD in kubernetes using helm and ksonnet. Stas KolenkinCD in kubernetes using helm and ksonnet. Stas Kolenkin
CD in kubernetes using helm and ksonnet. Stas Kolenkin
DataArt
 
From Kubernetes to OpenStack in Sydney
From Kubernetes to OpenStack in SydneyFrom Kubernetes to OpenStack in Sydney
From Kubernetes to OpenStack in Sydney
SK Telecom
 
Volume Encryption In CloudStack
Volume Encryption In CloudStackVolume Encryption In CloudStack
Volume Encryption In CloudStack
ShapeBlue
 
CEPH DAY BERLIN - WHAT'S NEW IN CEPH
CEPH DAY BERLIN - WHAT'S NEW IN CEPH CEPH DAY BERLIN - WHAT'S NEW IN CEPH
CEPH DAY BERLIN - WHAT'S NEW IN CEPH
Ceph Community
 

Similar to CERN OpenStack Cloud Control Plane - From VMs to K8s (20)

Kolla talk at OpenStack Summit 2017 in Sydney
Kolla talk at OpenStack Summit 2017 in SydneyKolla talk at OpenStack Summit 2017 in Sydney
Kolla talk at OpenStack Summit 2017 in Sydney
 
CloudNativeTurkey - Lines of Defence.pdf
CloudNativeTurkey - Lines of Defence.pdfCloudNativeTurkey - Lines of Defence.pdf
CloudNativeTurkey - Lines of Defence.pdf
 
MicroK8s 1.28 - MicroCeph on MicroK8s.pdf
MicroK8s 1.28 - MicroCeph on MicroK8s.pdfMicroK8s 1.28 - MicroCeph on MicroK8s.pdf
MicroK8s 1.28 - MicroCeph on MicroK8s.pdf
 
OpenShift 4 installation
OpenShift 4 installationOpenShift 4 installation
OpenShift 4 installation
 
Metal-k8s presentation by Julien Girardin @ Paris Kubernetes Meetup
Metal-k8s presentation by Julien Girardin @ Paris Kubernetes MeetupMetal-k8s presentation by Julien Girardin @ Paris Kubernetes Meetup
Metal-k8s presentation by Julien Girardin @ Paris Kubernetes Meetup
 
Kubered -Recipes for C2 Operations on Kubernetes
Kubered -Recipes for C2 Operations on KubernetesKubered -Recipes for C2 Operations on Kubernetes
Kubered -Recipes for C2 Operations on Kubernetes
 
How Honestbee Does CI/CD on Kubernetes - Vincent DeSmet
How Honestbee Does CI/CD on Kubernetes - Vincent DeSmetHow Honestbee Does CI/CD on Kubernetes - Vincent DeSmet
How Honestbee Does CI/CD on Kubernetes - Vincent DeSmet
 
OpenShift_Installation_Deep_Dive_Robert_Bohne.pdf
OpenShift_Installation_Deep_Dive_Robert_Bohne.pdfOpenShift_Installation_Deep_Dive_Robert_Bohne.pdf
OpenShift_Installation_Deep_Dive_Robert_Bohne.pdf
 
Deploying PostgreSQL on Kubernetes
Deploying PostgreSQL on KubernetesDeploying PostgreSQL on Kubernetes
Deploying PostgreSQL on Kubernetes
 
Performance characteristics of traditional v ms vs docker containers (dockerc...
Performance characteristics of traditional v ms vs docker containers (dockerc...Performance characteristics of traditional v ms vs docker containers (dockerc...
Performance characteristics of traditional v ms vs docker containers (dockerc...
 
Openstack days taiwan 2016 0712
Openstack days taiwan 2016 0712Openstack days taiwan 2016 0712
Openstack days taiwan 2016 0712
 
Minimal OpenStack LinuxCon NA 2015
Minimal OpenStack LinuxCon NA 2015Minimal OpenStack LinuxCon NA 2015
Minimal OpenStack LinuxCon NA 2015
 
DockerCon14 Performance Characteristics of Traditional VMs vs. Docker Containers
DockerCon14 Performance Characteristics of Traditional VMs vs. Docker ContainersDockerCon14 Performance Characteristics of Traditional VMs vs. Docker Containers
DockerCon14 Performance Characteristics of Traditional VMs vs. Docker Containers
 
OpenNebulaConf 2016 - OpenNebula, a story about flexibility and technological...
OpenNebulaConf 2016 - OpenNebula, a story about flexibility and technological...OpenNebulaConf 2016 - OpenNebula, a story about flexibility and technological...
OpenNebulaConf 2016 - OpenNebula, a story about flexibility and technological...
 
Dockerizing the Hard Services: Neutron and Nova
Dockerizing the Hard Services: Neutron and NovaDockerizing the Hard Services: Neutron and Nova
Dockerizing the Hard Services: Neutron and Nova
 
The Future of Security and Productivity in Our Newly Remote World
The Future of Security and Productivity in Our Newly Remote WorldThe Future of Security and Productivity in Our Newly Remote World
The Future of Security and Productivity in Our Newly Remote World
 
CD in kubernetes using helm and ksonnet. Stas Kolenkin
CD in kubernetes using helm and ksonnet. Stas KolenkinCD in kubernetes using helm and ksonnet. Stas Kolenkin
CD in kubernetes using helm and ksonnet. Stas Kolenkin
 
From Kubernetes to OpenStack in Sydney
From Kubernetes to OpenStack in SydneyFrom Kubernetes to OpenStack in Sydney
From Kubernetes to OpenStack in Sydney
 
Volume Encryption In CloudStack
Volume Encryption In CloudStackVolume Encryption In CloudStack
Volume Encryption In CloudStack
 
CEPH DAY BERLIN - WHAT'S NEW IN CEPH
CEPH DAY BERLIN - WHAT'S NEW IN CEPH CEPH DAY BERLIN - WHAT'S NEW IN CEPH
CEPH DAY BERLIN - WHAT'S NEW IN CEPH
 

More from Belmiro Moreira

10 Years of OpenStack at CERN - From 0 to 300k cores
10 Years of OpenStack at CERN - From 0 to 300k cores10 Years of OpenStack at CERN - From 0 to 300k cores
10 Years of OpenStack at CERN - From 0 to 300k cores
Belmiro Moreira
 
Future Science on Future OpenStack
Future Science on Future OpenStackFuture Science on Future OpenStack
Future Science on Future OpenStack
Belmiro Moreira
 
Evolution of Openstack Networking at CERN
Evolution of Openstack Networking at CERNEvolution of Openstack Networking at CERN
Evolution of Openstack Networking at CERN
Belmiro Moreira
 
Containers on Baremetal and Preemptible VMs at CERN and SKA
Containers on Baremetal and Preemptible VMs at CERN and SKAContainers on Baremetal and Preemptible VMs at CERN and SKA
Containers on Baremetal and Preemptible VMs at CERN and SKA
Belmiro Moreira
 
Moving from CellsV1 to CellsV2 at CERN
Moving from CellsV1 to CellsV2 at CERNMoving from CellsV1 to CellsV2 at CERN
Moving from CellsV1 to CellsV2 at CERN
Belmiro Moreira
 
Multi-Cell OpenStack: How to Evolve Your Cloud to Scale - November, 2014
Multi-Cell OpenStack: How to Evolve Your Cloud to Scale - November, 2014Multi-Cell OpenStack: How to Evolve Your Cloud to Scale - November, 2014
Multi-Cell OpenStack: How to Evolve Your Cloud to Scale - November, 2014
Belmiro Moreira
 
Tips Tricks and Tactics with Cells and Scaling OpenStack - May, 2015
Tips Tricks and Tactics with Cells and Scaling OpenStack - May, 2015Tips Tricks and Tactics with Cells and Scaling OpenStack - May, 2015
Tips Tricks and Tactics with Cells and Scaling OpenStack - May, 2015
Belmiro Moreira
 
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
Belmiro Moreira
 
Unveiling CERN Cloud Architecture - October, 2015
Unveiling CERN Cloud Architecture - October, 2015Unveiling CERN Cloud Architecture - October, 2015
Unveiling CERN Cloud Architecture - October, 2015
Belmiro Moreira
 
CPU Optimizations in the CERN Cloud - February 2016
CPU Optimizations in the CERN Cloud - February 2016CPU Optimizations in the CERN Cloud - February 2016
CPU Optimizations in the CERN Cloud - February 2016
Belmiro Moreira
 
Cern Cloud Architecture - February, 2016
Cern Cloud Architecture - February, 2016Cern Cloud Architecture - February, 2016
Cern Cloud Architecture - February, 2016
Belmiro Moreira
 

More from Belmiro Moreira (11)

10 Years of OpenStack at CERN - From 0 to 300k cores
10 Years of OpenStack at CERN - From 0 to 300k cores10 Years of OpenStack at CERN - From 0 to 300k cores
10 Years of OpenStack at CERN - From 0 to 300k cores
 
Future Science on Future OpenStack
Future Science on Future OpenStackFuture Science on Future OpenStack
Future Science on Future OpenStack
 
Evolution of Openstack Networking at CERN
Evolution of Openstack Networking at CERNEvolution of Openstack Networking at CERN
Evolution of Openstack Networking at CERN
 
Containers on Baremetal and Preemptible VMs at CERN and SKA
Containers on Baremetal and Preemptible VMs at CERN and SKAContainers on Baremetal and Preemptible VMs at CERN and SKA
Containers on Baremetal and Preemptible VMs at CERN and SKA
 
Moving from CellsV1 to CellsV2 at CERN
Moving from CellsV1 to CellsV2 at CERNMoving from CellsV1 to CellsV2 at CERN
Moving from CellsV1 to CellsV2 at CERN
 
Multi-Cell OpenStack: How to Evolve Your Cloud to Scale - November, 2014
Multi-Cell OpenStack: How to Evolve Your Cloud to Scale - November, 2014Multi-Cell OpenStack: How to Evolve Your Cloud to Scale - November, 2014
Multi-Cell OpenStack: How to Evolve Your Cloud to Scale - November, 2014
 
Tips Tricks and Tactics with Cells and Scaling OpenStack - May, 2015
Tips Tricks and Tactics with Cells and Scaling OpenStack - May, 2015Tips Tricks and Tactics with Cells and Scaling OpenStack - May, 2015
Tips Tricks and Tactics with Cells and Scaling OpenStack - May, 2015
 
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
 
Unveiling CERN Cloud Architecture - October, 2015
Unveiling CERN Cloud Architecture - October, 2015Unveiling CERN Cloud Architecture - October, 2015
Unveiling CERN Cloud Architecture - October, 2015
 
CPU Optimizations in the CERN Cloud - February 2016
CPU Optimizations in the CERN Cloud - February 2016CPU Optimizations in the CERN Cloud - February 2016
CPU Optimizations in the CERN Cloud - February 2016
 
Cern Cloud Architecture - February, 2016
Cern Cloud Architecture - February, 2016Cern Cloud Architecture - February, 2016
Cern Cloud Architecture - February, 2016
 

Recently uploaded

A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
kalichargn70th171
 
WMF 2024 - Unlocking the Future of Data Powering Next-Gen AI with Vector Data...
WMF 2024 - Unlocking the Future of Data Powering Next-Gen AI with Vector Data...WMF 2024 - Unlocking the Future of Data Powering Next-Gen AI with Vector Data...
WMF 2024 - Unlocking the Future of Data Powering Next-Gen AI with Vector Data...
Luigi Fugaro
 
TMU毕业证书精仿办理
TMU毕业证书精仿办理TMU毕业证书精仿办理
TMU毕业证书精仿办理
aeeva
 
Boost Your Savings with These Money Management Apps
Boost Your Savings with These Money Management AppsBoost Your Savings with These Money Management Apps
Boost Your Savings with These Money Management Apps
Jhone kinadey
 
ppt on the brain chip neuralink.pptx
ppt  on   the brain  chip neuralink.pptxppt  on   the brain  chip neuralink.pptx
ppt on the brain chip neuralink.pptx
Reetu63
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
ToXSL Technologies
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
brainerhub1
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
Marcin Chrost
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
dakas1
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
Bert Jan Schrijver
 
Transforming Product Development using OnePlan To Boost Efficiency and Innova...
Transforming Product Development using OnePlan To Boost Efficiency and Innova...Transforming Product Development using OnePlan To Boost Efficiency and Innova...
Transforming Product Development using OnePlan To Boost Efficiency and Innova...
OnePlan Solutions
 
Kubernetes at Scale: Going Multi-Cluster with Istio
Kubernetes at Scale:  Going Multi-Cluster  with IstioKubernetes at Scale:  Going Multi-Cluster  with Istio
Kubernetes at Scale: Going Multi-Cluster with Istio
Severalnines
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
kalichargn70th171
 
What’s New in Odoo 17 – A Complete Roadmap
What’s New in Odoo 17 – A Complete RoadmapWhat’s New in Odoo 17 – A Complete Roadmap
What’s New in Odoo 17 – A Complete Roadmap
Envertis Software Solutions
 
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
gapen1
 
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
kgyxske
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
Alluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio Webinar | 10x Faster Trino Queries on Your Data PlatformAlluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio, Inc.
 
Orca: Nocode Graphical Editor for Container Orchestration
Orca: Nocode Graphical Editor for Container OrchestrationOrca: Nocode Graphical Editor for Container Orchestration
Orca: Nocode Graphical Editor for Container Orchestration
Pedro J. Molina
 
14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision
ShulagnaSarkar2
 

Recently uploaded (20)

A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
 
WMF 2024 - Unlocking the Future of Data Powering Next-Gen AI with Vector Data...
WMF 2024 - Unlocking the Future of Data Powering Next-Gen AI with Vector Data...WMF 2024 - Unlocking the Future of Data Powering Next-Gen AI with Vector Data...
WMF 2024 - Unlocking the Future of Data Powering Next-Gen AI with Vector Data...
 
TMU毕业证书精仿办理
TMU毕业证书精仿办理TMU毕业证书精仿办理
TMU毕业证书精仿办理
 
Boost Your Savings with These Money Management Apps
Boost Your Savings with These Money Management AppsBoost Your Savings with These Money Management Apps
Boost Your Savings with These Money Management Apps
 
ppt on the brain chip neuralink.pptx
ppt  on   the brain  chip neuralink.pptxppt  on   the brain  chip neuralink.pptx
ppt on the brain chip neuralink.pptx
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
 
Transforming Product Development using OnePlan To Boost Efficiency and Innova...
Transforming Product Development using OnePlan To Boost Efficiency and Innova...Transforming Product Development using OnePlan To Boost Efficiency and Innova...
Transforming Product Development using OnePlan To Boost Efficiency and Innova...
 
Kubernetes at Scale: Going Multi-Cluster with Istio
Kubernetes at Scale:  Going Multi-Cluster  with IstioKubernetes at Scale:  Going Multi-Cluster  with Istio
Kubernetes at Scale: Going Multi-Cluster with Istio
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
 
What’s New in Odoo 17 – A Complete Roadmap
What’s New in Odoo 17 – A Complete RoadmapWhat’s New in Odoo 17 – A Complete Roadmap
What’s New in Odoo 17 – A Complete Roadmap
 
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
 
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
Alluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio Webinar | 10x Faster Trino Queries on Your Data PlatformAlluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio Webinar | 10x Faster Trino Queries on Your Data Platform
 
Orca: Nocode Graphical Editor for Container Orchestration
Orca: Nocode Graphical Editor for Container OrchestrationOrca: Nocode Graphical Editor for Container Orchestration
Orca: Nocode Graphical Editor for Container Orchestration
 
14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision
 

CERN OpenStack Cloud Control Plane - From VMs to K8s

  • 1.
  • 2. CERN OpenStack Cloud Control Plane *From VMs to K8s* OpenStack Summit - Shanghai 2019 Belmiro Moreira - @belmiromoreira Spyridon Trigazis - @strigazi
  • 3. CERN - Large Hadron Collider (LHC)
  • 4. CERN - Large Hadron Collider (LHC)
  • 5. CERN: Compact Muon Solenoid (CMS)
  • 6.
  • 7. CERN Cloud Architecture (High level view) compute node nova-compute child cell controller nova-api nova-conductor nova-network RabbitMQ top cell controller nova-scheduler nova-conductor nova cell_2 DB API nodes nova-api nova_api DB x20 x15 x200 x1 x80 Cinder cinder-api cinder-volume cinder-scheduler Magnum magnum-api magnum-conductor Keystone keystone Glance glance-api Placement placement-api x30 RabbitMQ cluster RabbitMQ cluster RabbitMQ cluster nova cell_1 DB glance DB magnum DB keystone DB x10 x10 x3 x3
  • 8. CERN Cloud Control Plane - VMs ● Cloud “inception” ○ The CERN Cloud Control Plane runs in the Cloud that it provisions! ● Advantages ○ Each OpenStack component runs in a different VM ■ keystone; nova-api; nova-conductor; glance-api; rabbitmq … ○ Isolation between components ■ Scale individual components (Add more VMs) ■ Upgrade individual components ○ Use the same configuration management tool (Puppet) as in physical nodes ● Disadvantages ○ Large number of VMs ■ Difficult to manage ■ VM overhead creates unused resources ○ Configuration changes need to propagate into all service VMs
  • 9. keystone DB CERN Cloud Architecture (High level view) compute node nova-compute child cell controller nova-api nova-conductor nova-network RabbitMQ top cell controller nova-scheduler nova-conductor nova cell_2 DB API nodes nova-api nova_api DB x20 x15 x200 x1 x80 Cinder cinder-api cinder-volume cinder-scheduler Magnum magnum-api magnum-conductor Keystone keystone Glance glance-api Placement placement-api x30 RabbitMQ cluster RabbitMQ cluster RabbitMQ cluster nova cell_1 DB glance DB magnum DB x10 x10 x3 x3
  • 10. CERN Cloud Architecture - Control Plane Cell 1 Cell 2 Cell 3 Cell 4 Availability Zone A Availability Zone B nova-api userVM keystone rabbitmq nova-api cinder userVM glance userVM magnum userVM placement placement rabbitmq cell controller userVM userVM userVM cinder rabbitmq cell controller userVM userVM cell controller nova-api userVM keystone userVM userVM magnum glance userVM userVM userVM userVMuserVM
  • 11. CERN Cloud Control Plane - K8s ● Even more... Cloud “inception”! ● Advantages ○ Strong resource consolidation ○ Service replication and resilience native to the K8s orchestration ○ Accelerate deployment/development iterations (and rollback) ■ Handle faster configuration changes/upgrades when comparing with puppet ○ Cluster footprint scale up/down ○ Native autoscaling ● Disadvantages ○ One more “Inception” layer! ○ All support infrastructure (monitoring, alarming, ...) is still not ready for K8s ○ All staff needs to be trained for K8s
  • 12. CERN Cloud Architecture - Control Plane Cell 1 Cell 2 Cell 3 Cell 4 Availability Zone A Availability Zone B userVM userVM k8s userVM user VM k8s userVM k8s userVM userVM userVM userVM userVM user VM k8s userVM userVM userVM userVM k8s k8s userVM userVM k8s userVM userVM k8s userVM userVM userVM k8s userVM userVM userVM userVMuserVM
  • 13. CERN Cloud Architecture - Control Plane User VM k8s Cluster - VM k8s Cluster - VM c-api Pod n-cond Pod i-api Pod i-api Pod n-sche Pod n-api Pod n-api Pod n-cond Pod i-cond Pod m-api Pod m-cond Pod n-api Pod
  • 14. CERN Cloud Architecture - Control Plane User VM k8s Cluster - VM k8s Cluster - VM c-api Pod n-cond Pod i-api Pod i-api Pod n-sche Pod n-api Pod n-api Pod n-rabbit Pod i-cond Pod m-api Pod m-cond Pod m-api Pod
  • 15. CERN Cloud Architecture - Control Plane User VM k8s Cluster - VM k8s Cluster - VM c-api Pod n-cond Pod i-api Pod i-api Pod n-sche Pod n-api Pod n-api Pod n-rabbit Pod i-cond Pod m-api Pod m-cond Pod m-api Pod
  • 16. CERN Cloud Architecture - Control Plane User VM k8s Cluster - VM k8s Cluster - VM c-api Pod n-cond Pod i-api Pod i-api Pod n-sche Pod n-api Pod n-api Pod n-rabbit Pod i-cond Pod m-api Pod m-cond Pod m-api Pod
  • 17. Helm ● The package manager for kubernetes ● Large selection of community managed charts ● Manage only the parameters you need ● Charts stored in s3 ● Managed by ChartMuseum
  • 18. Helm usage (v2) ● Configure client ○ Use secure tiller configuration https://helm.sh/docs/using_helm/#using-ssl-between-helm-and-tiller ● Add chart repositories ● Always inspect the chart contents ● Install charts $ helm init --tiller-tls … $ helm repo add myrepo https://example.org/ $ helm repo update $ helm dependency update $ helm template <path to chart> $ helm install myrepo/myapp --name myapp_name -f values.yaml
  • 19. ● One helm chart per service ● git repos openstack/openstack-helm and openstack/openstack-helm-infra ● 20 repos in openstack-helm ● 46 repos in openstack-helm-infra OpenStack Helm
  • 20. Secret Management Requirements • Offer a gitops style solution, with encrypted secrets version controlled along the rest of the application configuration data • Allow usage of unchanged upstream helm charts • Provide good integration with existing helm commands install, upgrade, … • Secure, central store for encryption keys • Use existing infrastructure • Use existing AuthN/AuthZ
  • 21. Helm Barbican Plugin Barbican • Key Manager OpenStack API service • types: generic, certificate, RSA • OpenStack credentials (kerberos for CERN) Helm plugin • Written in go • Wrapper for install, upgrade, lint • Edit secrets in memory, write to fs encrypted Image Credit: Ricardo Rocha, CERN Cloud
  • 22. Secrets plugin usage $ helm secrets -h Secret handling using OpenStack Barbican. Secrets are stored encrypted in local files, with the key being stored in Barbican. These files can be safely committed to version control. Usage: secrets [command] Available Commands: dec decrypt secrets with barbican key edit edit secrets enc encrypt secrets with barbican key help Help about any command install wrapper for helm install, decrypting secrets lint wrapper for helm lint, decrypting secrets upgrade wrapper for helm upgrade, decrypting secrets view decrypt and display secrets
  • 23. Secrets plugin usage cont’d $ helm secrets view service/secrets.yaml conf: service: DEFAULT: auth_key: somekey endpoints: identity: service: password: somepass $ helm secrets install --name service ./service -f service/secrets.yaml -f service/values.yaml --version 0.0.2 ... $ helm secrets edit service/secrets.yaml $ helm secrets upgrade service ./service -f service/secrets.yaml -f service/values.yaml --version 0.0.2 ...
  • 24. OpenStack LOCI ● OpenStack LOCI is a project designed to quickly build Lightweight OCI compatible images of OpenStack services ● Several projects supported ○ Nova ○ Glance ○ Heat ○ … ● OpenStack-Helm uses OpenStack-LOCI ● We require custom images because the all the internal patches specific to the CERN Infrastructure ○ Very easy to build local custom images
  • 25. OpenStack LOCI ● CentOS is supported as base image docker build https://opendev.org/openstack/loci.git#master:dockerfiles/centos --tag loci-base:centos ● Easy to use a custom OpenStack Project repo. Many other options available docker build https://opendev.org/openstack/loci.git --build-arg PROJECT=nova --build-arg PROJECT_REPO=<YOUR_CUSTOM_REPO> --build-arg WHEELS="loci/requirements:master-centos" --build-arg FROM=loci-base:centos --build-arg PROJECT_REF=cern_stein --build-arg DIST_PACKAGES="httpd mod_wsgi python2-ldap python2-suds" --tag <YOUR_CUSTOM_IMAGE_TAG>
  • 26. Use Case 1 - Glance on K8s ● How OpenStack HELM deploys Glance? helm fetch --untar --untardir . 'openstack/glance' helm template glance ● We would like to integrate the K8s Glance in the current Infrastructure ○ Not build a different deployment from scratch ○ OpenStack HELM is great to build an all in one OpenStack Cloud ○ We would like to have a more controlled initial experience
  • 27. Use Case 1 - Glance on K8s ● What is needed to deploy Glance on K8s? The basics... ○ Image (LOCI) ○ “ConfigMap” for the configuration file; policy and start the service ○ “Deployment” for the glance-api pod ○ “Service” for port 9292 ● How about the secrets? ○ OpenStack can load several configuration files ○ Dedicated configuration file only for the secrets ■ Glance DB password, transport URL for notifications, service accounts ● How about ingress? ○ ngnix Ingress ○ Deployed with HELM
  • 28. Use Case 1 - Glance on K8s ● What’s different from the OpenStack HELM charts? ○ Used the OpenStack HELM template to built it... ○ But… a very simplified version! ○ Configuration/policy is not deployed as a secret ■ Allows to have the config file in git ■ The same configuration file as production ○ Only Glance and CEPH credentials are secrets ● Very easy to understand and deploy! ● How we deploy it? ○ Everything stored on Git but deployed manually ■ No GitOps for now ○ Ingress added into the production HAProxy ● Currently both deployments (VMs and K8s) run in parallel
  • 29. Use Case 1 - Glance on K8s $kubectl get pods NAME READY STATUS RESTARTS AGE braided-skunk-nginx-ingress-controller-kglzz 1/1 Running 0 95d braided-skunk-nginx-ingress-controller-vzgcn 1/1 Running 0 95d braided-skunk-nginx-ingress-default-backend-68f4755546-rfrr9 1/1 Running 0 95d glance-api-f686d7cbb-rdw7w 1/1 Running 0 95d kubectl get configmaps NAME DATA AGE braided-skunk-nginx-ingress-tcp 1 120d glance-bin 7 120d ingress-controller-leader-nginx 0 120d $kubectl logs -f glance-api-f686d7cbb-rdw7w (...)
  • 30. Use Case 2 - Heat on K8s ● Deploy in parallel with VMs a la glance ● Stock loci image from docker.io/openstackhelm ● Stock Helm Chart replicated in our ChartMuseum ● External puppet-managed rabbit and DB HA-proxy Heat-{API,COND} VM Heat-{API,COND} VM H-api pod H-api pod H-api pod H-api pod RabbitMQ VM RabbitMQ VM Kubernetes Cluster Heat DB
  • 31. Use Case 3 - New Region ● New region requirement ○ Ideal for All-In-One with OpenStack-Helm ● Isolated environment ○ No access to container registry ○ No managed storage ○ No access to puppet ● Small scale ○ Well defined use-case ● Kubernetes on demand for users
  • 32. Use Case 3 - New Region Architecture ● Single five node kubernetes cluster ○ Manual Deployment with kubeadm ■ Manual import of container images ○ Kubespray has a lot of dependencies on external images ● Self-contained storage ○ Openebs for glance and ‘Registry’ ● Self-contained container registry ● External Database ● Requires Glance, Nova, Neutron, Heat, Magnum
  • 33. Conclusion ● Compact configuration with Helm values ○ Common logging and rabbit configuration ● OpenStack Helm can build a cloud out of the box! ○ Ideal for new deployments ○ Large collection of OS charts available ● OpenStack Helm is challenging for a large deployment ○ No external secret management (eg sealed secrets) ○ Strong dependencies on infra charts ○ Helm 3
  • 34. Next Steps ● Continue to evaluate different tools ○ Helm3, Kustomize, FluxCD ● GitOps: Automated deployments with FluxCD ● Integrate logging and metrics monitoring ● kustomize with different overlays ● Service Mesh ○ Linkerd vs Istio VS Maesh