Kubernetes 1.7 – Использование Helm
О технологиях

Kubernetes 1.7 – Использование Helm

5494
6 минут

Использование Helm – это самый простой способ запуска и управления приложениями в кластере Kubernetes. Helm позволяет выполнять ключевые операции по управлению приложениями.

Kubernetes-1.7-Using-Helm


В прошлой статье мы установили небольшой кластер Kubernetes 1.7 на CentOS. Сегодня мы продолжим знакомство с Kubernetes, добавив к нему пакетный менеджер Helm.

Использование Helm – это самый простой способ запуска и управления приложениями в кластере Kubernetes. Helm позволяет выполнять ключевые операции по управлению приложениями, т.к. установка, обновление или их удаление. Если совсем просто, то Helm можно легко рассматривать yum и apt в CentOS или Ubuntu.

Helm состоит из двух частей: Helm (клиент) и Tiller (сервер). Далее мы рассмотрим очень простой процесс установки Helm и Tiller.


Установка Helm

Для установки Helm вам необходимо выполнить следующие команды на хосте, с которого вы администрируете ваш Kubernetes кластер (там, где установлен kubectl):



$ curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get | bash

Для пользователей OS X можно воспользоваться brew



$ brew install kubernetes-helm

Что такое Tiller

После того как вы установили клиент Helm, можно переходить к установке Tiller



$ helm init

Если вы хотите обновить уже установленный Tiller на последнюю версию, это делается не менее просто



$ helm init --upgrade

Для проверки, что Tiller установлен корректно, выполните следующую команду



$ kubectl --namespace kube-system get pods | grep tiller
tiller-deploy-3360264398-d82c5   1/1       Running   0          2d

Обязательно проверьте вывод команды



$ helm list

Если вы увидите ошибку



Error: User "system:serviceaccount:kube-system:default" cannot list configmaps in the namespace "kube-system". (get configmaps), 

выполните следующие инструкции для создания сервисной учетной записи, необходимой Helm для работы с включенным RBAC (более подробно на GitHub):



$ kubectl create serviceaccount --namespace kube-system tiller
serviceaccount "tiller" created

$ kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
clusterrolebinding "tiller-cluster-rule" created

$ kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'
deployment "tiller-deploy" patched

$ helm init --service-account tiller --upgrade
$HELM_HOME has been configured at /user/.helm.

$ helm list
Error: could not find a ready tiller pod

# Это нормально, tiller pod пересоздается

$ helm list

Установка приложений с помощью Helm

Приложения в Helm называются чартами (charts). Посмотреть список актуальных и доступных чартов можно в их официальном репозитории.

При выполнении команды helm install, выбранное приложение будет развернуто в вашем кластере Kubernetes.

Пример установки Redis:



$ helm install stable/redis
NAME:   nuanced-fish
LAST DEPLOYED: Mon Aug 14 07:05:46 2017
NAMESPACE: default
STATUS: DEPLOYED

RESOURCES:
==> v1/Secret
NAME                TYPE    DATA  AGE
nuanced-fish-redis  Opaque  1     1s

==> v1/PersistentVolumeClaim
NAME                STATUS   VOLUME  CAPACITY  ACCESSMODES  STORAGECLASS  AGE
nuanced-fish-redis  Pending  1s

==> v1/Service
NAME                CLUSTER-IP   EXTERNAL-IP  PORT(S)   AGE
nuanced-fish-redis  10.106.51.9         6379/TCP  0s

==> v1beta1/Deployment
NAME                DESIRED  CURRENT  UP-TO-DATE  AVAILABLE  AGE
nuanced-fish-redis  1        1        1           0          0s


NOTES:
Redis can be accessed via port 6379 on the following DNS name from within your cluster:
nuanced-fish-redis.default.svc.cluster.local
To get your password run:

    REDIS_PASSWORD=$(kubectl get secret --namespace default nuanced-fish-redis -o jsonpath="{.data.redis-password}" | base64 --decode)

To connect to your Redis server:

1. Run a Redis pod that you can use as a client:

   kubectl run nuanced-fish-redis-client --rm --tty -i --env REDIS_PASSWORD=$REDIS_PASSWORD --image bitnami/redis:3.2.9-r2 -- bash

2. Connect using the Redis CLI:

  redis-cli -h nuanced-fish-redis -a $REDIS_PASSWORD


В следующей статье мы поговорим о Helm чуть подробнее, рассмотрим структуру чартов, а также механизм создания собственных.

19 октября 2023
Контейнеры: технологии и процессы глазами разработчика

В выпуске#9 видеоподкаста «Откровенно об ИТ-инфраструктуре» поговорили о роли контейнеров в разработке. Приглашенные эксперты обсудили специфику использования Kubernetes и сокращение time-to-market в контексте контейнеризации.

В гостях Михаил Гудов, Orion soft, и Василий Колосов, Smartex.
1 минута
773
19 июня 2023
Семь трендов на рынке облачных услуг в 2023 году
До 2022 года на рынке облаков в России главенствовали мировые тренды, но сейчас наша страна пошла своим путем. О том, для чего сейчас компании используют облачные технологии и как меняется рынок, рассказал директор по развитию КРОК Облачные сервисы Сергей Зинкевич.
1 минута
2175
16 июня 2023
Рулевой в океане контейнеров
Выпуск#3 видеоподкаста «Откровенно об ИТ-инфраструктуре» посвящен Kubernetes и профессиональным платформам оркестрации контейнеров. Обсудили, как сегодня складывается ситуация на российском рынке контейнерных платформ, что востребовано и почему, особенности и перспективы работы с Kubernetes.

В гостях Александр Баталов, Генеральный директор Флант
1 минута
1501
29 марта 2023
Сетевые балансировщики нагрузки и другие обновления Облака КРОК

Мы рады вам представить новый сервис Облака КРОК для распределения трафика между экземплярами – Балансировщики нагрузки. Кроме того, мы автоматизировали обновление сертификатов Kubernetes и добавили возможность удаления рабочих узлов из кластера Kubernetes.

2 минуты
913
13 февраля 2023
Замена игрока: выбираем альтернативу зарубежному системному ПО (взгляд облачного провайдера)

На поле ИТ сегодня захватывающая интрига – выбор адекватной замены зарубежным системам, производители которых массово вышли из игры. На онлайн-митапе поделились опытом подбора, внедрения и сопровождения решений, способных заместить платформу виртуализации, почту, файловое хранилище, каталог пользователей, backup и др.

Предлагаем вашему вниманию запись и расшифровку митапа.

2 минуты
2161
scrollup