Helm – это верхнеуровневый инструмент над приложениями Kubernetes. Helm выступает в роли некоего пакетного менеджера. В своей работы Helm использует пакеты Helm Chart – структурированную иерархию файлов, которые содержат описание тех ресурсов, которые вы планируете развернуть. В этой публикации я покажу, как можно выполняется установка Helm в Linux. Это крайне простой процесс.
Предварительные требования
Каких-то особых предварительных требований нет. На большинстве самых ходовых Linux дистрибутивах я не замечал каких-то проблем (Ubuntu, CentOS, Fedora, Mint). Но вот с отечественными дистрибутивами я не тестировал установку Helm именно этим способом.
Можно выполнить установку, например, на Minikube.
Установка Helm
Установка выполняется в несколько простых шагов. Сначала загружаем скрипт для установки:
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
Выдаем разрешения на выполнение скрипта, который мы загрузили:
chmod 700 get_helm.sh
И непосредственно запускаем установку:
sudo ./get_helm.sh
Проверка
Сначала давайте попробуем проверить версию Helm:
helm version
roman@minikubevm:~$ helm version
version.BuildInfo{Version:"v3.11.0", GitCommit:"472c5736ab01133de504a826bd9ee12cbe4e7904", GitTreeState:"clean", GoVersion:"go1.18.10"}
roman@minikubevm:~$
Теперь давайте попробуем установить какой-нибудь Helm Chart. Например, с веб сервером nginx:
helm repo add mirantis https://charts.mirantis.com
helm install my-release mirantis/nginx
После выполнения команд выше проверим наше развертывание Helm:
helm list
roman@minikubevm:~$ helm list
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
my-release default 1 2023-01-21 22:43:31.989029853 +0700 +07 deployed nginx-0.1.0 1.16.0
roman@minikubevm:~$
Соответственно я также могу увидеть поды и сервисы Kubernetes:
kubectl get pod
kubectl get services
roman@minikubevm:~$ kubectl get pod
kubectl get services
NAME READY STATUS RESTARTS AGE
my-release-nginx-b9c446b75-gbl6k 1/1 Running 0 4m3s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 23h
my-release-nginx ClusterIP 10.110.226.159 <none> 80/TCP 4m3s
roman@minikubevm:~$
Установка и проверка работы Helm завершена.