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.
Demystifying Kubernetes
for Enterprise Developers!
Jim Bugwadia, Nirmata
DevOps Summit, November 1st 2017
22
High-performing IT organizations
deploy 46x more frequently with 440x
shorter lead times; their failure rate is
5x lowe...
3
• Why Kubernetes
• Kubernetes
Cluster Concepts
• Kubernetes
Applications Concepts
Agenda
4
•Founder and CEO, Nirmata
•Developing large-scale distributed
systems since the early 90’s
(Go, Java, JS, C++)
•Expertis...
Why Kubernetes?
6
Businesses that deliver faster, win!
Dev -> QA -> Ops
Infrastructure as Pets
Configuration
Management
Monoliths in VMs
D...
7
•Kubernetes is an open source
container orchestration solution
originally developed by Google
now part of CNCF
•Kubernet...
8
Kubernetes is popular!
9
• Builds on Google’s 10+ years of
experience with containers
• Robust, scalable, and extensible
• Governed by the Cloud-...
10
But…
Kubernetes Cluster Concepts
12
Kubernetes Architecture
•Nodes
•Components
•Add-ons
•Cloud Provider
• Networking
• Storage
13
• kube-apiserver: front-end for the Kubernetes control-
plane
• etcd: datastore for the cluster
• kube-controller-manag...
14
•Required:
• kubelet: manages pods, executes liveness probes, reports pod and node status.
• kube-proxy: network proxy;...
15
•DNS: serves DNS for Kubernetes components and
containers. Consider as required.
•Heapster: provides container resource...
16
• K8s networking follows these principles:
1. All containers can communicate with all other containers
without NAT
2. A...
17
•Pods can contain one or more Volumes
• Volume types: emptyDir, hostPath,
persistentVolumeClaim, secret, awsElasticBloc...
Demo!
19
Kubernetes Application Concepts
21
Dude, where’s my app?
22
•Basic unit of application deployment
•Contains
• One or more Containers
• One or more PVCs
•Other constructs
• nodeSel...
23
•Pods can be managed individually, but
don’t do this!
•Pods lifecycles are best managed using
one of:
• Deployments
• S...
24
•Deployments automatically
create (and delete) ReplicaSets
•Rollout: a new ReplicaSet is created and scaled
up. The exi...
25
•Pods with stable identities
• names, network, storage
•Ordered creation, updates, scaling, and
deletion
• Pods are cre...
26
•Ensures that all Nodes run an instance
of a Pod
•Useful for monitoring & security
agents, log daemons, etc.
•A node se...
27
•Service
• provides load-balancing. Addressed via IP (cluster
IP) or a DNS name.
•Network Policy
• manages routing rule...
28
Source: Steve Watt, Red Hat
Configuring storage for your app
29
• Most apps will contain one or more
services / tiers
• And each service will have:
• Deployment  ReplicaSet  Pod  C...
Demo!
31
Summary
33
1. Microservices and containers enable
enterprise DevOps best practices
2. Kubernetes provides a powerful,
scalable, an...
34
• Single management plane
across multiple clusters
• Secure and scalable
multi-cloud management
• Seamless integrations...
Thank-you!
http://try.nirmata.io
Catch a full demo at both 410!
Demystifying Kubernetes for Enterprise DevOps
Upcoming SlideShare
Loading in …5
×

Demystifying Kubernetes for Enterprise DevOps

528 views

Published on

A quick tour of the core cluster operations & management concepts, and the core application concepts in Kubernetes.

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

