С чего начать
Что такое in-Cloud?
in-Cloud — это фреймворк для создания собственного пользовательского интерфейса к Kubernetes-API. Вы можете построить интерфейс, который соответствует вашему видению — от минималистичного дашборда до аналога OpenShift Console. Все элементы собираются из готовых компонентов, а логика описывается декларативно.
Как установить?
Установка разделена на этапы — вы выбираете нужные.
1. Установка in-Cloud Console
На этом этапе вы устанавливаете основное приложение. Возможна настройка как базового варианта, так и полноценной версии «под ключ» — с oAuth-Proxy и Dex.
helm upgrade in-cloud-web oci://registry-1.docker.io/prorobotech/incloud-web-chart \
--version=1.2.0-24d9b36 \
--namespace in-cloud-web \
--install \
--set incloud-web-resources.enabled=false \
--set fullnameOverride=in-cloud-web \
--create-namespace
2. Установка визуальной конфигурации
Здесь добавляется интерфейсная надстройка — готовый пресет, с которого удобно начать знакомство с системой.
helm upgrade in-cloud-web-resources oci://registry-1.docker.io/prorobotech/incloud-web-resources \
--version=1.2.0-76abba6 \
--namespace in-cloud-web \
--install
Как начать использовать?
Мы осознаем, что инфраструктура у каждого своя, включая способы заведения трафика (Ingress, VirtualService и т. п.). Поэтому оставляем это на ваше усмотрение.
По умолчанию разворачивается один Deployment с тремя контейнерами: Nginx, Web, BFF. Входной трафик следует направлять на контейнер Nginx, порт nginx-http.
Для быстрого старта можно воспользоваться port-forward:
sudo kubectl port-forward svc/in-cloud-web 80:80 -n in-cloud-web --kubeconfig ~/.kube/config
После этого в браузере откройте http://localhost:8081. Вы увидите базовый интерфейс in-Cloud Console — стартовую версию UI с преднастроенным сайдбаром и несколькими типовыми страницами (например, список Namespaces, Workloads и сервисов).
Эта конфигурация предназначена только для ознакомления и локальной отладки. В боевых сценариях трафик следует заводить через привычные механизмы (Ingress, Istio VirtualService и т. п.), а доступ — интегрировать с IDP.
Если установка выполняется в ознакомительных целях, необходимо добавить рольбиндинг для анонимного пользователя.
В Kubernetes все пользователи, которые не прошли аутентификацию, автоматически относятся к субъекту system:anonymous.
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: anonymous-clusterrolebinding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: admin-clusterrole
subjects:
- kind: User
name: system:anonymous
apiGroup: rbac.authorization.k8s.io