Запросить демо
Я подтверждаю свое согласие на обработку компанией КРОК моих персональных данных, указанных в форме, в целях и пределах, установленных законодательством РФ о персональных данных в рамках проводимых мероприятий в течение неопределенного срока
Дополнительные услуги
Узнать стоимость
Я подтверждаю свое согласие на обработку компанией КРОК моих персональных данных, указанных в форме, в целях и пределах, установленных законодательством РФ о персональных данных в рамках проводимых мероприятий в течение неопределенного срока
Дополнительные услуги
Попробовать бесплатно
Я подтверждаю свое согласие на обработку компанией КРОК моих персональных данных, указанных в форме, в целях и пределах, установленных законодательством РФ о персональных данных в рамках проводимых мероприятий в течение неопределенного срока
Дополнительные услуги
Быть в теме

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

01.08.2018 5 минут 440

Использование 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 чуть подробнее, рассмотрим структуру чартов, а также механизм создания собственных.

Сервисы упоминаемые в статье

  1. Публичное облако КРОК

Не пропустите самые важные, интересные и полезные статьи недели

Ваш e-mail успешно подписан.

Смотрите так же