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

Helm, The Package Manager for Kubernetes

Maciej Strzelecki
November 23, 2016
66

Helm, The Package Manager for Kubernetes

Maciej Strzelecki

November 23, 2016
Tweet

Transcript

  1. , kubectl apply -f - kubectl create -f, kubectl set

    deployment image kubectl create -f, kubectl patch grep, awk, sed, kubectl apply -f - ktmpl jenkins-kubernetes-plugin Ansible's kubernetes
  2. INSTALLING HELM brew cask install helm $ curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get |

    bas $ wget http://storage.googleapis.com/kubernetes-helm/helm-v2.0.0-linux-amd64.tar. $ tar -zxvf helm-v2.0.0-linux-amd64.tgz $ mv linux-amd64/helm /usr/local/bin/helm
  3. INSTALLING TILLER $ helm init Creating /Users/mstrzele/.helm Creating /Users/mstrzele/.helm/repository Creating

    /Users/mstrzele/.helm/repository/cache Creating /Users/mstrzele/.helm/repository/local Creating /Users/mstrzele/.helm/repository/repositories.yaml Creating /Users/mstrzele/.helm/repository/local/index.yaml $HELM_HOME has been configured at $HOME/.helm. Tiller (the helm server side component) has been installed into your Kubernetes C Happy Helming! $ kubectl get pod --namespace kube-system NAME READY STATUS RESTARTS AGE kube-addon-manager-minikube 1/1 Running 0 9m kube-dns-v20-7vkd5 3/3 Running 0 8m kubernetes-dashboard-guhij 1/1 Running 0 8m tiller-deploy-2241983194-mbv1w 1/1 Running 0 8m
  4. $ find . . ./.helmignore ./Chart.yaml ./charts ./charts/mysql-0.2.1.tgz ./requirements.lock ./requirements.yaml

    ./templates ./templates/_helpers.tpl ./templates/deployment.yaml ./templates/ingress.yaml ./templates/NOTES.txt ./templates/post-install-job.yaml ./templates/secret.yaml ./templates/service.yaml ./values.yaml
  5. ./Chart.yaml name: symfony-demo version: 0.1.0 description: Symfony Demo Application keywords:

    - symfony - demo home: http://symfony.com/blog/introducing-the-symfony-demo-application sources: - https://github.com/symfony/symfony-demo maintainers: - name: Maciej Strzelecki email: [email protected] engine: gotpl icon: http://symfony.com/apple-touch-icon.png
  6. ./templates/service.yaml apiVersion: v1 kind: Service metadata: name: {{ template "fullname"

    . }} labels: chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" spec: type: {{ .Values.service.type }} ports: - port: {{ .Values.service.externalPort }} targetPort: {{ .Values.service.internalPort }} protocol: TCP name: {{ .Values.service.name }} selector: app: {{ template "fullname" . }} Sprig: Template functions for Go templates
  7. ./values.yaml # Default values for symfony-demo. # This is a

    YAML-formatted file. # Declare variables to be passed into your templates. replicaCount: 1 image: repository: mstrzele/symfony-demo tag: latest pullPolicy: Always service: name: symfony-demo type: NodePort externalPort: 80 internalPort: 8000 resources: limits: cpu: 100m memory: 128Mi requests:
  8. ./index.yaml apiVersion: v1 entries: symfony-demo: - created: 2016-11-21T18:34:54.434552683+01:00 description: Symfony

    Demo Application digest: a4a57aa9ef792fb00ff584f0b911b6e26fd45f60da74fec41df11392563407de engine: gotpl home: http://symfony.com/blog/introducing-the-symfony-demo-application icon: http://symfony.com/apple-touch-icon.png keywords: - symfony - demo maintainers: - email: [email protected] name: Maciej Strzelecki name: symfony-demo sources: - https://github.com/symfony/symfony-demo