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.

Turn up the Heat with OpenStack and Kubernetes

1,004 views

Published on

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

Published in: Software
  • Be the first to comment

  • Be the first to like this

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 kumul.ushpe.com
  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 https://get.k8s.io | bash https://github.com/kubernetes/kubernetes/releases
  23. 23. @rstarmer @mschulz Start the deployment @rstarmer stack@helion-cp1-c1-m1-mgmt:~/kubernetes/cluster$ !K KUBERNETES_PROVIDER=openstack-heat ./kube-up.sh ... 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 https://192.168.2.181 Elasticsearch is running at https://192.168.2.181/api/v1/proxy/namespaces/kube-system/services/elasticsearch-logging Heapster is running at https://192.168.2.181/api/v1/proxy/namespaces/kube-system/services/heapster Kibana is running at https://192.168.2.181/api/v1/proxy/namespaces/kube-system/services/kibana-logging KubeDNS is running at https://192.168.2.181/api/v1/proxy/namespaces/kube-system/services/kube-dns kubernetes-dashboard is running at https://192.168.2.181/api/v1/proxy/namespaces/kube-system/services/kubernetes-dashboard Grafana is running at https://192.168.2.181/api/v1/proxy/namespaces/kube-system/services/monitoring-grafana InfluxDB is running at https://192.168.2.181/api/v1/proxy/namespaces/kube-system/services/monitoring-influxdb 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

×