build your serverless container cloud with
play

Build Your Serverless Container Cloud with OpenStack and Kubernetes - PowerPoint PPT Presentation

22.05.2018 Build Your Serverless Container Cloud with OpenStack and Kubernetes Kevin Zhao Senior Software Engineer on Arm. OpenStack Zun Core Reviewer kevin.zhao@arm.com Agenda What is Serverless Container Cloud Demo Zun and Container


  1. 22.05.2018 Build Your Serverless Container Cloud with OpenStack and Kubernetes Kevin Zhao Senior Software Engineer on Arm. OpenStack Zun Core Reviewer kevin.zhao@arm.com

  2. Agenda What is Serverless Container Cloud Demo Zun and Container Capsule FAQ’s Build the Serverless Cloud

  3. What is Serverless Container Cloud

  4. Traditional Container Cloud • Provision the cluster first, pay much effort in cluster management • Cluster level multi- tenant isolation Cloud Infrastructure • Low resource utilization

  5. Serverless Means “ Clusterless ” Run container without managing servers or clusters. Ability • Run container right way with one Azure Container Instance command • Container level multiple tenant support • Hypervisor level security isolation

  6. Build a cluster Just one command

  7. Serverless container technology is cool But I need to work with Kubernetes

  8. VM VM Pod Pod Pod Pod Pod Pod Pod Pod Kubelet Kubelet Pod Pod Pod Deployment/Task Pod Pod Pod Application Pod architecture Pod Pod Pod Pod Pod Kubernetes control plane Infrastructure architecture

  9. OpenStack as a Virtual Kubelet Node • For user, Kubernetes on top • OpenStack as a Virtual Kubelet node • Deploy workloads on this virtual node Node1 Node2 use kubectl and the backend realization is Zun. • For user, nothing different. User only needs to focus on the containers.

  10. For building serverless container cloud, what do you need initially OpenStack provisioned Standalone OpenStack and Kubernetes Kubernetes Network connected

  11. Zun and Container Capsule Zun Introduction Wine container from Ancient China

  12. Zun – Container Service • Container Service of OpenStack • Provide the ability of provisioning and managing containers without caring underlying infrastructure. Characteristics • Container as the first class resource • Individual IP Address/vCPU/Memory Goal of Zun • Make users focus on their application • Pay just what they need(Clusterless)

  13. Zun – Container Service

  14. provisioning and Zun managing containers Keystone Kuryr Container inside (Authentication) OpenStack Neutron Glance Cinder (Network) (Image) (Storage)

  15. Try Zun

  16. How to implement Pod in Zun

  17. Zun and Container Capsule Container Capsule

  18. Container Capsule Component • One Sandbox container • Multiple containers • Multiple volumes Characteristic • Basic unit in Zun • Co-Scheduled/Co-located • Share the network namespace • Share the resource limits

  19. Unified OpenStack API Glance Unified Image Repository Cinder BM VM Unified Block Device Keystone Unified NEUTRON KURYR Authentication Unified Network

  20. Capsule Template Support type: • Yaml • Json Kubernetes friendly

  21. Capsule API POST /v1/capsules • zun capsule-create – f demo.yaml GET /v1/capsules • Zun capsule-list GET /v1/capsules/{uuid} • Zun capsule-describe <uuid>/<name> DELETE /v1/capsules/{uuid} • Zun capsule-delete <uuid>/<name>

  22. Build Serverless Container Cloud Kubernetes on top, Zun backend

  23. Virtual-Kubelet • Kubelet implementation , masquerades container service as Kubelet node. • Kubernetes on top, programmed back. • Intermediary to map Kubernetes requests and resource to container service

  24. Virtual-Kubelet Goal

  25. CreatePod Virtual-kubelet structure Info Cache Resource Manager Record Pod info from K8s Backend Driver Vkubelet K8s client Gophercloud Main Provider Process

  26. CreatePod Virtual-kubelet Structure CreatePod Register Node: UpdatePod Resource 1. Capacity(), get virtual node info. DeletePod Manager Fill into k8s node object. GetPod 2. Call: GetPods k8sClient.CoreV1().Nodes().Create GetConfigMap (node) GetSecrets Sync Pod and Node: Register Node Vkubelet 1. Watch pod requests from K8s. Main Update resource manager. K8s client Process 2. Periodic task to update Node Sync and Pod status from provider to Pod/Node K8s.

  27. CreatePod Virtual-kubelet Structure Resource Reconcile: Manager Pod: 1. Create: CreatePod GetPods from RM, UpdatePod GetPods from Provider, Provider DeletePod CreatePod if no GetPod Pod DeletionTimeStamp GetPods 2. Delete: Operation GetPodStatus GetPods from provider, Reconcile Vkubelet Check into RM, if not Main exist, DeletePod from Node: Node Process Gophercloud Provider Capacity Operation NodeCondition

  28. Virtual-kubelet Zun support Communication: 1. Gophercloud for Zun Capsule API support in Gophercloud 2. Virtual Kubelet Zun client Connect Zun by Gophercloud Resource Providing: 1. Capsule will be the backend realization of Pod 2. Provider essential functions for pod and node management

  29. Pod Create Process VK VK pod Resource Kubectl Reconcile watcher Manager Get pod from Zun Create pod Find pod request Add Pod to Compare with resource manager resource manager Provider Provider Zun CreatePod gophercloud Capsule create Remap attribute capsule create from pod to capsule

  30. Fut uture ure Enhanced the virtual kubelet support for • configmap and secret Enhanced Capsule implementation and operation • Aligned with Kubernetes related attribute • Cinder multiple attach for container •

  31. Talk is cheap Show me the demo

  32. You are welcome to join us Wiki: https://wiki.openstack.org/wiki/Zun IRC: #openstack-zun Integration of Openstack Zun with Kata containers May 23 th , 2:40pm-3:20pm, Room 109 Zun Project Update May 24 th , 3:30pm-3:50pm, Room 212

  33. THA THANKS NKS. Questions? openstack @OpenStack openstack OpenStackFoundation

Recommend


More recommend