Kubernetes без AWS, Google Cloud і Azure: як ми шукали європейський cloud для клієнта
Вітаю! Мене звати Віталій Лук’яненко, я Cloud Architect в компанії Infinity Technologies.
Коли ми говоримо про cloud-міграції, зазвичай перше, що приходить на думку, це вартість, продуктивність, availability zones, managed services, якість документації та зручність для DevOps-команди. Але в європейському контексті останніми роками дедалі частіше з’являється ще один критерій, який може переважити всі інші, цифровий суверенітет.
Під час одного з нещодавніх проєктів ми допомагали європейському клієнту спроєктувати другу production-інстанцію в європейському cloud-провайдері. Ситуація зараз досить типова: компанія вже мала cloud-native продукт, побудований навколо Kubernetes, і хотіла зменшити залежність від hyperscalers, зберігши при цьому зрілий managed Kubernetes experience.
Завдання не звучало як «давайте просто переїдемо з Google Cloud / AWS / Azure кудись дешевше». Воно було складнішим: потрібно було зрозуміти, чи можна побудувати production-ready Kubernetes-платформу в європейському cloud так, щоб customer data, backups, disaster recovery copies, audit logs, load balancing і secrets залишалися в межах ЄС.
Чому це взагалі стало темою
Google Cloud, AWS і Microsoft Azure залишаються дуже сильними платформами. У них велика кількість сервісів, глобальна присутність, зріла екосистема, хороша документація та зрозумілі enterprise-процеси. Для багатьох компаній це все ще найраціональніший вибір.
Але для частини європейських бізнесів цього вже недостатньо.
Через геополітичну ситуацію, посилення уваги до data sovereignty та вимоги регуляторів компанії дедалі частіше ставлять собі незручні, але правильні запитання:
- де фізично знаходяться дані;
- де обробляється трафік;
- куди потрапляють backups і disaster recovery copies;
- хто має доступ до metadata;
- які subprocessors залучені;
- де працює support;
- чи може частина операцій неочевидно вийти за межі ЄС.
На рівні application hosting усе може виглядати просто: «ми обрали EU region». Але на практиці цього недостатньо. Треба дивитися не лише на compute, а й на load balancers, object storage, container registry, CI runners, backup locations, DR regions, TLS certificates, vulnerability feeds і навіть місце, де зберігається source code.
Особливо це важливо для продуктів, які працюють із security-sensitive data: secrets, credentials, identity-related data, audit logs, фінансовими або медичними даними.
Чому Kubernetes ускладнює вибір
Якщо вам потрібні просто віртуальні машини в Європі, варіантів багато. Але якщо продукт уже побудований на Kubernetes і команді потрібен саме managed Kubernetes-as-a-Service, список кандидатів різко скорочується.
На ранньому етапі ми також дивилися на Hetzner. Це сильний європейський провайдер із дуже привабливою вартістю raw compute, storage і networking. Але для нашого кейсу він не підійшов через одну принципову причину: Hetzner не надає native managed Kubernetes-as-a-Service.
Так, Kubernetes на Hetzner можна запустити. Наприклад, через self-managed підхід або third-party managed Kubernetes поверх Hetzner infrastructure. Але це вже інший тип рішення: з додатковим постачальником або з додатковою операційною відповідальністю на стороні команди. А в нашому випадку клієнт хотів саме managed Kubernetes із provider-operated control plane, а не власну платформну команду навколо etcd, upgrades, HA, hardening та incident response.
Тому після первинного аналізу реальний вибір звузився до двох провайдерів: Scaleway Kapsule та OVHcloud Managed Kubernetes Service.
Якими були критерії вибору
Ми не шукали «найкращий cloud взагалі». Такого, швидше за все, не існує. Ми шукали найкращий варіант під конкретний набір обмежень.
|
Критерій |
Що це означало для проєкту |
|
Managed Kubernetes |
Провайдер має надавати Kubernetes-as-a-Service з managed control plane, а не просто VM |
|
EU data residency |
Customer data, secrets, backups, audit logs і DR copies мають залишатися фізично в ЄС |
|
EU-only load balancing and DR |
Traffic management, backup storage і disaster recovery мають бути явно прив’язані до EU-регіонів |
|
Jurisdictional sovereignty |
Перевага надається провайдерам без direct US parent-company exposure |
|
Portability |
Архітектура не повинна бути занадто залежною від proprietary-сервісів конкретного провайдера |
|
Production readiness |
Потрібно врахувати database failover, observability, backup testing, security controls і майбутню DR-стратегію |
|
Cost awareness |
Вартість має бути прогнозованою, але не ціною втрати операційної надійності |
Ці критерії одразу прибрали частину провайдерів із розгляду. Бо «є сервери в Європі» і «є production-ready managed Kubernetes для sovereignty-sensitive workload» це різні речі.
Scaleway і OVHcloud на першому рівні порівняння
На першому рівні обидва провайдери виглядали релевантно. Обидва є європейськими, обидва мають managed Kubernetes, обидва дають можливість побудувати cloud-native stack без надмірного lock-in.
Але їхні сильні сторони різні.
|
Параметр |
Scaleway Kapsule |
OVHcloud MKS |
|
HQ / parent |
iliad Group, Франція |
OVH Groupe SA, Франція |
|
Native managed Kubernetes |
Так, Kubernetes Kapsule |
Так, Managed Kubernetes Service |
|
Основна перевага |
EU-only cloud footprint і простіша sovereignty-історія |
Сильніший production HA story у Standard plan |
|
Non-EU regions |
Не виявлено в cloud footprint |
Є non-EU regions, тому потрібне явне EU pinning |
|
Підхід до sovereignty |
Більш структурний: менший ризик випадково обрати non-EU region |
Досяжний, але потребує дисципліни в архітектурі, IaC і перевірках |
|
Найкращий fit |
Sovereignty-first, cost-conscious, portable architecture |
HA/SLA-first, production-grade control plane, |
Саме ця різниця стала головною в подальшому аналізі. Scaleway виглядав простішим з точки зору EU data residency. OVHcloud сильнішим там, де критичним стає control-plane resilience.
Scaleway Kapsule: коли важлива простота sovereignty
У Scaleway головна перевага для такого сценарію не окрема функція Kubernetes, а загальна простота cloud footprint. Якщо cloud-платформа не має non-EU regions, команді не потрібно постійно контролювати, щоб хтось випадково не створив object storage, backup target, load balancer або DR copy поза межами ЄС.
Це звучить як дрібниця, але на практиці це суттєво зменшує ризик помилки. Особливо коли інфраструктурою користуються різні команди, змінюється конфігурація, з’являються нові середовища, додаються backup jobs або експериментальні deployment-и.
Scaleway Kapsule дає managed Kubernetes, підтримку Cilium і Calico, інтеграцію з managed Load Balancer, block storage, Private Network/VPC, Container Registry та S3-compatible Object Storage. Для portable Kubernetes-архітектури цього достатньо.
Водночас треба чесно зафіксувати компроміс: free mutualized control plane не має contractual SLA. Для PoC або early build це нормально. Для production, де потрібен формальний SLA, треба дивитися на dedicated control plane.
|
Компонент |
Scaleway Kapsule |
|
Free control plane |
Так, mutualized, без contractual SLA |
|
Paid production option |
Dedicated control plane від приблизно €80 / month |
|
Production control-plane SLA |
99.5% uptime для dedicated control plane |
|
Worker-node multi-AZ |
Так, node pools можуть span multiple AZs |
|
CNI |
Cilium або Calico |
|
Object storage |
S3-compatible, EU regions |
|
Private networking |
Private Network / VPC |
|
Основний плюс |
EU-only footprint і простота контролю data residency |
|
Основний компроміс |
Для формального production SLA потрібен paid dedicated control plane |
У нашому аналізі Scaleway був найкращим кандидатом, якщо головна мета зменшити операційну складність навколо EU sovereignty і не будувати зайві guardrails проти випадкового використання non-EU region.
OVHcloud MKS: коли важливіша production HA-історія
OVHcloud виглядає сильніше в іншому сценарії: коли головний пріоритет production-grade managed Kubernetes control plane, особливо для high-availability workloads.
OVHcloud MKS має Free і Standard плани. Free може бути достатнім для PoC або раннього build. Але якщо ми говоримо про production із вимогами до resilience, тоді потрібно дивитися на MKS Standard.
Саме Standard дає сильнішу історію з control-plane resilience в
|
Компонент |
OVHcloud MKS |
|
Free control plane |
Так, Free plan, без contractual SLA |
|
Paid production option |
MKS Standard приблизно €0.09 / hour, близько €65 / month per cluster |
|
Production control-plane SLA |
99.9% SLA в |
|
Worker-node multi-AZ |
Так, залежно від плану та регіону |
|
CNI |
Free: Canal / managed default; Standard: Cilium / eBPF positioning |
|
Object storage |
S3-compatible, якщо pinned to EU regions |
|
Private networking |
vRack / private networking |
|
Основний плюс |
Сильніший control-plane HA story у Standard plan |
|
Основний компроміс |
Потрібне явне EU pinning для всіх region-dependent services |
OVHcloud має ширший compliance portfolio і добре виглядає для enterprise-сценаріїв. Але його sovereignty-модель вимагає більшої дисципліни. Якщо у провайдера є non-EU regions, то cluster, load balancer, object storage, registry, backups і DR copies треба явно прив’язувати до EU-регіонів і перевіряти це в IaC, під час deployment-ів, backup restore tests і DR simulation.
Інакше можна отримати ситуацію, коли Kubernetes працює в ЄС, але частина supporting services ні.
Free tier: чому PoC-ready не означає production-ready
Для старту обидва провайдери виглядають зручно. І Scaleway, і OVHcloud дають безкоштовний provider-operated control plane. Для PoC це нормальний варіант: можна швидко підняти кластер, перевірити deployment pipeline, ingress, storage, backup, observability і базові security controls.
Але важливо не переплутати PoC-ready із production-ready.
|
Dimension |
OVHcloud MKS Free |
Scaleway Kapsule mutualized free |
|
Control-plane price |
Free, pay only nodes, LB, storage |
Free, pay only nodes, LB, storage |
|
Control-plane SLA |
No contractual SLA; best-effort SLO target |
No contractual SLA |
|
Control-plane HA / AZ |
Components deployed HA within a single AZ |
Shared / mutualized control plane, HA within a single zone |
|
Worker-node multi-AZ |
Cross-AZ requires Standard |
Node pools can span multiple AZs even on free control plane |
|
etcd model / size |
Shared etcd, приблизно 400 MB budget |
Shared / mutualized etcd, приблизно 55 MB key-value limit |
|
Control-plane memory |
Managed / shared by OVHcloud |
Up to approximately 4 GB |
|
Max nodes |
Up to 100 |
Up to 150 |
|
Default CNI |
Canal; Cilium only on Standard |
Cilium default або Calico |
|
Good enough for PoC? |
Так |
Так |
Для PoC ці відмінності, швидше за все, не будуть критичними. Але рішення про production upgrade треба приймати окремо. Воно має залежати від SLA, RTO / RPO, audit log requirements, etcd limits, database failover design і очікуваного навантаження.
Data sovereignty: юридична і практична частина
Тут важливо не перебільшувати. Те, що провайдер європейський, не означає автоматично, що всі юридичні ризики зникають. Коректніше говорити так: європейський провайдер без direct US parent-company exposure може бути кращим fit для sovereignty-sensitive use case, але фінальну оцінку мають проходити legal, security і compliance команди.
Окрім юрисдикції, потрібно дивитися на subprocessors, support locations, contract terms, DPA, audit logs, emergency access process і фактичну конфігурацію сервісів.
|
Dimension |
Scaleway |
OVHcloud |
|
Jurisdiction |
France / EU |
France / EU |
|
Direct US parent-company exposure |
Немає direct US parent-company exposure; subject to legal review |
Немає direct US parent-company exposure; subject to legal review |
|
Operates only EU cloud regions |
Так |
Ні |
|
ISO / compliance positioning |
ISO 27001, HDS; exact scope треба підтвердити |
Broad ISO / compliance portfolio; exact MKS scope треба підтвердити |
|
SecNumCloud status for managed K8s |
У qualification process; не qualified станом на дату аналізу |
MKS / Public Cloud не qualified; dedicated/private offers можуть мати інший scope |
|
EU-only data path |
Структурно простіший, якщо всі сервіси в Scaleway EU regions |
Досяжний, але потребує EU region pinning і регулярної перевірки |
Практично це означає, що Scaleway зменшує ризик помилки через EU-only footprint. OVHcloud дає сильні enterprise-можливості, але вимагає більш строгого governance навколо region selection.
Орієнтовна вартість: дивитися треба не лише на control plane
Коли ми порівнюємо Kubernetes-провайдерів, легко сфокусуватися на ціні control plane. Але в реальному budget це тільки частина вартості.
Вартість формують worker nodes, storage, load balancers, traffic, backups, monitoring, log retention, managed databases або self-managed DB, security tooling і DR strategy.
Для benchmark-сценарію ми дивилися на невелике production-like середовище: три worker nodes, managed load balancer, block storage і S3-compatible object storage для backups.
|
Line item |
Scaleway Kapsule |
OVHcloud MKS Standard |
|
Managed control plane |
€0 mutualized; paid dedicated if SLA required |
~€65 / month equivalent for Standard; Free plan also available |
|
3 worker nodes |
~€120—180 |
~€120—180 |
|
Load balancer |
~€10—20, validate current tariff |
~€11, validate current tariff |
|
Block storage 200 GB |
~€18 |
~€18 |
|
Egress |
Metered after allowances |
Stated free for EU internet and OVH service traffic; confirm exceptions and terms |
|
Indicative total / month |
~€150—220 plus any dedicated control plane if selected |
~€215—275 for Standard |
Це не фінальна комерційна оцінка, а лише benchmark. У реальному проєкті точну вартість Kubernetes-as-a-Service складно порахувати без доступу до cloud console і розуміння поточного usage pattern.
На практиці навіть невеликі зміни в node size, storage retention, traffic або observability можуть суттєво змінити monthly bill. Тому procurement-рішення краще приймати після PoC, а не лише на основі list pricing.
Чому Kubernetes це не вся історія
Одна з найважливіших речей у таких міграціях: винести Kubernetes у європейський cloud недостатньо.
Можна мати production cluster у ЄС, але залишити CI runners за межами ЄС. Або використовувати global container registry. Або зберігати backup у неправильному region. Або не перевірити, куди потрапляють logs. У результаті формально Kubernetes буде в Європі, але data path залишиться неповним з точки зору sovereignty.
Тому ми дивилися на весь delivery та runtime ланцюжок.
|
Dependency |
Sovereignty issue |
Recommended control |
|
Git hosting |
Source code, artifacts або metadata можуть зберігатися поза ЄС залежно від сервісу та плану |
Використовувати EU data residency або self-host Git; документувати repository і artifact locations |
|
CI runners |
Hosted runners можуть виконувати builds поза ЄС |
Для sensitive workloads використовувати self-hosted EU runners |
|
Container registry |
Images і metadata можуть зберігатися в global registry |
Використовувати self-hosted Harbor або EU-pinned registry |
|
Certificate authority |
Public ACME CA може бути operated поза ЄС |
Перевірити acceptability або використовувати private / EU-approved CA |
|
Vulnerability feeds and base images |
Feeds, OS mirrors і base-image registries можуть бути global |
Mirror approved images і vulnerability databases, якщо потрібно |
|
Support access |
Provider support і subprocessors можуть отримувати доступ до metadata або systems |
Review DPA, subprocessors, support locations, audit logs і emergency-access workflow |
Саме тут часто ховаються неочевидні ризики. Cloud sovereignty це не тільки region у Kubernetes cluster. Це весь шлях даних.
Portable cloud-native stack
Щоб не замінити lock-in одного hyperscaler на lock-in іншого провайдера, ми рекомендували будувати платформу максимально portable.
Ідея була проста: Kubernetes має залишатися Kubernetes. Provider-specific частина повинна бути мінімальною: cluster, networking, DNS, load balancer, object storage. Усе інше краще тримати на open-source або provider-agnostic компонентах.
|
Platform component |
Scaleway |
OVHcloud |
Коментар |
|
Terraform / OpenTofu + Terragrunt |
scaleway/scaleway |
ovh/ovh |
Provider modules мають бути thin and swappable |
|
Managed K8s cluster |
Kapsule |
MKS |
Обидва є suitable Kubernetes substrates |
|
Private networking |
VPC / Private Network |
vRack / private networking |
Provider-specific module only |
|
DNS |
Domains / DNS |
Managed DNS |
Можна використовувати external-dns із provider-specific backends |
|
Object storage |
S3-compatible |
S3-compatible |
Для Velero і CloudNativePG backups |
|
Container registry |
Self-hosted Harbor |
Self-hosted Harbor або OVH Managed Private Registry |
Self-hosted registry краще для portability |
|
GitOps |
ArgoCD in cluster |
ArgoCD in cluster |
Provider-agnostic CD |
|
Ingress / TLS |
ingress-nginx + cert-manager |
ingress-nginx + cert-manager |
Працює з managed LB на обох платформах |
|
Secrets |
External Secrets Operator / Sealed Secrets |
External Secrets Operator / Sealed Secrets |
Важливо визначити політику secrets lifecycle |
|
Policy enforcement |
Kyverno |
Kyverno |
In-cluster policy layer |
|
Backups |
Velero + S3-compatible storage |
Velero + S3-compatible storage |
Backup location має бути EU-pinned |
|
PostgreSQL |
CloudNativePG |
CloudNativePG |
Control-plane availability важлива для automated failover |
|
Observability |
Prometheus / Grafana / Loki |
Prometheus / Grafana / Loki |
Long-term retention у EU object storage |
Такий підхід залишає можливість у майбутньому перейти між європейськими провайдерами без повного переписування delivery model.
Database failover: деталь, яку не можна ігнорувати
Окремо хочу зупинитися на PostgreSQL у Kubernetes.
Якщо використовувати CloudNativePG, він взаємодіє з Kubernetes API server для автоматизованих операцій, включно з failover. Це не означає, що SLA control plane автоматично гарантує конкретний database RTO. Але availability control plane стає важливим фактором.
Саме тут OVHcloud MKS Standard виглядає сильніше, якщо automated failover під час AZ-level incident є контрактно важливою вимогою. Його Standard control plane має cross-AZ resilience у
Scaleway теж може бути прийнятним варіантом, але тоді потрібно уважно продумати replication strategy і чесно зафіксувати ризик: рідкісна проблема з control plane може затримати автоматизований failover до моменту, коли Kubernetes API знову стане доступним.
Це не означає, що Scaleway поганий, а OVHcloud хороший. Це означає, що вибір залежить від того, що саме ви оптимізуєте: sovereignty simplicity чи control-plane HA.
Backup і DR: backup без restore test це лише надія
Для security-sensitive workload недостатньо просто налаштувати backups. Треба регулярно перевіряти, що restore справді працює.
Ми рекомендували daily automated restore tests: відновлення в isolated namespace або ephemeral cluster з автоматичною перевіркою health checks.
Для Kubernetes-рівня можна використовувати Velero. Для PostgreSQL native backup / PITR механізми CloudNativePG. Але головне питання залишається не в інструментах, а в data residency: де фізично лежить DR copy.
У Scaleway cross-region DR простіший з точки зору операційного контролю, бо footprint є EU-only. В OVHcloud це теж можливо, але target region треба явно обмежити EU-регіоном і перевіряти це в backup, restore та DR simulation.
Як ми б формулювали decision logic
У підсумку вибір між Scaleway і OVHcloud не виглядає як «один правильний, інший неправильний». Це два різні профілі ризику.
|
Якщо ваш головний пріоритет |
Більш логічний кандидат |
|
Простота EU sovereignty |
Scaleway Kapsule |
|
Мінімізація ризику випадково використати non-EU region |
Scaleway Kapsule |
|
Cost-conscious managed Kubernetes |
Scaleway Kapsule або OVHcloud MKS Free для PoC |
|
Production-grade control-plane resilience |
OVHcloud MKS Standard |
|
|
OVHcloud MKS Standard |
|
Traffic-heavy workload, де egress cost суттєвий |
OVHcloud може бути сильним кандидатом, але треба перевіряти terms |
|
Максимальна portability |
Обидва варіанти, якщо будувати stack на OpenTofu / Terraform, ArgoCD, Harbor, Velero, CloudNativePG і in-cluster observability |
Для нашого кейсу Scaleway виглядав як найкращий overall fit, якщо ваги розставити так: sovereignty-first, cost-conscious, portability-driven. OVHcloud залишався сильним альтернативним варіантом, якщо на перше місце поставити production HA control plane.
Висновок
Європейські cloud-провайдери вже можуть бути реалістичною альтернативою AWS, Google Cloud і Azure для Kubernetes workloads. Але вибір потрібно робити не за принципом «де дешевше» або «де більше сервісів», а відштовхуючись від конкретної моделі ризику.
Якщо компанія хоче максимально просту EU-only sovereignty story, Scaleway Kapsule виглядає дуже логічно. Його головна перевага не тільки Kubernetes, а й те, що platform footprint зменшує ризик випадково вивести частину data path за межі ЄС.
Якщо компанії важливі production-grade control-plane resilience,
Але головний урок із цього кейсу не в тому, що один провайдер «кращий» за іншого. Головний урок у тому, що cloud sovereignty не закінчується вибором Kubernetes cluster.
Потрібно дивитися на весь шлях даних: Git, CI, container registry, load balancers, object storage, backups, logs, secrets, support access і disaster recovery. Лише тоді міграція з hyperscaler у європейський cloud буде не косметичною зміною provider logo, а справді архітектурним рішенням про data residency, operational maturity і довгострокову portability.
4 коментарі
Додати коментар Підписатись на коментаріВідписатись від коментарівДякую
А що, для клієнта
Production control-plane SLA 99.5% uptime
це норм?
OVH ? 😅

Дякую що поділилися вашим досвідом.
А було спілкування з Google Cloud / AWS / Azure чи можуть вони задовольнити всі ваші побажання ?