Демо-доступ к консоли управления облаком

Быть в теме

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

01.08.2018 9 минут 77

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

Kubernetes-1.7-Using-Helm-e1502899060478.png


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

 

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

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

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