Skip to content

Установка Predicate в Yandex Cloud

Создание Managed Service for Kubernetes и его настройка

Для последующей работы с кластером, установите Yandex CLI, Helm, kubectl

Используя инструкцию создайте кластер Managed Service for Kubernetes.

Важно

При создании сервисного аккаунта для кластера (пункт 8), необходимо дополнительно добавить роль load-balancer.admin.

Страница сервисного аккаунта: Service account Страница созданного кластера: Managed Service for Kubernetes

После создания кластера, используя ту же инструкцию, создайте один узел с рекомендованными ресурсами.

Страница созданного узла: Node for Kubernetes

Далее, выполните команду для получения учётных данных кластера, заменив CLUSTER_NAME на имя созданного кластера:

yc managed-kubernetes cluster get-credentials $CLUSTER_NAME --external

Чтобы узнать имя контекста кластера, выполните команду. После чего запомните имя созданного ранее контекста, которое будет использоваться в переменной CONTEXT_NAME:

kubectl config get-contexts

Установка NFS сервера

Важно

Если у вас уже есть NFS сервер, то пропустите этот шаг.

Установка будет производиться на базе провизора Ganesha. Для установки необходимо выполнить следующие шаги:

  1. Добавить репозиторий
    helm repo add nfs-ganesha-server-and-external-provisioner https://kubernetes-sigs.github.io/nfs-ganesha-server-and-external-provisioner
    
  2. Установить NFS сервер, указав параметр CONTEXT_NAME - имя контекста кластера
    helm upgrade --install nfs-ganesha \
    nfs-ganesha-server-and-external-provisioner/nfs-server-provisioner \
    --set persistence.enabled=true \
    --set persistence.storageClass="yc-network-hdd" \
    --set persistence.size=70Gi \
    --set service.nameOverride='nfs-ganesha-svc' \
    --set rbac.serviceAccount.name='nfs-ganesha-sa' \
    --set fullnameOverride='nfs-ganesha' \
    --namespace default \
    --kube-context $CONTEXT_NAME 
    
  3. После установки необходимо проверить, что был создан StorageClass с именем nfs. Для этого выполните команду:
    kubectl config use-context $CONTEXT_NAME 
    kubectl get sc
    

Установка Ingress Controller

Важно

Если у вас уже есть Ingress Controller, то пропустите этот шаг.

На данный момент, дефолтная поставка в YC не включает в себя поддержку Cert Manager, т.к. для его работы необходимо наличие доступа к DNS-серверу, а в поставке используется сервис nip.io для обеспечения доступа к сервисам.

Если у вас имеется собственное доменное имя, то вы можете использовать дополнительные шаги из следующей инструкции для установки Cert Manager. Для установки только Ingress Controller, выполните следующий шаг:

helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx && \
helm repo update && \
helm install ingress-nginx ingress-nginx/ingress-nginx \
--set controller.allowSnippetAnnotations=true \
--namespace default \
--kube-context $CONTEXT_NAME 
Созданный контроллер будет установлен за Yandex Network Load Balancer, балансировщик создастся автоматически.

После установки Ingress Controller, необходимо узнать IP-адрес балансировщика, который будет использоваться для доступа к сервисам. Для этого выполните команду и запомните значение в поле EXTERNAL-IP:

kubectl config use-context $CONTEXT_NAME 
kubectl get svc ingress-nginx-controller

Создание S3 хранилища и настройка доступа к нему

Для создания бакета в Yandex Object Storage, воспользуйтесь инструкцией. Рекомендованный размер бакета - 100Gb.

Страница созданного бакета: Bucket

Для дальнейшего доступа к бакету, создайте сервисный аккаунт с ролью storage.editor или storage.admin (GET/UPDATE/DELETE объектов). Для этого выполните следующие шаги:

  1. В консоли управления выберите каталог.

  2. Перейдите в раздел Сервисные аккаунты и нажмите Создать сервисный аккаунт.

  3. Введите имя, добавьте роль storage.editor и нажмите Создать.

  4. После создания сервисного аккаунта, нажмите на него и нажмите Создать новый ключ -> Создать статический ключ доступа.

  5. Ведите необходимое описание (например s3-cred) и нажмите Создать.

  6. Сохраните полученные данные (идентификатор ключа и секретный ключ) для дальнейшего использования.

Страница созданного ключа доступа для сервисного аккаунта S3: Service account

Установка Keycloak и настройка доступа к нему

Установка Predicate

Важно

Перед установкой необходимо убедиться, что все предыдущие шаги были выполнены успешно.

Пример заполнения полей в форме установки приложения. Подробное описание полей можно узнать при наведении на знак вопроса рядом с названием поля: Predicate