Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Container Camp: Highway to Helm

Container Camp: Highway to Helm

Container Camp Sydney 2017.
This is an introduction to Helm and how to get involved with the Kubernetes & Helm communities.

Michelle Noorali

May 23, 2017
Tweet

More Decks by Michelle Noorali

Other Decks in Technology

Transcript

  1. Highway to Helm Stairway to Kubernetes By Michelle Noorali @michellenoorali

  2. Hello, It’s me.

  3. None
  4. A Platform as a Service Company

  5. Platform as a service (PaaS)

  6. None
  7. Deis Workflow Kubernetes-native PaaS Kubernetes package manager Steward Kubernetes-native service

    broker
  8. None
  9. Dearest human, Clear commit messages are the key to life.

    Sincerely, Michelle from Microsoft
  10. We need a tool to manage a group of Kubernetes

    resources as one unit.
  11. Helm, a package manager for Kubernetes

  12. Charts • Are application definitions • Consist of ◦ Metadata

    ◦ Kubernetes resource definitions ◦ Configuration ◦ Documentation • Live in chart repositories
  13. 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
  14. Prerequisites • Download Helm & put it in your path

    • Grab a running Kubernetes cluster
  15. $ helm init • Configures your local environment • Creates

    a pod called Tiller in your cluster
  16. 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
  17. Recap • Helm is the client • Tiller is the

    server • Kubernetes is the target platform & data storage • Chart + Values = Release
  18. Demos: • Init in Action • Install a chart •

    Upgrade a release • Delete a release
  19. Where can I get a Helm like that? • Homebrew

    brew install kubernetes-helm • Github github.com/kubernetes/helm/releases
  20. If you like, then you gotta put a chart on

    it
  21. $ helm create <name>

  22. Chart Structure myapp ├── Chart.yaml ├── README.md ├── charts ├──

    templates └── values.yaml
  23. Templates myapp ├── Chart.yaml ├── README.md ├── charts ├── templates

    │ ├── deployment.yaml │ └── svc.yaml └── values.yaml
  24. Configuration myapp ├── Chart.yaml ├── README.md ├── charts ├── templates

    └── values.yaml └── requirements.yaml values.yaml image: mycompany/myapp:1.0.0 imagePullPolicy: IfNotPresent service: port: 80 apiVersion: extensions/v1beta1 kind: Deployment spec: template: spec: containers: - name: {{ .Chart.Name }} image: "{{ .Values.image }}" imagePullPolicy: {{ .Values.imagePullPolicy }} ports: - containerPort: {{ .Values.service.port }} templates/deployment.yaml
  25. 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
  26. Dependencies myapp ├── Chart.yaml ├── README.md ├── charts ├── templates

    └── values.yaml └── requirements.yaml dependencies: - name: mariadb version: 0.5.2 repository: http://storage.googleapis.com/kubernetes-charts requirements.yaml
  27. Documentation myapp ├── Chart.yaml ├── README.md ├── charts ├── templates

    └── NOTES.txt └── values.yaml
  28. Metadata myapp ├── Chart.yaml ├── README.md ├── charts ├── templates

    └── values.yaml └── requirements.yaml
  29. Chart repositories • Has an index.yaml file • Any web

    server accessible via http(s)
  30. Official Kubernetes Charts Repository • Lives at github.com/kubernetes/charts • Stable

    & Incubator repositories • Over 70 stable charts • ~ 9 incubator charts • Lots of PRs
  31. KubeApps.com • github.com/helm/monocular

  32. Helm is a piece of the puzzle

  33. Get Involved

  34. 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
  35. 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
  36. Thank you Container Camp!!! Sincerely, Michelle from Microsoft

  37. Helpful Links • • • • • •