Kubernetes'e dağıtım
Durumsuz Orbtrace uygulamasını OCI Helm chart'ı ile Kubernetes'te çalıştırın ve ihtiyaç duyduğu veri depolarına bağlayın. Genel bakış, önerilen mimari ve adım adım alt-sayfalar.
Tek bir helm install, durumsuz Orbtrace sunucusunu (replika + HPA) ve opsiyonel yedek CronJob'larını çalıştırır ve ihtiyaç duyduğu üç veri deposundan ikisini varsayılan olarak — Postgres ve Valkey — küme içinde gömülü kurar (ikisi de bir VM ya da yönetilen servise yönlendirilebilir). Telemetri deposu (Doris) ile Collector, her zaman sizin çalıştırdığınız iki parçadır; chart yalnızca onlara bağlanır.
Helm chart'ının kurdukları
Bunları siz çalıştırırsınız — chart yalnızca bağlanır
Veri akışı
Uygulamalarınız OTLP'yi Collector'a gönderir, o da Doris'e yazar. Orbtrace telemetriyi Doris'ten geri okur ve kendi ayarları ile önbelleğini Postgres + Valkey'de tutar — varsayılan olarak gömülü, ya da harici bir VM/yönetilen örneğe yönlendirilir.
Üç veri deposunun her biri küme içinde gömülü çalıştırılabilir ya da küme dışında sizin çalıştırdığınız bir şeye yönlendirilebilir. Kutudan çıktığı haliyle neyi alacağınız ve neyi sizin sağladığınız tam olarak şöyle:
| Bileşen | Ne işe yarar | Chart varsayılanı | Ne zaman siz sağlarsınız |
|---|---|---|---|
| Orbtrace sunucusu | Uygulama | Her zaman kurulur | asla |
| Postgres + pgvector | Ayarlar, kullanıcılar, RCA vektörleri | Gömülü, küme içi (postgres.mode: bundled) | postgres.mode: external yaptığınızda |
| Valkey (ya da Redis) | Önbellek | Gömülü, küme içi (valkey.mode: bundled) | valkey.mode: external yaptığınızda |
| Doris | Telemetri deposu (log / trace / metrik) | Kurulmaz (doris.mode: external) | her zaman — doris.host ayarlayın |
| Collector | Telemetri toplama | Hiçbir zaman kurulmaz | her zaman — ayrı çalıştırın |
Orbtrace'in çalışmak için ihtiyaç duydukları
Orbtrace'in dört çalışma-zamanı bağımlılığı vardır. Chart ilk ikisini gömülü kurar; son ikisini her zaman siz sağlarsınız:
- Postgres 18 + pgvector — ayarlar, kullanıcılar ve RCA vektör deposu. ("pgvector", yalnızca
vectoruzantısı etkinleştirilmiş Postgres'tir — kurulacak egzotik bir şey yok.) - Valkey (ya da herhangi bir Redis-uyumlu sunucu) — önbellek. Orbtrace ona Redis protokolüyle konuşur, dolayısıyla Valkey yerine düz Redis de çalışır.
- Apache Doris — log, trace ve metrikler için telemetri deposu. Chart'a göre her zaman haricidir.
- Bir OpenTelemetry Collector — toplama. Orbtrace OTLP'yi kendisi almaz; bir Collector telemetrinizi Doris'e yazar. Bkz. Entegrasyon desenleri.
Küme için ayrıca Helm 3.8+, hızlı SSD destekli bir StorageClass ve — bir Doris BE'nin çalıştığı her node'da — kernel ayarları (vm.max_map_count ≥ 2000000, swap kapalı) gerekir. Tam Doris gereksinimleri Doris kurulumu sayfasındadır.
Önerdiğimiz mimari
Üretim için, durumlu veritabanlarını Kubernetes dışında — DBA'larınızın yönettiği VM'lerde ya da yönetilen servislerde — çalıştırmanızı ve Helm'in yalnızca durumsuz uygulamayı kurmasını öneririz:
Kubernetes'te — Helm kurar
Küme dışında — siz yönetirsiniz
Uygulamalarınız OTLP'yi Collector'a gönderir, o da Doris'e yazar. Kümedeki durumsuz Orbtrace uygulaması telemetriyi Doris'ten geri okur ve ayarları + önbelleğini Postgres + Valkey'de tutar. Yalnızca uygulama (ve geçici Valkey önbelleği) Kubernetes içinde yaşar; kaybedemeyeceğiniz veriyi tutan depolar dışında kalır.
| Bileşen | Üretim için önerilen | Ayrıca desteklenen |
|---|---|---|
| Orbtrace sunucusu | Kubernetes'te, bu Helm chart'ı ile | — |
| Apache Doris | VM / yönetilen ya da küme içi doris-operator | gömülü StatefulSet (yalnızca dev/eval) |
| Postgres + pgvector | VM ya da yönetilen servis | küme içi gömülü (postgres.mode: bundled) |
| Valkey (ya da Redis) | küme içi gömülü — yalnızca geçici bir önbellek | VM / yönetilen |
| Collector | kümenin yanında bir container | mevcut OTel hattınız |
Veritabanlarını neden küme dışında tutmalı?
Postgres ve Doris, yeniden oluşturamayacağınız veriyi tutar — ayarlarınızı ve tüm telemetrinizi. Kubernetes, serbestçe silip yeniden kurabileceğiniz durumsuz uygulamalar için tasarlanmıştır; veritabanları ise tam tersidir. Onları küme dışında tutmak bu veriyi korur ve işletmeyi kolaylaştırır:
- Yanlış bir
helm uninstallverinizi silemez. Bir veritabanı küme içinde çalışırken, diski (bir PersistentVolumeClaim) Helm release'ine aittir — release'i ya da namespace'i silin, volume ve içindeki tüm telemetriniz de onunla birlikte silinebilir. VM'de ya da yönetilen serviste çalışan bir veritabanı hiçbir Helm komutunun erişemeyeceği yerdedir. - Day-2 veritabanı işi ait olduğu yerde kalır. Yedekler, sürüm yükseltmeleri, failover ve tuning — DBA'larınızın (ya da RDS gibi yönetilen bir servisin) zaten yaptığı rutin veritabanı işleridir. Küme içinde gömülüyken bu iş Kubernetes ekibinize düşer ve her veritabanı yeniden başlatması ya da yükseltmesi artık aynı node'lar için uygulamayla yarışır.
- OpenShift'te güvenlik-politikası sürtüşmesi olmaz. OpenShift'in varsayılan
restricted-v2politikası, veritabanı imajlarının beklediği çoğu şeyi engeller (sabit kullanıcı ID'leri, volume sahipliği), bu yüzden gömülü bir veritabanının başlaması için bile ek geçici çözümler gerekir. Harici bir veritabanı bunu tümüyle aşar.
Valkey istisnadır. Yalnızca önbellek tutar — otomatik yeniden oluşturulan, kaybı sorun olmayan veri — dolayısıyla korunacak bir şey yoktur. Onu küme içinde gömülü bırakmak üretimde bile uygundur.
Uygulamayı harici çalışan depolara bağlamak için bunları my-values.yaml'ınıza koyun — chart'ın kendi varsayılanlarının üstüne katmanlanan, yalnızca değiştirdiğiniz anahtarları içeren küçük bir overrides dosyası (bkz. Helm ile kurun). Chart'ın values.yaml'ı otomatik tabandır; siz yalnızca değiştirdiklerinizi listelersiniz. Her <…>'yi kendi değerinizle değiştirin; gerisi olduğu gibi bırakabileceğiniz varsayılanlardır:
postgres:
mode: external
host: <postgres-host-unuz> # VM / yönetilen Postgres+pgvector, kümeden erişilebilir
port: 5432 # varsayılan — yalnızca sizinki farklıysa değiştirin
database: orbtrace # oluşturduğunuz DB — herhangi bir ad olur, bu yalnızca varsayılan
username: orbtrace # oluşturduğunuz kullanıcı — o da sizin seçiminiz
password: <postgres-parolanız> # ya da düz parola yerine existingSecret kullanın
# Valkey varsayılan olarak gömülü kalır (önerilir). Onu da dışarı almak için yorumu kaldırın:
# valkey:
# mode: external
# host: <valkey-ya-da-redis-host-unuz>
# port: 6379
doris:
mode: external # varsayılan — chart Doris'i hiçbir zaman çalıştırmaz
host: <doris-fe-host-unuz> # VM / yönetilen / operatör Doris'inizin FE adresi
queryPort: 9030 # varsayılan Doris MySQL query portu
httpPort: 8030 # varsayılan Doris HTTP (Stream Load) portuPoC mi yapıyorsunuz?
Docker'lı bir VM ya da dizüstünüz varsa, en basit deneme Docker Compose: tek bir docker compose up -d, uygulamayla birlikte Doris, Postgres ve Valkey'i ayağa kaldırır — operatör yok, harici veri deposu yok.
Ortamınız Kubernetes ise ve orada değerlendirmek istiyorsanız, Compose bir seçenek değildir — yine de Doris'e ihtiyacınız var. En hafif yol, minimal küme-içi bir Doris ile Helm'dir: doris-operator ile küçük bir 1-FE / 1-BE DorisCluster ya da doris.host'u zaten çalıştırdığınız herhangi bir Doris'e yönlendirmek. Bkz. Doris kurulumu. (Gömülü Postgres ve Valkey bir deneme için ekstra bir şey gerektirmez.)
Kubernetes'e dağıtım adımları
Bunları sırayla izleyin:
- Veri depolarını sağlayın — Postgres + pgvector ve Valkey'i getirin (gömülü, VM/yönetilen ya da Docker).
- Doris kurulumu — chart'ın hiçbir zaman kurmadığı telemetri deposu (operatör, VM/yönetilen ya da değerlendirme için Compose).
- Helm ile kurun — kimlik doğrulayın, değerleri düzenleyin,
helm installve doğrulayın. - OpenShift / OKD — OpenShift'teyseniz, SCC overlay'i ve node tuning.
- Portlar ve erişim — Orbtrace'e nasıl erişilir ve herhangi bir port nasıl değiştirilir.
Orbtrace ayağa kalkınca telemetriyi bağlayın — Collector, kendiniz çalıştırdığınız iki parçanın sonuncusudur. Yeni bir OTel Collector kurun ya da Orbtrace'in dorisexporter'ını mevcut OTel pipeline'ınıza ekleyin (yeniden platformlamaya gerek yok). Her iki yol da, referans Collector yapılandırmasıyla birlikte, Entegrasyon desenleri sayfasındadır.
Yönetilen bir bulut kümesinde mi (EKS / AKS / GKE) çalışıyorsunuz? Sağlayıcıya özgü seçimler için Buluta dağıtım'a bakın.