![Page 1: Multi-Cloud Orchestration for Kubernetes with Cloudify](https://reader031.vdocuments.us/reader031/viewer/2022020119/5a64d4487f8b9adf788b4a91/html5/thumbnails/1.jpg)
Multi-Cloud Orchestration for Kubernetes with Cloudify
Customizable Kubernetes Cloud Provider For Hybrid/Multi-cloud
12/12/2017
![Page 2: Multi-Cloud Orchestration for Kubernetes with Cloudify](https://reader031.vdocuments.us/reader031/viewer/2022020119/5a64d4487f8b9adf788b4a91/html5/thumbnails/2.jpg)
Agenda
• The Problem
• Kubernetes Terminology
• What is the role of a Cloud Provider in Kubernetes?
• How can Cloudify be a Cloud Provider?
• Cloudify with Kubernetes
• Use Cases
![Page 3: Multi-Cloud Orchestration for Kubernetes with Cloudify](https://reader031.vdocuments.us/reader031/viewer/2022020119/5a64d4487f8b9adf788b4a91/html5/thumbnails/3.jpg)
The Problem
• Jurassic applications, which aren’t going away (yet).
• Certain database deployments.
• Applications spanning multiple regions, datacenters, clouds and cloud-tenants.
• Windows services.
• Etc
“The world will never be one technology.” - Nati Shalom
![Page 4: Multi-Cloud Orchestration for Kubernetes with Cloudify](https://reader031.vdocuments.us/reader031/viewer/2022020119/5a64d4487f8b9adf788b4a91/html5/thumbnails/4.jpg)
Kubernetes Terminology
Kubernetes focuses on scheduling container-based deployment, using specifications to describe the requirements of the environment on which the containers should run, including location, availability, network, storage and compute requirements.
Kubernetes is constantly expanding, however the elementary concepts everyone must understand are the Master, Nodes, Pods, Services, and Replicaset.
Master - The Kubernetes orchestratorNode - a worker node/minion (VM, bare-metal machine).Pod - a group of containers that should run together. Often just one container.Service - the abstraction for exposing the Pods in a container network to the host network. Stable IP.ReplicaSet - the mechanism by which Kubernetes enforces availability policies for groups of Pods.
![Page 5: Multi-Cloud Orchestration for Kubernetes with Cloudify](https://reader031.vdocuments.us/reader031/viewer/2022020119/5a64d4487f8b9adf788b4a91/html5/thumbnails/5.jpg)
Basic K8S Architecture
![Page 6: Multi-Cloud Orchestration for Kubernetes with Cloudify](https://reader031.vdocuments.us/reader031/viewer/2022020119/5a64d4487f8b9adf788b4a91/html5/thumbnails/6.jpg)
Cloud Providers in K8s
When a Kubernetes cluster is deployed, either a new or existing virtual network is the setting across which various Nodes in the cluster communicate. This may be an VPC, a LAN, or something else.
The same holds true for the Compute and Storage requirements. If new resources are required, a Cloud Provider will be needed.
The role of the Cloud Provider in Kubernetes is to manage the lifecycle of these IaaS resources, such as VMs, Volumes, Load Balancers, etc.
The Cloudify provider is an implementation of the Cloud API that is abstracted for Kubernetes objects.
Before Kubernetes 1.6, the Cloud Provider was called directly from the kube-controller-manager.
Over the course of releases 1.6 - 1.9, the kube-controller-manager was split into a second binary called cloud-controller-manager. This split has enabled to support of external Cloud Providers.
![Page 7: Multi-Cloud Orchestration for Kubernetes with Cloudify](https://reader031.vdocuments.us/reader031/viewer/2022020119/5a64d4487f8b9adf788b4a91/html5/thumbnails/7.jpg)
Limitations of this approach
● Inflexible: Static implementation. Requires modifications to source
code and recompilation to introduce many architecture changes.
● Multi-cloud: Usually limited to one cloud/environment/zone.
● Hybrid cloud: No clear way to package containerized application and
non-containerized applications together.
![Page 8: Multi-Cloud Orchestration for Kubernetes with Cloudify](https://reader031.vdocuments.us/reader031/viewer/2022020119/5a64d4487f8b9adf788b4a91/html5/thumbnails/8.jpg)
Cloud Providers in K8s
![Page 9: Multi-Cloud Orchestration for Kubernetes with Cloudify](https://reader031.vdocuments.us/reader031/viewer/2022020119/5a64d4487f8b9adf788b4a91/html5/thumbnails/9.jpg)
Cloudify Terminology
Cloudify focuses on lifecycle management of IaaS resources - VMs, bare metal servers, applications, and other services.
Manager - The Cloudify OrchestratorNode - A resource, whose lifecycle Cloudify will Manage.Compute Node - A VM or bare-metal machine, usually with a Cloudify Agent installed. (Analogous to Kubernetes Node).Workflow - An execution where Cloudify calls various operations, plugins, and scripts, for example creating, or updating, or scaling a VM.
![Page 10: Multi-Cloud Orchestration for Kubernetes with Cloudify](https://reader031.vdocuments.us/reader031/viewer/2022020119/5a64d4487f8b9adf788b4a91/html5/thumbnails/10.jpg)
Cloudify and Containers
● Two layers: Infrastructure and Service.● Infrastructure: Provisioning and managing, Compute, Storage, and Network
resources.● Service: Deploying services and connecting deployments.
![Page 11: Multi-Cloud Orchestration for Kubernetes with Cloudify](https://reader031.vdocuments.us/reader031/viewer/2022020119/5a64d4487f8b9adf788b4a91/html5/thumbnails/11.jpg)
Cloudify K8s Provider
Cloudify ProviderK8s asks Cloudify for more infrastructure.
IaaS
https://github.com/cloudify-incubator/cloudify-kubernetes-provider
Kubernetes
ProvisionIaaSResources
Cloudify is a Cloud orchestrator that abstracts resource lifecycles.
Cloudify abstracts APIs of IaaS/Clouds.
Instead of using a single Cloud Provider for each IaaS, we use a single Cloud Provider for Cloudify, any Iaas.
IaaS
![Page 12: Multi-Cloud Orchestration for Kubernetes with Cloudify](https://reader031.vdocuments.us/reader031/viewer/2022020119/5a64d4487f8b9adf788b4a91/html5/thumbnails/12.jpg)
Cloudify K8s Provider
Bare Metal
Kubernetes
● Cloudify installs Kubernetes● Cloudify installs custom Cloud provider,
which points back at Cloudify
IaaS
![Page 13: Multi-Cloud Orchestration for Kubernetes with Cloudify](https://reader031.vdocuments.us/reader031/viewer/2022020119/5a64d4487f8b9adf788b4a91/html5/thumbnails/13.jpg)
2
Cloudify with Kubernetes
Kubernetes PluginDeploys applications on
K8s.
Kubernetes
Deploy Kubernetes Applications
App
https://github.com/cloudify-incubator/cloudify-kubernetes-plugin
1Kubernetes BlueprintsTie K8s objects to Iaas
objects.
OpenStack
Deploy Kubernetes Cluster
VM
https://github.com/cloudify-examples/simple-kubernetes-blueprint
3Cloudify ProviderK8s asks Cloudify for more infrastructure.
App
https://github.com/cloudify-incubator/cloudify-kubernetes-provider
Kubernetes
ProvisionIaaSResources
![Page 14: Multi-Cloud Orchestration for Kubernetes with Cloudify](https://reader031.vdocuments.us/reader031/viewer/2022020119/5a64d4487f8b9adf788b4a91/html5/thumbnails/14.jpg)
Use Cases
![Page 15: Multi-Cloud Orchestration for Kubernetes with Cloudify](https://reader031.vdocuments.us/reader031/viewer/2022020119/5a64d4487f8b9adf788b4a91/html5/thumbnails/15.jpg)
Use Case 1 - Hybrid Cloud
ONAP OOM
Deployment
Controller Nova Node Nova Node
OpenStack
VM K8s Node
VM K8s Node
Deployment
VM Kubernetes NodeVM
Kube Master
FabricSSH
OpenStackAPI
kubernetes-bp.yaml(Opt)
Kubernetes Plugin
OpenStack Plugin
https://gerrit.onap.org/r/gitweb?p=oom.git;a=blob;f=cloudify-onap/blueprint.yaml
● Deploy OpenStack Infra○ VMs, Keys, Nets,etc’
● Deploy Kubernetes○ Setup NS,Pods,etc
![Page 16: Multi-Cloud Orchestration for Kubernetes with Cloudify](https://reader031.vdocuments.us/reader031/viewer/2022020119/5a64d4487f8b9adf788b4a91/html5/thumbnails/16.jpg)
Use Case 2 - Hybrid Cloud & Container
Manager
VM K8s Node
VM K8s NodeVM
AWS Plugin
Kubernetes Plugin
PodPodPodService
![Page 17: Multi-Cloud Orchestration for Kubernetes with Cloudify](https://reader031.vdocuments.us/reader031/viewer/2022020119/5a64d4487f8b9adf788b4a91/html5/thumbnails/17.jpg)
Demo
![Page 18: Multi-Cloud Orchestration for Kubernetes with Cloudify](https://reader031.vdocuments.us/reader031/viewer/2022020119/5a64d4487f8b9adf788b4a91/html5/thumbnails/18.jpg)
Q&A
● Download Cloudify: Cloudify.co/download● Cloudify & Kubernetes:
Cloudify.co/kubernetes● Questions or comments? Email us at
![Page 19: Multi-Cloud Orchestration for Kubernetes with Cloudify](https://reader031.vdocuments.us/reader031/viewer/2022020119/5a64d4487f8b9adf788b4a91/html5/thumbnails/19.jpg)
Thank you