24
Multicloud CI/CD with OpenStack and Kubernetes FOSDEM 2019

Multicloud CI/CD with OpenStack and Kubernetes · Infra tools Heat OpenStack native How about non-openstack clouds? Smaller ecosystem Ansible Cloud modules os_server, os_floating_ip,

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Multicloud CI/CD with OpenStack and Kubernetes · Infra tools Heat OpenStack native How about non-openstack clouds? Smaller ecosystem Ansible Cloud modules os_server, os_floating_ip,

Multicloud CI/CD with OpenStack and Kubernetes

FOSDEM 2019

Page 2: Multicloud CI/CD with OpenStack and Kubernetes · Infra tools Heat OpenStack native How about non-openstack clouds? Smaller ecosystem Ansible Cloud modules os_server, os_floating_ip,

Hi, I’m MaximeCloud Consultant

● Public & Private● OpenStack● Kubernetes● Ceph● CI/CD

Page 3: Multicloud CI/CD with OpenStack and Kubernetes · Infra tools Heat OpenStack native How about non-openstack clouds? Smaller ecosystem Ansible Cloud modules os_server, os_floating_ip,

Introduction

Page 4: Multicloud CI/CD with OpenStack and Kubernetes · Infra tools Heat OpenStack native How about non-openstack clouds? Smaller ecosystem Ansible Cloud modules os_server, os_floating_ip,

Multicloud● Several providers● Resiliency● Vendor lock-in● Cost & Hybrid● Features● Locations & Edge

Page 5: Multicloud CI/CD with OpenStack and Kubernetes · Infra tools Heat OpenStack native How about non-openstack clouds? Smaller ecosystem Ansible Cloud modules os_server, os_floating_ip,

CI/CD● Fail fast● Automation● Consistency

Page 6: Multicloud CI/CD with OpenStack and Kubernetes · Infra tools Heat OpenStack native How about non-openstack clouds? Smaller ecosystem Ansible Cloud modules os_server, os_floating_ip,

OpenStack & Kubernetes● OpenStack

○ API driven○ Open Infrastructure○ 60 Public cloud AZs

● Kubernetes○ Container ecosystem○ Developer centric○ Reproducible○ Portable

Page 7: Multicloud CI/CD with OpenStack and Kubernetes · Infra tools Heat OpenStack native How about non-openstack clouds? Smaller ecosystem Ansible Cloud modules os_server, os_floating_ip,

AppBusiness logic

OpenStackInfrastructure as a Service

Overview

KubernetesContainer platform

Page 8: Multicloud CI/CD with OpenStack and Kubernetes · Infra tools Heat OpenStack native How about non-openstack clouds? Smaller ecosystem Ansible Cloud modules os_server, os_floating_ip,

Multicloud architecture

Page 9: Multicloud CI/CD with OpenStack and Kubernetes · Infra tools Heat OpenStack native How about non-openstack clouds? Smaller ecosystem Ansible Cloud modules os_server, os_floating_ip,

The edge● DNS name● Global load balancing

○ CDN○ DNS

■ Geo routing (Route53, Dyn)■ DIY Dynamic DNS■ Round Robin

Page 10: Multicloud CI/CD with OpenStack and Kubernetes · Infra tools Heat OpenStack native How about non-openstack clouds? Smaller ecosystem Ansible Cloud modules os_server, os_floating_ip,

The app● 12 factor● Dockerized● HTTP based● Distributed

Page 11: Multicloud CI/CD with OpenStack and Kubernetes · Infra tools Heat OpenStack native How about non-openstack clouds? Smaller ecosystem Ansible Cloud modules os_server, os_floating_ip,

Kubernetes● Cloud abstraction● 1 cluster per location● Ingress● Federation...

Page 12: Multicloud CI/CD with OpenStack and Kubernetes · Infra tools Heat OpenStack native How about non-openstack clouds? Smaller ecosystem Ansible Cloud modules os_server, os_floating_ip,

Kubernetes federation● Authentication federation

○ OpenID or Webhook○ --oidc-issuer-url○ --oidc-client-id○ kubectl --auth-provider=oidc

■ or Kuberos

● Kubefed○ One API to rule them all○ V1 discontinued○ V2 in development

■ Kube v1.11+■ Beta Q4?

● DIY - GitLab

