Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

Turn up the Heat with OpenStack and Kubernetes

1.005 visualizaciones

Publicado el

Presentation from a workshop at OpenStack Days Seattle 2016 by @rstarmer (Kumulus) and @mschulz (Hewlett-Packard Enterprise).

Publicado en: Software
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Turn up the Heat with OpenStack and Kubernetes

  1. 1. @rstarmer @mschulz Turn up the HEAT With OpenStack and Kubernetes
  2. 2. Who are we? Michael Schulz: @mschulz • Helion Technical Marketing Architect • OpenStack operations contributor since 2012 • Supporting Cloud enablement for Enterprise • Containers, Apps, Cloud Robert Starmer: @rstarmer • CTO for Kumulus Technologies • OpenStack operations contributor since 2012 • Supporting Cloud enablement for Enterprise • OpenStack, Kubernetes, BareMetal to App CD
  3. 3. @rstarmer @mschulz Agenda • Containers and Operations • Operating Container based Applications • Infrastructure for Container Operating Environments • OpenStack for Kubernetes
  4. 4. @rstarmer @mschulz Containers and Operations
  5. 5. @rstarmer @mschulz Why not just stick with VMs? Bare Metal (Nova & Ironic) x86, ARM, other processor Memory Local “block” storage subsystem Hypervisor (Nova) Hypervisor - Hardware access management and segregation ESX, KVM, Hyper-V, Xen, LPAR Container (Nova) OS level segregation of processes Docker/LXC, Solaris containers Hardware APP APP APP Host OS bin/lib bin/lib bin/lib Hardware APP OS Hypervisor APP OS APP OS Host OS bin/lib bin/lib Virtual machine Guest OS bin/lib Hardware APP bin/lib Container Engine APP bin/lib APP bin/lib Host OS Container @rstarmer
  6. 6. @rstarmer @mschulz Developers get Containers • Dev/Ops is a stepping stone for many developers • Enabled application development models that were not previously possible • Ops is something to limit and reduce • There is a growing #serverless community - focusing on just the application again @rstarmer
  7. 7. @rstarmer @mschulz It is not just a Container though…
  8. 8. @rstarmer @mschulz Still need to “operate” containers • Can’t avoid some underlying operations • Manage infrastructure failures gracefully • Provide some scale services (e.g. Load balancing) • Managing interactions and security between multi-container services and solutions • Manage and configure storage mappings @rstarmer
  9. 9. @rstarmer @mschulz The field of Container Management • LXC and LXD or libvirt-lxc • Docker and Docker(plus Swarm) • Docker/RKT/(?LXC?) and Kubernetes • Docker, LXC, etc. and Mesos/DCOS • Docker Cloud, Rancher, DCOS, CoreOS Fleet…. @rstarmer
  10. 10. @rstarmer @mschulz Management Functions • Lifecycle Management • Rolling Upgrades • Scheduling • Network Service • Storage Mapping • Seems like an IaaS might be of service @rstarmer
  11. 11. @rstarmer @mschulz OpenStack and Container Operating Env.
  12. 12. @rstarmer @mschulz Managing Containers Container Management on OpenStack • Leverage VMs to support Container engines • Container Operating Environment deployed via HEAT • Leverage Network services: • LBaaS • Kuryr @rstarmer
  13. 13. @rstarmer @mschulz HEAT • Template based automation • Access to all OpenStack resources and services: • Compute – OS::Nova:: • Storage – OS::Cinder::,OS::Swift:: • Network – OS::Neutron::, OS::Neutron::LBaaS:: • Even HEAT – OS::Heat:: • Templates used across most OpenStack driven Kubernetes deployments: • Magnum • Murano @rstarmer
  14. 14. @rstarmer @mschulz HEAT and CAPS • CAPS: Chef, Ansible, Puppet, SaltStack • Implements “state based” automation • Simplifies service configuration vs. shell scripts • Powerful automation tools for deployment • Many applications are already supported • HEAT implements the infrastructure services • Still need to implement the application services • Use SaltStack to provide “application” automation @rstarmer
  15. 15. @rstarmer @mschulz Kubernetes on OpenStack
  16. 16. @rstarmer @mschulz Kubernetes and Openstack • OpenStack provides the IaaS model via HEAT • HEAT triggers SaltStack deployment of Kubernetes • Kubernetes supports Container Operations • OpenStack can support additional underlying services: • Network (Integrate with Kuryr, add LBaaS) • Storage (add Cinder block, or Ceph) @rstarmer
  17. 17. @rstarmer @mschulz Kubernetes @rstarmer Greek for “Helmsman”; also the root of the word “Governor” • Orchestrator for containers • Supports multi-cloud environments • Inspired and informed by Google’s experiences and internalsystems • Open source, written inGo Manage applications, notmachines
  18. 18. @rstarmer @mschulz Kubernetes manages your applications @rstarmer • Scheduling of where containers should run • Lifecycle and health to keep containers running • Discovery of containers and their location • Monitoring of containers • Control who can do things to containers • Aggregates sets of containers into jobs • Making jobs bigger or smaller by scaling up/down
  19. 19. @rstarmer @mschulz Primary concepts @rstarmer
  20. 20. @rstarmer @mschulz KubernetesArchitecture @rstarmer etcd API Server Scheduler Controller Manager Kubelet Service Proxy kubectl, ajax, etc
  21. 21. @rstarmer @mschulz Demo Time
  22. 22. @rstarmer @mschulz Getting the bits @rstarmer export KUBERNETES_PROVIDER=openstack-heat; curl -sS | bash
  23. 23. @rstarmer @mschulz Start the deployment @rstarmer stack@helion-cp1-c1-m1-mgmt:~/kubernetes/cluster$ !K KUBERNETES_PROVIDER=openstack-heat ./ ... Starting cluster using provider: openstack-heat ... calling verify-prereqs swift client installed glance client installed nova client installed heat client installed openstack client installed ... calling kube-up kube-up for provider openstack-heat [INFO] Execute commands to create Kubernetes cluster [INFO] Upload kubernetes-server-linux-amd64.tar.gz kubernetes-server.tar.gz [INFO] Upload kubernetes-salt.tar.gz kubernetes-salt.tar.gz [INFO] Image CentOS7 already exists [INFO] Key pair already exists Stack not found: KubernetesStack [INFO] Retrieve new image ID [INFO] Image Id f80d2e2d-4149-4075-9903-2b4c00db6b1a [INFO] Create stack KubernetesStack +--------------------------------------+-----------------+--------------------+---------------------+--------------+ | id | stack_name | stack_status | creation_time | updated_time | +--------------------------------------+-----------------+--------------------+---------------------+--------------+ | 21ba7cbf-8144-4450-a775-1e11bf3ae798 | KubernetesStack | CREATE_IN_PROGRESS | 2016-09-15T22:29:04 | None | +--------------------------------------+-----------------+--------------------+---------------------+--------------+ ... calling validate-cluster Cluster status CREATE_IN_PROGRESS Cluster status CREATE_IN_PROGRESS Cluster status CREATE_COMPLETE cluster "openstack-KubernetesStack" set. user "openstack-KubernetesStack" set. context "openstack-KubernetesStack" set. switched to context "openstack-KubernetesStack". Wrote config for openstack-KubernetesStack to /home/stack/.kube/config Done, listing cluster services: Kubernetes master is running at Elasticsearch is running at Heapster is running at Kibana is running at KubeDNS is running at kubernetes-dashboard is running at Grafana is running at InfluxDB is running at To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'. stack@helion-cp1-c1-m1-mgmt:~/kubernetes/cluster$
  24. 24. @rstarmer @mschulz Example Replication Controller @rstarmer
  25. 25. @rstarmer @mschulz Questions? @mschulz @rstarmer