コンテンツにスキップ

Helm

インストール

Helm | Helm のインストール

OSのパッケージ管理で対応してなければ、バイナリを/usr/local/bin/helmに置けばOK.
インストール用スクリプトもある。

aptはあるけど、今のとこyun/dnfはないんだよな。

コマンド

リポジトリ一覧

$ helm repo list
NAME                    URL                                               
prometheus-community    https://prometheus-community.github.io/helm-charts
rook-release            https://charts.rook.io/release                    
stable                  https://charts.helm.sh/stable                     
grafana                 https://grafana.github.io/helm-charts             
elastic                 https://helm.elastic.co                           
metallb                 https://metallb.github.io/metallb   

リポジトリを追加

$ helm repo add stable https://charts.helm.sh/stable

とか

$ helm repo add prometheus-community https://prometheus-community.github.io/helm-charts

とか

ローカルのリポジトリ情報を更新

多分apt-get update的な動作。

$ helm repo update

チャートの検索

$ helm search repo prometheus
NAME                                                    CHART VERSION   APP VERSION     DESCRIPTION                                       
prometheus-community/kube-prometheus-stack              16.12.1         0.48.1          kube-prometheus-stack collects Kubernetes manif...
prometheus-community/prometheus                         14.3.0          2.26.0          Prometheus is a monitoring system and time seri...
prometheus-community/prometheus-adapter                 2.14.2          v0.8.4          A Helm chart for k8s prometheus adapter           
prometheus-community/prometheus-blackbox-exporter       4.15.0          0.19.0          Prometheus Blackbox Exporter                      
prometheus-community/prometheus-cloudwatch-expo...      0.16.0          0.10.0          A Helm chart for prometheus cloudwatch-exporter   
:
:

チャートのデフォルト値

$ helm show values metallb/metallb
# Default values for metallb.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.

imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""

:
:

これをファイル出力すればインストール用のカスタマイズYAML作れる

リリースの設定値

チャートからリリースされているアプリケーションの設定値をhelm get valuesで確認できる。

[zaki@fedora-node ~]$ helm ls -A
NAME            NAMESPACE       REVISION        UPDATED                                 STATUS          CHART                   APP VERSION
grafana         monitoring      1               2021-07-26 16:23:47.276215637 +0900 JST deployed        grafana-6.14.1          8.0.5      
prometheus      monitoring      1               2021-07-26 14:24:12.737306448 +0900 JST deployed        prometheus-14.4.1       2.26.0     
[zaki@fedora-node ~]$ helm get values -n monitoring grafana
USER-SUPPLIED VALUES:
persistence:
  accessModes:
  - ReadWriteOnce
  enabled: true
  size: 1Gi
  type: pvc
service:
  type: LoadBalancer

環境変数

Helmで使用する環境編素はhelm envで確認できる。

$ helm env
HELM_BIN="helm"
HELM_CACHE_HOME="/home/zaki/.cache/helm"
HELM_CONFIG_HOME="/home/zaki/.config/helm"
HELM_DATA_HOME="/home/zaki/.local/share/helm"
HELM_DEBUG="false"
HELM_KUBEAPISERVER=""
HELM_KUBEASGROUPS=""
HELM_KUBEASUSER=""
HELM_KUBECAFILE=""
HELM_KUBECONTEXT=""
HELM_KUBETOKEN=""
HELM_MAX_HISTORY="10"
HELM_NAMESPACE="default"
HELM_PLUGINS="/home/zaki/.local/share/helm/plugins"
HELM_REGISTRY_CONFIG="/home/zaki/.config/helm/registry.json"
HELM_REPOSITORY_CACHE="/home/zaki/.cache/helm/repository"
HELM_REPOSITORY_CONFIG="/home/zaki/.config/helm/repositories.yaml"

HELM_CONFIG_HOMEを設定すれば、HELM_REGISTRY_CONFIGなどは連動する。

$ HELM_CONFIG_HOME=/var/tmp helm env | grep var
HELM_CONFIG_HOME="/var/tmp"
HELM_REGISTRY_CONFIG="/var/tmp/registry.json"
HELM_REPOSITORY_CONFIG="/var/tmp/repositories.yaml"