9 ways to consume kubernetes on open stack in 15 mins (k8s meetup)

28
cloudops.com @cloudops_ 9 Ways to consume Kubernetes on OpenStack in 15 minutes

Upload: stacy-veronneau

Post on 25-Jan-2017

262 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: 9 ways to consume kubernetes on open stack in 15 mins (k8s meetup)

cloudops.com @cloudops_

9 Ways to consume Kubernetes on OpenStack in 15 minutes

Page 2: 9 ways to consume kubernetes on open stack in 15 mins (k8s meetup)

cloudops.com @cloudops_Page

About CloudOps

2

Cloud infrastructure experts since 2005 Managed private, public, and hybrid cloudsDeloitte’s Technology Fast 50TM

Ranked in PROFIT 500 2013, 2014, 2015, 2016AWS PartnerCitrix Specialist in Networking for data centreMirantis partnerRanked in Branham300 list

Page 3: 9 ways to consume kubernetes on open stack in 15 mins (k8s meetup)

cloudops.com @cloudops_Page

Who are we?

3

Stacy Véronneau

Director of OpenStack Solutions at CloudOps

Cloud Architect with MirantisUsing public cloud resources for

DEV, QA and Prod since 2007Started to use OpenStack at

Folsom release

Page 4: 9 ways to consume kubernetes on open stack in 15 mins (k8s meetup)

cloudops.com @cloudops_Page

Who are we?

4

Ayrat Khayretdinov

OpenStack & K8s Engineer and developer at CloudOps

Started to use OpenStack from Grizzly

Organizer of K8s and Openstack meetups in Canada

Page 5: 9 ways to consume kubernetes on open stack in 15 mins (k8s meetup)

cloudops.com @cloudops_

MicroServices

Page 6: 9 ways to consume kubernetes on open stack in 15 mins (k8s meetup)

cloudops.com @cloudops_Page

What are MicroServices

6

The concept of building applications as series of composable, modular services is nothing new, dating back as far as the first UNIX operating systems. However, more recent phenomena explain the renewed interest.

1. Adoption of Open Source technologies2. Ascension of the pluggable architecture (API)3. Rise of the Containers ecosystem

Page 7: 9 ways to consume kubernetes on open stack in 15 mins (k8s meetup)

cloudops.com @cloudops_Page

Promises of MicroServices

7

MicroServices are trying to solve the age old saying that goes a bit like, “every successful application is an architectural nightmare”.

1. GrowthInnovation drives growth and organizations should maximize

opportunities to innovate. 2. Agility

A platform composed of 100 services can be easily fixed or feature augmented faster.

3. Risk ReductionMicroservices, if designed properly, provide significant

isolation. As a result applications are built such that any and all dependencies between services are remote with the expectation that dependencies will fail.

Page 8: 9 ways to consume kubernetes on open stack in 15 mins (k8s meetup)

cloudops.com @cloudops_

OpenStack

Page 9: 9 ways to consume kubernetes on open stack in 15 mins (k8s meetup)

cloudops.com @cloudops_Page

What is OpenStack

9

OpenStack is a free and open-source software platform for cloud computing, mostly deployed as an infrastructure-as-a-service (IaaS). The software platform consists of interrelated components that control diverse, multi-vendor hardware pools of processing, storage, and networking resources throughout a data center.

Page 10: 9 ways to consume kubernetes on open stack in 15 mins (k8s meetup)

cloudops.com @cloudops_Page

Why Kubernetes On OpenStack

10

OpenStack can offer a single pane of glass for containerized, virtualized or bare metal(ized) resources. Running K8s on OpenStack makes operations easier (centralized) but also exposes a single set a API to target all resources (1 API to Rule Them All!).

OpenStack Newton, the technology's 14th release, shows just how far we've come: where we used to focus on basic things, such as supporting specific hypervisors or enabling basic SDN capabilities, now that's a given, and we're talking about how OpenStack has reached its goal of supporting cloud-native applications in all of their forms -- virtual machines, containers, and bare metal.

Page 11: 9 ways to consume kubernetes on open stack in 15 mins (k8s meetup)

cloudops.com @cloudops_

Let’s Get Started!

Page 12: 9 ways to consume kubernetes on open stack in 15 mins (k8s meetup)

cloudops.com @cloudops_

#9-8 KubeAdm and MiniKube

Page 13: 9 ways to consume kubernetes on open stack in 15 mins (k8s meetup)

