Інформація про послугу

Kubernetes as a Service має shared архітектуру, на хост кластері розгортаються віртуальні кластери(control plane), які працюють ізольовано один від одного. Для доступу до kube-api віртуального кластеру надається kubeconfig, який можна додати до ~user/.kube/config або додати до десктоп дашбордів керування kubernetes, таких як Lens або Headlamp.

Посилання на встановлення Lens https://docs.k8slens.dev/getting-started/install-lens/

Посилання на встановлення Headlamp https://headlamp.dev/docs/latest/installation/desktop/

Обмеження віртуального кластеру і доступний функціонал

  • Версія k8s 1.32.8
  • Віртуальний кластер має окремий від хост кластера control plane, etcd, coredns
  • Кожний pod в кластері запускається в user namespace і має унікальний непривілейований UID та GID на хост кластері, це дозволяє в контейнерах використовувати pid 0.
  • Всім подам в кластері автоматично прописується fsgroup та suplemental group з фіксованим ID для цього кластеру.
  • Контейнерам в подах обов'язково треба прописувати ресурси. За замовчанням всім контейнерам в кластері прописуються:
    example.yaml
          limits:
            memory: 100Mi
          request:
            ephemeral-storage: 200Mi
            memory: 100Mi
            cpu: 100m
  • В дашбордах доступні ресурси і використані ресурси нод не відповідають дійсності. Ці показники згенеровані і не несуть корисної інформації.
  • За розміщення подів на нодах відповідає scheduler хост кластера.
  • CPU usage та memory usage для подів відображаються згідно даних metric server хост кластера.

Для доступу до сервісів ззовні кластеру надається LoadBalancer IP. Рекомендуємо використовувати ingress controller до якого прив'язувати сервіси, яким потрібен доступ ззовні. Control Plane віртуальних кластерів(persistence volumes etcd та конфігурація кластеру) бекапиться зі сторони хост кластера. Додатково можемо робити бекапи persistent volumes ваших подів. Також є можливість робити бекапи persistence volumes в віртуальному кластерів за допомогою k8up. Якщо використовується база даних, то можна робити бекапи засобами відповідного оператора бази даних, наприклад percona operator.