Page 13: Multicloud CI/CD with OpenStack and Kubernetes · Infra tools Heat OpenStack native How about non-openstack clouds? Smaller ecosystem Ansible Cloud modules os_server, os_floating_ip,

OpenStack● Nova

○ Servers / Instances○ Security Groups○ Key pairs○ Server Groups (optional)

● Neutron○ Network & Subnet○ Router○ Floating IPs

Page 14: Multicloud CI/CD with OpenStack and Kubernetes · Infra tools Heat OpenStack native How about non-openstack clouds? Smaller ecosystem Ansible Cloud modules os_server, os_floating_ip,

Cloud agnostic tools

Page 15: Multicloud CI/CD with OpenStack and Kubernetes · Infra tools Heat OpenStack native How about non-openstack clouds? Smaller ecosystem Ansible Cloud modules os_server, os_floating_ip,

Infra tools● Heat

○ OpenStack native○ How about non-openstack clouds?○ Smaller ecosystem

● Ansible○ Cloud modules os_server,

os_floating_ip, …○ Lots of clouds: AWS, GCP, VMware

● Terraform○ Infra as a code○ Execution plan○ Even more cloud platforms

Page 16: Multicloud CI/CD with OpenStack and Kubernetes · Infra tools Heat OpenStack native How about non-openstack clouds? Smaller ecosystem Ansible Cloud modules os_server, os_floating_ip,

Kubernetes install tools● Magnum

○ OpenStack only○ Smaller ecosytem

● Kops○ No OpenStack support, AWS only

● Rancher○ No OpenStack support

● Kubespray○ Support: OpenStack, AWS, Azure,

baremetal, VMware, …○ Ansible playbook○ Terraform plans

Page 17: Multicloud CI/CD with OpenStack and Kubernetes · Infra tools Heat OpenStack native How about non-openstack clouds? Smaller ecosystem Ansible Cloud modules os_server, os_floating_ip,

CI tools● Jenkins● GitLab CI

○ Integration with git○ Merge Requests

● App pipeline○ Check○ Build○ Test○ Run

● GitOps○ weave/Flux○ ArgoCD

Page 18: Multicloud CI/CD with OpenStack and Kubernetes · Infra tools Heat OpenStack native How about non-openstack clouds? Smaller ecosystem Ansible Cloud modules os_server, os_floating_ip,

DemoSource: gitlab.com/multicloud-openstack-k8s

Page 19: Multicloud CI/CD with OpenStack and Kubernetes · Infra tools Heat OpenStack native How about non-openstack clouds? Smaller ecosystem Ansible Cloud modules os_server, os_floating_ip,

● DNS RR● Kubespray● Terraform● GitLab CI w/ Auto DevOps

○ docker build && helm install

● 27 regions● 18 cloud providers● Havana to Rocky

Source: gitlab.com/multicloud-openstack-k8s

Demo setup

Page 20: Multicloud CI/CD with OpenStack and Kubernetes · Infra tools Heat OpenStack native How about non-openstack clouds? Smaller ecosystem Ansible Cloud modules os_server, os_floating_ip,
Page 21: Multicloud CI/CD with OpenStack and Kubernetes · Infra tools Heat OpenStack native How about non-openstack clouds? Smaller ecosystem Ansible Cloud modules os_server, os_floating_ip,

Demo

Page 22: Multicloud CI/CD with OpenStack and Kubernetes · Infra tools Heat OpenStack native How about non-openstack clouds? Smaller ecosystem Ansible Cloud modules os_server, os_floating_ip,

Wrap Up

Page 23: Multicloud CI/CD with OpenStack and Kubernetes · Infra tools Heat OpenStack native How about non-openstack clouds? Smaller ecosystem Ansible Cloud modules os_server, os_floating_ip,

● Kubefed v2 is coming● OpenStack interop is hard

○ Firewall rules○ Neutron routers○ Floating IPs○ Glance images○ VM flavors○ Changes over time

● Common denominator vs Exceptions● Clouds as cattle

Wrap Up

Page 24: Multicloud CI/CD with OpenStack and Kubernetes · Infra tools Heat OpenStack native How about non-openstack clouds? Smaller ecosystem Ansible Cloud modules os_server, os_floating_ip,

Thank you!

root314.com/presentations/

[email protected]