- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
Helm——Taylor Thomas,微软
展开查看详情
1 .Take the Helm An Intro to Helm
2 .An Acknowledgement
3 .Helm, a package manager for Kubernetes
4 .Helm: Core Concepts ● Chart - expert built recipe for installing an application ● Values - user supplied configuration ● Release - instance of Chart + Values that get deployed in Kubernetes
5 .Prerequisites ● Download Helm & put it in your path ○ On a Mac: brew install kubernetes-helm ○ On Windows: choco install kubernetes-helm ○ Get the binary: https://github.com/helm/helm/releases/tag/v2.11.0 ● Grab a running Kubernetes cluster ○ Minikube: https://github.com/kubernetes/minikube/releases/tag/v0.30.0
6 .$ helm init ● Configures your local environment ● Creates a pod called Tiller in your cluster
7 .Tiller ● Server-side component ● Runs as a pod in the cluster ● Manages releases in your cluster Helm gRPC Tiller Client Kubernetes
8 .Charts ● Are application definitions ● Consist of ○ Metadata ○ Kubernetes resource definitions ○ Configuration ○ Documentation ● Live in chart repositories
9 .Where the Helm do I find charts? ● Lives at github.com/helm/charts ● Stable & Incubator repositories ● ~218 stable charts ● ~53 incubator charts
10 .hub.kubeapps.com ● github.com/helm/monocular
11 .Chart repositories ● Has an index.yaml file ● Any web server accessible via http(s)
12 .Recap ● Helm is the client ● Tiller is the server ● Charts are the “package” ● Chart + Values = Release
13 .Demo Time!
14 .Chart your course
15 .$ helm create <name>
16 .Chart Structure myapp ├── Chart.yaml ├── README.md ├── charts ├── templates └── values.yaml
17 .Templates myapp ├── Chart.yaml ├── README.md ├── charts ├── templates │ ├── deployment.yaml │ └── svc.yaml └── values.yaml
18 .Configuration values.yaml image: mycompany/myapp:1.0.0 imagePullPolicy: IfNotPresent myapp service: port: 80 ├── Chart.yaml templates/deployment.yaml ├── README.md apiVersion: extensions/v1beta1 kind: Deployment ├── charts spec: template: ├── templates spec: containers: └── values.yaml - name: {{ .Chart.Name }} image: "{{ .Values.image }}" └── requirements.yaml imagePullPolicy: {{ .Values.imagePullPolicy }} ports: - containerPort: {{ .Values.service.port }}
19 . 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
20 .Dependencies requirements.yaml myapp dependencies: ├── Chart.yaml - name: mariadb version: 0.5.2 repository: http://storage.googleapis.com/kubernetes-charts ├── README.md ├── charts ├── templates └── values.yaml └── requirements.yaml
21 .Documentation myapp ├── Chart.yaml ├── README.md ├── charts ├── templates └── NOTES.txt └── values.yaml
22 .Metadata myapp ├── Chart.yaml ├── README.md ├── charts ├── templates └── values.yaml └── requirements.yaml
23 .Want to become a Helmette?
24 .Helm Community ● Lots of contributors (391 according to GitHub) ● Kubernetes slack channels: #helm-users, #helm-dev ● Weekly updates and demos at SIG Apps and the public Helm developer call (09:30 Pacific Time) ● Documentation at http://docs.helm.sh
25 .Helpful Links ● Helm website: http://helm.sh ● Helm quickstart: https://docs.helm.sh/using_helm/#quickstart ● Helm documentation: https://docs.helm.sh ● Chart tips & tricks: https://youtu.be/16FU6U8eOdk?t=12m36s