cloudops.com @cloudops_Page

#9-8 KubeAdm and MiniKube

13

This is NOT consuming OpenStack but we have to start with the first place a developer is exposed to Kubernetes. Usually it’s their laptop but could also be a single instance with a Cloud Provider. Currently both solutions don’t offer a Cloud Provider support.

KubeADM (Ubuntu 16.04 or CentOS 7)Bootstrap a K8s cluster in 2 commands.The installation uses a tool called kubeadm which is part of Kubernetes 1.4.This process works with local VMs, physical servers and/or cloud servers. It is simple enough that you can easily integrate its use into your own automation (Terraform, Chef, Puppet, etc).

The kubeadm tool is currently in alpha

MiniKube (Linux / OSX)Minikube starts a single node kubernetes cluster locally for purposes of development and testing. Minikube packages and configures a Linux VM, Docker and all Kubernetes components, optimized for local development. Minikube supports Kubernetes features such as DNS, NodePorts, ConfigMaps and Secrets, DashboardsMinikube does not yet support Cloud Provider specific features such as LoadBalancers, PersistentVolumes, Ingress

Page 14: 9 ways to consume kubernetes on open stack in 15 mins (k8s meetup)

cloudops.com @cloudops_

#7 The Hard Way

Page 15: 9 ways to consume kubernetes on open stack in 15 mins (k8s meetup)

cloudops.com @cloudops_Page

#7 The Hard Way

15

This is for a fully custom and involved deployment. This can be done by spinning instances in OpenStack and start pulling the Git repo on you master deployment node.

PROSYour control what you get from versions to

services.

CONS

Page 16: 9 ways to consume kubernetes on open stack in 15 mins (k8s meetup)

cloudops.com @cloudops_

#6 Heat from K8s SIG

Page 17: 9 ways to consume kubernetes on open stack in 15 mins (k8s meetup)

cloudops.com @cloudops_Page

#6 OpenStack Heat from K8s SIG

17

Kubernetes OpenStack SIG (Special Interest Group) maintance kube-up.sh script (Kubernetes community effort to deploy K8s on different environments) via Openstack CloudProvider, this effort allows to deploy kubernetes cluster on Openstack by using combination of Heat templates and SaltStack.

PROSCapability to provision Openstack resources such

as VMs, Networking, Sec. Groups via Heat

Supports Openstack cloud provider features

Services exposure via LbaaS v1 or V2

Cinder integration

CONSCan serve as a basic env to run K8s on OpenstackNon production, Non HARuns on CentOS 7 onlyNo alternative to LbaaS way to expose servicesNo addons integrationNo HA supportNot composableNo Rkt support yet

Page 18: 9 ways to consume kubernetes on open stack in 15 mins (k8s meetup)

cloudops.com @cloudops_

#5 Kargo By KubeSpray

Page 19: 9 ways to consume kubernetes on open stack in 15 mins (k8s meetup)

cloudops.com @cloudops_Page

#5 Kargo by KubeSpray

19

Kargo is an Open Source project that allows you to deploy a Kubernetes cluster on Bare Metal, AWS, GCE and Openstack by using a combination of Terraform and Ansible playbooks.

PROSCapable to provisioning Openstack resources suchCan deploy a Multi-Master/HA kubernetes clusterRuns K8s cluster components as containersSupport most popular Linux distributionsChoose the network plugin to be used within the cluster:

Flannel: gre/vxlan (layer 2) networkingWeave: lightweight container overlay networkCalico: bgp (layer 3) networking

Running latest K8s 1.4TLS secured endpoints.Provides DNS Addon integration

CONSLimited number of integrated Addons.Not intuitive. Krago is a great tool for advanced users or

can be used for integration with automations, this due to kargo provides CLI only for deployment of K8s cluster. Therefore it is not very suitable for users or developers who is not comfortable with Ansible, Openstack env and Kargo config file which has huge number of options.

Page 20: 9 ways to consume kubernetes on open stack in 15 mins (k8s meetup)

cloudops.com @cloudops_

#4 JuJu

Page 21: 9 ways to consume kubernetes on open stack in 15 mins (k8s meetup)

cloudops.com @cloudops_Page

#4 JuJu by Canonical

21

Juju is an open source, application and service modelling tool from Ubuntu that helps to deploy, manage and scale applications on any cloud. One of the possibilities, provided by Juju is Kubernetes clusters deployment.

