Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Fuxi introduction

425 views

Published on

Enable Docker container to use Cinder volume and Manila share

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

Fuxi introduction

  1. 1. www.huawei.com Security Level: HUAWEI TECHNOLOGIES CO., LTD. Fuxi introduction Author/ Email: zhangni 00285642 Version: V1.0 (20160223)
  2. 2. HUAWEI TECHNOLOGIES CO., LTD. Page 2 Fuxi Fuxi introduction:  AS a docker remote volume plugin, support createdeletemountunmount volume  Support plugging into kubernetes and swam, compose to provide persistence volume  Support running in barematel machine and OpenStack instance Feature: 1)Fuxi does not have data storage, e.g. DB, Etcd 2)Fuxi can provide exist Cinder volume, Manila share and object. 3)Fuxi can provide mount and unmount persistent storage for running docker(This feature need to extend Kubernetes API) 4)Fuxi does not provide any service, eg. Migrate docker. Docker daemon Fuxi Cinder Magnum Manila Swift/S3 Kubernetes Murano Heat Nova OpenStack Fuxi focuses on enabling Docker container to use Cinder volume and Manila share, thus Docker volume can reuse the advance features and numerous vendor drivers in Cinder and Manila. With Fuxi, Cinder and Manila can be used as the unified persistence storage provider for virtual machine, baremetal and Docker container. Docker daemon Fuxi kubelet Fuxi client Docker daemon Fuxi kubelet Fuxi client Compose/ Swarm Huawei/…/Net App NAS Huawei/…/NetApp SAN、FusionStorage
  3. 3. HUAWEI TECHNOLOGIES CO., LTD. Page 3 Kublet Fuxi design Docker deamon Fuxi(Remote cinder volume plugin) cinder /VolumeDriver.Create /VolumeDriver.Remove /VolumeDriver.Mount /VolumeDriver.Path /VolumeDriver.Unmount /VolumeDriver.List /VolumeDriver.Get /Plugin.Activate(handshake) Remote cinder volume plugin API Cinder Client Create Docker run Docker volume create/rm/ls/inspect -d, --driver=cinder --help=false --name -o, --opt=map(volumetype、QoS、size、 scheduler-hint、storagetype) delete Mount/ unmount Volume driver (attach、detach) format mount Snapshot Backup Migrate List show manila Manila Client Swift/s3 client Swift/S3 Fuxi Client 1)Enhance K8S to Create SLA Based Persistence Storage, and schedule container and storage federally 2)attaching volume for online container Flex volume
  4. 4. HUAWEI TECHNOLOGIES CO., LTD. Page 4 K8S deployment scenarios vm K8S Docker deamon vm K8S Docker deamon OS compute node Barematal K8S Docker deamon Barematal K8S Docker deamon Barematal node Barematal K8S Docker deamon OS Ironic vm K8S Docker deamon vm K8S Docker deamon AWS/Vcloud vm K8S Docker deamon vm K8S Docker deamon AWS/Vcloud vm K8S Docker deamon vm K8S Docker deamon OS compute node
  5. 5. HUAWEI TECHNOLOGIES CO., LTD. Page 5 controller Fuxi code framework  Fuxi build on lightweight framework Flask  API is standard docker remote volume plugin interface  Storage Provider Plugin framework provides easily access capability for storage device,include cinder、 Manila、S3/Swift  Connector Plugin framework provides easily attaching/detaching volume to node, and support container running in virtual machine and physical machine API Storage Provider Plugin Connector Plugin Cinder Manila Swift/S3 openstack Os_brick Fuxi ClientCMD Fuxi design discipline :Stateless, No data storage, a plug-in framework for back-end storage volumes and mount mechanism EBS AWS
  6. 6. HUAWEI TECHNOLOGIES CO., LTD. Page 6 Minion Fuxi Based-run in host(K8S) Steps:  Murano as an orchestration  Murano call Cinder API to create volume  Murano call Kubernetes API to create pod, and set cinder volume ID、fsType、capacity、hostdev、 readonly for pod  Kublet call Fuxi to mount volume  Fuxi do iscsi login or NFS mount  Fuxi format the dev and mount to the hostdev  Kublet do Docker run –-volume host dev to start the container Docker deamon cinder Kublet Container Local path Kubernetes master fuxi Storage device dev Murano Run container(device、 volume) Fuxi Client Flex volume
  7. 7. HUAWEI TECHNOLOGIES CO., LTD. Page 7 Host Minion(VM) Fuxi Based-run in OS VM(K8S) Steps:  Murano as an orchestration  Murano call Cinder API to create volume  Murano call Kubernetes API to create pod, and set cinder volume ID、fsType 、capacity、hostdev、readonly for pod  Kublet call Fuxi to mount volume through nova’s attach volume api  Fuxi format the dev and mount to the hostdev  Kublet do Docker run –-volume host dev to start the container Docker deamon cinder Kublet Container Local path Kubernetes master fuxi Storage device dev Nova compute Volume driver Murano Run container(device、 volume) Nova/Ironic Fuxi Client Flex volume
  8. 8. Thank you www.huawei.com Copyright©2014 Huawei Technologies Co., Ltd. All Rights Reserved. The information in this document may contain predictive statements including, without limitation, statements regarding the future financial and operating results, future product portfolio, new technology, etc. There are a number of factors that could cause actual results and developments to differ materially from those expressed or implied in the predictive statements. Therefore, such information is provided for reference purpose only and constitutes neither an offer nor an acceptance. Huawei may change the information at any time without notice. Page 8 HUAWEI TECHNOLOGIES CO., LTD.

×