Highway to Helm
Stairway to Kubernetes
By Michelle Noorali
@michellenoorali
Slide 2
Slide 2 text
Hello, It’s me.
Slide 3
Slide 3 text
No content
Slide 4
Slide 4 text
A Platform as a Service Company
Slide 5
Slide 5 text
Platform as a service (PaaS)
Slide 6
Slide 6 text
No content
Slide 7
Slide 7 text
Deis Workflow
Kubernetes-native PaaS
Kubernetes package manager
Steward
Kubernetes-native service
broker
Slide 8
Slide 8 text
No content
Slide 9
Slide 9 text
Dearest human,
Clear commit messages are the key to life.
Sincerely,
Michelle from Microsoft
Slide 10
Slide 10 text
We need a tool to manage a
group of Kubernetes resources
as one unit.
Slide 11
Slide 11 text
Helm, a package manager
for Kubernetes
Slide 12
Slide 12 text
Charts
● Are application definitions
● Consist of
○ Metadata
○ Kubernetes resource definitions
○ Configuration
○ Documentation
● Live in chart repositories
Slide 13
Slide 13 text
Helm: 3 Core Concepts
● Chart - expert built recipe for installing an application
● Values - user supplied configuration
● Release - instance of Chart + Values that get deployed in
Kubernetes
Slide 14
Slide 14 text
Prerequisites
● Download Helm & put it in your path
● Grab a running Kubernetes cluster
Slide 15
Slide 15 text
$ helm init
● Configures your local environment
● Creates a pod called Tiller in your cluster
Slide 16
Slide 16 text
Tiller, it’s a thriller
● Server-side component
● Lives his life inside k8s cluster as a pod
● Creates & manages releases in your cluster
○ Release = installation of a Chart
Kubernetes
Tiller
Helm
Client
gRPC
Slide 17
Slide 17 text
Recap
● Helm is the client
● Tiller is the server
● Kubernetes is the target platform & data storage
● Chart + Values = Release
Slide 18
Slide 18 text
Demos:
● Init in Action
● Install a chart
● Upgrade a release
● Delete a release
Slide 19
Slide 19 text
Where can I get a Helm like that?
● Homebrew
brew install kubernetes-helm
● Github
github.com/kubernetes/helm/releases
Configuration
values.yaml
image: mycompany/myapp:1.0.0
imagePullPolicy: IfNotPresent
service:
port: 80
Configure values on command line with the --set flag
$ helm install --set service.port=8080 myapp/
Or pass in a new values file on command line with the -f flag
$ helm install -f myvalues.yaml myapp
Chart repositories
● Has an index.yaml file
● Any web server accessible via http(s)
Slide 30
Slide 30 text
Official Kubernetes Charts Repository
● Lives at github.com/kubernetes/charts
● Stable & Incubator repositories
● Over 70 stable charts
● ~ 9 incubator charts
● Lots of PRs
Slide 31
Slide 31 text
KubeApps.com
● github.com/helm/monocular
Slide 32
Slide 32 text
Helm is a piece of the puzzle
Slide 33
Slide 33 text
Get Involved
Slide 34
Slide 34 text
Kubernetes Community
● Special Interest Groups
○ Meetings are recorded and on youtube
● github.com/kubernetes/community
● Slack.k8s.io
● Helm is under the SIG-Apps umbrella
Slide 35
Slide 35 text
Helm Community
● 149 contributors
● Kubernetes slack channels: #helm-users, #helm-dev
● Weekly updates and demos at SIG Apps (recorded &
available on youtube)
● Documentation coming soon on http://helm.sh
Slide 36
Slide 36 text
Thank you Container Camp!!!
Sincerely,
Michelle from Microsoft