应用范围
对在k8上标准化程序实现高效的部署和管理。
只需要在helm的repo上找到chart, 安装chart就可以在k8上运行对应的应用。
三大核心概念
chart :一个chart就是一个helm包,这个包里面包含了所有在k8集群上运行该应用的资源。
repo: 一个cdn,存放和共享charts的地方
release: 一个release就是当前k8集群运行的一个chart的实例。
我们绝大多数人都用过macos和fedora,chart就像是macos和fedora的go或者python等其他包,repo就是brew和yum用来找包的repo, release就是我们在macos和fedora上安装的当前版本的go。当有了go新版本的时候,我们可以使用brew/yum upgrade go到新版本。helm就等同于brew/yum,是k8的heml charts包的包管理工具。 helm可以搜索并安装charts到k8,升级或者卸载。
功能简介
helm serach
helm search hub # list all charts from all repos helm repo add repo_name repo_url # add repo_url as repo_name helm search repo repo_name # list all charts of all added repos
helm install
在repo中找到想要的包后,就可以install了
helm install release_name chart_name
查看release
helm status release_name
在安装前定义chart
helm show values chart_name
找到要更改的变量,编写values.yaml
然后指定该文件进行安装
helm install -f values.yaml release_name chart_name
查看更改的变量
helm get values
helm upgrade
helm upgrade -f update_name.yaml release_name chart_name
我们只需要将更新写到update_name.yaml中即可。
helm rollback
helm rollback release revision
命令行表
helm create <name> # Creates a chart directory along with the common files and directories used in a chart.
helm package <chart-path> # Packages a chart into a versioned chart archive file.
helm lint <chart> # Run tests to examine a chart and identify possible issues:
helm show all <chart> # Inspect a chart and list its contents:
helm show values <chart> # Displays the contents of the values.yaml file
helm pull <chart> # Download/pull chart
helm pull <chart> --untar=true # If set to true, will untar the chart after downloading it
helm pull <chart> --verify # Verify the package before using it
helm pull <chart> --version <number> # Default-latest is used, specify a version constraint for the chart version to use
helm dependency list <chart> # Display a list of a chart’s dependencies:
helm install <name> <chart> # Install the chart with a name
helm install <name> <chart> --namespace <namespace> # Install the chart in a specific namespace
helm install <name> <chart> --set key1=val1,key2=val2 # Set values on the command line (can specify multiple or separate values with commas)
helm install <name> <chart> --values <yaml-file/url> # Install the chart with your specified values
helm install <name> <chart> --dry-run --debug # Run a test installation to validate chart (p)
helm install <name> <chart> --verify # Verify the package before using it
helm install <name> <chart> --dependency-update # update dependencies if they are missing before installing the chart
helm uninstall <name> # Uninstall a release
helm repo add <repo-name> <url> # Add a repository from the internet:
helm repo list # List added chart repositories
helm repo update # Update information of available charts locally from chart repositories
helm repo remove <repo_name> # Remove one or more chart repositories
helm repo index <DIR> # Read the current directory and generate an index file based on the charts found.
helm repo index <DIR> --merge # Merge the generated index with an existing index file
helm search repo <keyword> # Search repositories for a keyword in charts
helm search hub <keyword> # Search for charts in the Artifact Hub or your own hub instance
helm list # Lists all of the releases for a specified namespace, uses current namespace context if namespace not specified
helm list --all # Show all releases without any filter applied, can use -a
helm list --all-namespaces # List releases across all namespaces, we can use -A
helm list -l key1=value1,key2=value2 # Selector (label query) to filter on, supports '=', '==', and '!='
helm list --date # Sort by release date
helm list --deployed # Show deployed releases. If no other is specified, this will be automatically enabled
helm list --pending # Show pending releases
helm list --failed # Show failed releases
helm list --uninstalled # Show uninstalled releases (if 'helm uninstall --keep-history' was used)
helm list --superseded # Show superseded releases
helm list -o yaml # Prints the output in the specified format. Allowed values: table, json, yaml (default table)
helm status <release> # This command shows the status of a named release.
helm status <release> --revision <number> # if set, display the status of the named release with revision
helm history <release> # Historical revisions for a given release.
helm env # Env prints out all the environment information in use by Helm.
helm plugin install <path/url1> # Install plugins
helm plugin list # View a list of all installed plugins
helm plugin update <plugin> # Update plugins
helm plugin uninstall <plugin> # Uninstall a plugin