Demystifying Kubernetes for Enterprise DevOps

  1. 1. Demystifying Kubernetes for Enterprise Developers! Jim Bugwadia, Nirmata DevOps Summit, November 1st 2017
  2. 2. 22 High-performing IT organizations deploy 46x more frequently with 440x shorter lead times; their failure rate is 5x lower and they recover 96x faster. 2017 State of DevOps Report by Puppet Labs
  3. 3. 3 • Why Kubernetes • Kubernetes Cluster Concepts • Kubernetes Applications Concepts Agenda
  4. 4. 4 •Founder and CEO, Nirmata •Developing large-scale distributed systems since the early 90’s (Go, Java, JS, C++) •Expertise in centralized management for complex distributed systems. Jim Bugwadia
  5. 5. Why Kubernetes?
  6. 6. 6 Businesses that deliver faster, win! Dev -> QA -> Ops Infrastructure as Pets Configuration Management Monoliths in VMs DevOps Infrastructure as Cattle Immutable images Microservices in Containers
  7. 7. 7 •Kubernetes is an open source container orchestration solution originally developed by Google now part of CNCF •Kubernetes is designed for microservices but can support stateful applications Kubernetes (Greek for “helmsman" or "pilot")
  8. 8. 8 Kubernetes is popular!
  9. 9. 9 • Builds on Google’s 10+ years of experience with containers • Robust, scalable, and extensible • Governed by the Cloud-Native Compute Foundation (CNCF) Why Kubernetes
  10. 10. 10 But…
  11. 11. Kubernetes Cluster Concepts
  12. 12. 12 Kubernetes Architecture •Nodes •Components •Add-ons •Cloud Provider • Networking • Storage
  13. 13. 13 • kube-apiserver: front-end for the Kubernetes control- plane • etcd: datastore for the cluster • kube-controller-manager: controllers for routine cluster tasks • cloud-controller-manager: controllers specific to cloud providers • kube-scheduler: assigns Pods to nodes Master nodes run Kubernetes components
  14. 14. 14 •Required: • kubelet: manages pods, executes liveness probes, reports pod and node status. • kube-proxy: network proxy; performs connection forwarding • docker / rkt / containerd: the container engine •Optional • add-ons • supervisord • fluentd •Your application pods Each worker node runs
  15. 15. 15 •DNS: serves DNS for Kubernetes components and containers. Consider as required. •Heapster: provides container resource monitoring. Is used for Horizontal Pod Autoscaling. •Web UI: dashboard to monitor and manage the cluster. Common Add-ons
  16. 16. 16 • K8s networking follows these principles: 1. All containers can communicate with all other containers without NAT 2. All nodes can communicate with all containers (and vice- versa) without NAT 3. The IP that a container sees itself as is the same IP that others see it as • Each pod gets its own IP address • CNI is the plugin model used by the Kubelet to invoke the networking implementation • CNI plugins: Calico, Contiv, Flannel , GCE, … Networking
  17. 17. 17 •Pods can contain one or more Volumes • Volume types: emptyDir, hostPath, persistentVolumeClaim, secret, awsElasticBlockStore, AzureDiskVolume, … •A PersistentVolumeClaim requests a PersistentVolume that may be dynamically provisioned. • Admins can configure StorageClasses for persistent volume claims like “bronze”, “silver”, or “gold”. A storage class has a Provisioner, like AzureDisk. Storage
  18. 18. Demo!
  19. 19. 19
  20. 20. Kubernetes Application Concepts
  21. 21. 21 Dude, where’s my app?
  22. 22. 22 •Basic unit of application deployment •Contains • One or more Containers • One or more PVCs •Other constructs • nodeSelector • affinity • serviceAccountName • secrets • initContainers Pods Pod Container Secrets Persistent Volume Claim
  23. 23. 23 •Pods can be managed individually, but don’t do this! •Pods lifecycles are best managed using one of: • Deployments • StatefulSets • DaemonSets •Less often used: • ReplicaSets (Deployments manage ReplicaSets) • Jobs (short-lived run-to-completion tasks) Managing Pods
  24. 24. 24 •Deployments automatically create (and delete) ReplicaSets •Rollout: a new ReplicaSet is created and scaled up. The existing ReplicaSet is scaled down. •Rollback: only impacts the Pod template. Can rollback to a specific revision ID. •Rolling upgrade strategy tunables: • maxUnavailable • maxSurge Deployment Pod Deployment Replica Set
  25. 25. 25 •Pods with stable identities • names, network, storage •Ordered creation, updates, scaling, and deletion • Pods are created, and named, in order from {0…N-1} •Use for clustered apps that use client- side identities • ZooKeeperAddresses: “zoo-1:2181, zoo-2:2181, zoo-3:2181” StatefulSet
  26. 26. 26 •Ensures that all Nodes run an instance of a Pod •Useful for monitoring & security agents, log daemons, etc. •A node selector can be used to target a subset of nodes DaemonSet
  27. 27. 27 •Service • provides load-balancing. Addressed via IP (cluster IP) or a DNS name. •Network Policy • manages routing rules across pods (east-west traffic.) •Ingress • manages external routes to services (north-south traffic.) An Ingress Controller does the load- balancing. Ingress Resources specify the rules. Networking your app
  28. 28. 28 Source: Steve Watt, Red Hat Configuring storage for your app
  29. 29. 29 • Most apps will contain one or more services / tiers • And each service will have: • Deployment  ReplicaSet  Pod  Container(s) • Service • Ingress • Network Policy • Persistent Volume Claim(s) Modeling a Kubernetes Application External facing services only
  30. 30. Demo!
  31. 31. 31
  32. 32. Summary
  33. 33. 33 1. Microservices and containers enable enterprise DevOps best practices 2. Kubernetes provides a powerful, scalable, and extensible platform to run containers 3. Every enterprise should consider building a Kubernetes strategy Summary
  34. 34. 34 • Single management plane across multiple clusters • Secure and scalable multi-cloud management • Seamless integrations for continuous delivery Nirmata simplifies Kubernetes for enterprise DevOps teams
  35. 35. Thank-you! http://try.nirmata.io Catch a full demo at both 410!

×