Helm

https://github.com/helm/helm

helm有两个组件:

  • helm: 客户端
  • tiller: 服务端(helm3被移除)

概念:

  • chart: helm包,包含运行一个应用所需的镜像,依赖和资源.
  • repository: 用于发布和存储chart的仓库.
  • release: 在k8s集群上运行的一个chart实例.

repository有哪些:

安装

helm和kubectl一样,访问指定配置的k8s集群。

helm2需要安装tiller并且执行helm init初始化.

本地二进制安装helm3+:

curl https://baltocdn.com/helm/signing.asc | sudo apt-key add -
sudo apt-get install apt-transport-https --yes
echo "deb https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list
sudo apt-get update
sudo apt-get install helm

命令

repo管理

查看有哪些repo,默认没有repo

$ helm repo list 

添加repo并命名

$ helm repo add [NAME] [URL] [flags]

// 添加charts/artifactoryhub stable命名为stable
$ helm repo add stable https://charts.helm.sh/stable

更新repo:

$ helm repo update

chart管理

从artifacthub查找chart:

$ helm search hub [KEYWORD] [flags]

从添加到本地的repo中查找:

$ helm search repo [keyword] [flags]

// 查看stable repo里面所有chart
$ helm search repo traefik

查看chart信息:

helm show chart traefik/traefik
helm show values traefik/traefik > value.yaml

创建chart:

helm create

helm dependency
helm lint
helm package
helm pull
helm verify

release管理

install/upgrade/uninstall/rollback

status/list/test/get/history

安装chart:

helm install [name] [chart] [flags]

helm install traefik traefik/traefik

// 需提前创建namespace, 修改value
helm install kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard -f value.yaml -n kubernetes-dashboard

查看release(每个install都是一个release):

helm list

卸载release:

helm uninstall kubernetes-dashboard -n kubernetes-dashboard

查看状态:

helm status mysql

misc

helm plugin
helm env
helm template

chart开发

Chart.yaml
values.yaml
requirements.yaml
templates/*.yaml
charts/