Slide 1

Slide 1 text

Kubernetes on OpenStack on Kubernetes with Magnum and Kolla Kyle bai R&D @ inwinSTACK www.inwinstack.com www.openstack.org Gene Kuo AUC @ OpenStack Kubernetes Day

Slide 2

Slide 2 text

About Us 郭靖 & 黃蓉⽩白仁 Job R&D@ inwinSTACK kairen([email protected]) https://kairen.github.io/ Love Buttocks Coffee Good! Previously worked on iOS and Cloud-native team at NUTC imac as team leader. OpenStack and Kubernetes Contributor, Kubernetes Certified Administrator. Job Student @ NCTU AUC @ OpenStack He is working in the different field from his major as below: • OpenStack Active User Contributor. • Former OpenStack Foundation Intern. • Organizer at OpenStack Taiwan User Group. • Contact me for [email protected]

Slide 3

Slide 3 text

Agenda Today We will talk about K8s on OpenStack on K8s 10min 15min 15min OpenStack & Kubernetes Let’s Go OpenStack on K8s Bonus

Slide 4

Slide 4 text

OpenStack & Kubernetes

Slide 5

Slide 5 text

What is OpenStack? • OpenStack software controls large pools of compute, storage, and networking resources throughout a datacenter, managed through a dashboard or via the OpenStack API. • It’s a collection of projects that collectively form a multi-tenant cloud operating system. • OpenStack is a free and open-source. Deployments 1000+ Projects 50+ Contributors 13161+

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

What is OpenStack Not? • Easy to deploy • Easy to scale • Easy to provide high availability • Easy to upgrade • Easy to manage

Slide 8

Slide 8 text

What is Kubernetes? • Kubernetes is an open-source platform for automating deployment, scaling, and operations of application containers across clusters of hosts, providing container-centric infrastructure. • Easy to deploy, scale, manage, …,etc. • CNCF Project. Stars 25,830+ Commits 52,905+ Contributors 1,331+

Slide 9

Slide 9 text

What is Kubernetes Not? • Multi-tenancy • Multi-cluster • Good at supporting complex networking topology. • Part of a large established ecosystem, running many production workloads.

Slide 10

Slide 10 text

OpenStack on Kubernetes

Slide 11

Slide 11 text

OpenStack on Kubernetes Deploy and manage OpenStack on Kubernetes.

Slide 12

Slide 12 text

The Infrastructure Sandwich • Bare metal, Virtual machine and Container. • Auto-scale the Kubernetes Cluster. • Helm-based Application deployment on Kubernetes. • Multi-tenancy environment. • Manage multiple Kubernetes cluster.

Slide 13

Slide 13 text

What is Kolla? Kolla provides production-ready containers and deployment tools for operating OpenStack clouds that are scalable, fast, reliable, and upgradable using community best practices.

Slide 14

Slide 14 text

What is Kolla-Kubernetes? Kolla-Kubernetes is a community driven deliverable of the OpenStack Kolla project that delivers complete lifecycle management, often referred to as day-2 operations, of OpenStack services running on a Kubernetes underlay.

Slide 15

Slide 15 text

Terminology = + + + +

Slide 16

Slide 16 text

This work is progressing quickly Using Kubernetes v1.6+ Primatives: • Using Kubernetes Helm Charts. • Services are tagged to nodes. • Agents become Daemon sets. • Databases using Stateful sets. • Multiple container sources.

Slide 17

Slide 17 text

Why Kolla-Kubernetes? • OpenStack just another application. • Natural evolution for Kolla. • Benefits: • Abstraction layer for hardware. • Orchestrate and manage a complex application. • Additions to Kolla-Kubernetes: • Fernet tokens as default keystone token mechanism. • Support Ironic. • Support Prometheus.

Slide 18

Slide 18 text

Kolla-K8s Architecture

Slide 19

Slide 19 text

What's new in Pike? • Dynamic volume provisioning • Kolla-Kubernetes by default uses Ceph for stateful storage. • With Kubernetes 1.5+, support was added for Ceph and dynamic volume provisioning as requested by claims made against the API server. • Service level package using Kubernetes entrypoint. • Image pull policy can now be set for all containers. • Helm chart to bring up OpenStack deployment. • mariadb, rabbitmq, memcached, keystone, glance, cinder, neutron, nova and horizon. This compute kit uses iscsi/lvm as a backend for cinder volume.

Slide 20

Slide 20 text

https://www.youtube.com/watch?v=rHCCUP2odd8

Slide 21

Slide 21 text

K8s on OpenStack on K8s

Slide 22

Slide 22 text

K8s on OpenStack on K8s

Slide 23

Slide 23 text

What is Magnum? Magnum is an OpenStack project which offers container orchestration engines for deploying and managing containers as first class resources in OpenStack.

Slide 24

Slide 24 text

Terminology • COE: Container Orchestration Engine to manage containers. Examples: Kubernetes, Docker Swarm, Apache Mesos, DCOS. • Cluster/Bay: A construct in which Magnum launches COE.

Slide 25

Slide 25 text

Terminology • ClusterTemplate/BayModel: Template for creating clusters. Includes image, COE. • Native Client: Use native clients at COE level or at container level to interact with clusters. Ex: kubectl, docker, zun.

Slide 26

Slide 26 text

Why Magnum? • Abstractions for Clusters • Multi-tenancy for containers. • Reusing OpenStack Components like Keystone, Heat, Glance, Neutron, …, etc. • Multiple COEs side by side • Server Type: VM, Bare Metal.

Slide 27

Slide 27 text

Magnum Architecture

Slide 28

Slide 28 text

What's new in Pike? • Kubernetes clusters now Include the kubernetes dashboard. • Monitoring stack based on cAdvisor, node-exporter, Prometheus and Grafana. • Restriction of the access of Magnum’s trustID so that it doesn’t have unrestricted access to every service in OpenStack project. • DC/OS supported.

Slide 29

Slide 29 text

https://www.youtube.com/watch?v=uLcjdushn6g

Slide 30

Slide 30 text

Bonus

Slide 31

Slide 31 text

What is Kuryr? Kuryr is a Docker network plugin that uses Neutron to provide networking services to Docker containers. It provides containerized images for the common Neutron plugins. Run both OpenStack VMs and Kubernetes Pods on the same Neutron network https://github.com/openstack/kuryr

Slide 32

Slide 32 text

Kuryr Architecture

Slide 33

Slide 33 text

What is Stackube? Stackube is a Kubernetes-centric OpenStack distro. It uses Kubernetes, instead of Nova, as the compute fabric controller, to provision containers as the compute instance, along with other OpenStack services (e.g. Cinder, Neutron). It supports multiple container runtime technologies, e.g. Docker, Hyper, and offers built-in soft / hard multi-tenancy (depending on the container runtime used). Integrate OpenStack projects with Kubernetes for multi-tenancy. https://github.com/openstack/stackube

Slide 34

Slide 34 text

Stackube Architecture

Slide 35

Slide 35 text

What is KubeSpray? KubeSpray is an incubated Kubernetes community project for deploying K8s clusters on premises or in the cloud. https://github.com/kubernetes-incubator/kubespray

Slide 36

Slide 36 text

KubeSpray Architecture

Slide 37

Slide 37 text

Features • Can be deployed on AWS, GCE, Azure, OpenStack or Baremetal. • High availability cluster Support. • Composable (Choice of the network plugin for instance). • Support most popular Linux distributions. • Continuous integration tests. • Support kubeadm deployment.

Slide 38

Slide 38 text

38 有任何問題與想法,可以⼀一起討論唷。 Thank You!!