PROS

Small footprint (2-node) K8s cluster deployment

Multi-node deployment, k8s env., which contains:3-node K8s Cluster (1 master and 2 nodes)3 node for etcd cluster2 node for ElasticSearch1 node for Kibana Dashboard

Optional: Dashboard, Ingress Controller and DNS

TLS between nodes for security

Scale Up/Down Nodes

CONSLock-inNo clear instructions on using Openstack Cloud

Provider and using Cinder or LbaaS.No support for advanced networking such as

CalicoNo possibility to provision Openstack Nodes for

K8s Cluster.Not HANo Upgrade strategyNo Rkt support yet

Page 22: 9 ways to consume kubernetes on open stack in 15 mins (k8s meetup)

cloudops.com @cloudops_

#3 OpenShift

Page 23: 9 ways to consume kubernetes on open stack in 15 mins (k8s meetup)

cloudops.com @cloudops_Page

#3 OpenShift by Redhat

23

OpenShift is Red Hat's Platform-as-a-Service (PaaS) that allows developers to quickly develop, host, and scale applications in a cloud environment.

PROSProvides small footprint K8s deployment

Provides Multi-Master HA K8s deployment

Containerized (Atomic) or binary based (CentOS/RHEL) deployment.

Supports both OpenStack’s LBaaS offering and standalone HA proxy.

Provides configured Local registry deployment

Authentication using LDAP or Keystone

Networking: Flannel and OpenShift-SDN

Good integration with Ceph and Cinder for storage

CONSIt’s a bit more than just K8s cluster, It’s a PaaS!No capability to provision Openstack resources

such as VMs, Networking, Sec. GroupsVendor LockingRequires subscription for Enterprise versionComplex installation procedure using Ansible not

developer friendlyNo Rkt support yet

Page 24: 9 ways to consume kubernetes on open stack in 15 mins (k8s meetup)

cloudops.com @cloudops_

#2 Magnum

Page 25: 9 ways to consume kubernetes on open stack in 15 mins (k8s meetup)

cloudops.com @cloudops_Page

#2 Magnum

25

Magnum is an Openstack project that makes container orchestration engines (COEs) such as Swarm, Kubernetes, and Apache Mesos available as first class resources in OpenStack.

PROSCapability to provision Openstack resources such

as VMs, Networking, Sec. Groups via Heat

Standard Openstack APIs

Focuses to run Containers both in VMs and Bare Metal via Ironic (WIP)

Supports orchestration of all major COEs

Attempts to integrate with Keystone, Neutron, Cinder, Barbican, Kuryr

CONSNo user friendly UI for Users to deploy and

configure K8s cluster, only APIs.Low maturity level, mainly due to focus on

multiple technologies and slow release cyclesNo features or add-ons configured, still running on

K8s 1.2 releaseMagnum integration points like Ironic, Barbican,

Kuryr which are in early adoptionNo Upgrade support and limited monitoring Networking: Flannel only

Page 26: 9 ways to consume kubernetes on open stack in 15 mins (k8s meetup)

cloudops.com @cloudops_

#1 Murano

Page 27: 9 ways to consume kubernetes on open stack in 15 mins (k8s meetup)

cloudops.com @cloudops_Page

#1 Murano

27

Murano is an Openstack Service that introduces an application catalog for OpenStack, enabling apps developers and cloud admins to publish various cloud-ready applications in a browsable catalog. Murano apps catalog provides packages to deploy and configure Kubernetes cluster via user friendly UI interface in a drug & drop fashion.PROS

Support for internet disconnected provisioning of K8s componentes

Automatically Exposes Services via HAProxy node

Provisions Openstack resources and comes with 2 flavors:

Light-weight Kubernetes Cluster (Community Version):

Non-HA K8s Cluster on 1.3 release

Scale up/down Node capabilities

Flannel networking, without add-ons and monitoring.

Production grade Kubernetes Cluster (Mirantis Hardened):

Composable Multi Master and HA Etcd deployment

Security, Add-ons and Monitoring integrated

Advanced Networking with Calico, Flannel as option

CONSIngress and LbaaS integration is not

completed.HAproxy node required for No Rkt support yetRuns only on DebianFor Production Grade requires subscription for

MOS Openstack

Page 28: 9 ways to consume kubernetes on open stack in 15 mins (k8s meetup)

cloudops.com @cloudops_

Thank you all for your time.