İçeriğe geç
Proxus 2.0.0 Proxus 2.0: Proxus tarihinin en büyük sürümü Sürüm notları

Nasıl yapılır · Sistem yöneticileri için

Kubernetes

Proxus'u hazır manifestlerle Kubernetes'e kurun. Yerel, yüksek erişilebilirlikli ve veri çeşitleri, HA'nın kapsamı ve uygulama adımları.

Bu kılavuzu tamamladığınızda Proxus, Kubernetes kümenizde çalışır. Test için tek kopya ya da yüksek erişilebilirlikli (HA) bir kurulum seçebilirsiniz. Proxus'u çalıştırmanın standart yolu yine Docker Compose'dur. Tesis iş yüklerini Kubernetes üzerinde çalıştırıyorsa bu kılavuzu kullanın.

Başlamadan önce

  • Bir Kubernetes kümesi ve bu kümeye erişebilen kubectl gerekir.
  • Proxus 2.0.0 sürümündeki Deployment/kubernetes klasörünü hazır bulundurun.
  • HA için en az üç düğüm, ReadWriteMany birim sunan bir depolama sınıfı, NGINX ingress denetleyicisi ve aşağıda adı geçen iki veritabanı operatörü gerekir.

Çeşitler

KlasörKurduğu bileşenlerNamespace
local/Docker Compose yığını gibi her hizmetten bir kopya. HA değildir; test ve geliştirme için kullanılır.proxus
ha/HA uygulaması: iki merkez sunucu kopyası, üç düğümlü NATS kümesi, her Edge Gateway için bir pod, Secret'lar, kesinti bütçeleri (PodDisruptionBudget) ve bir ingress.proxus-ha
ha-data/ha/ için HA veritabanları: üç örnekli PostgreSQL kümesi (CloudNativePG) ve üç düğümlü Keeper ile çalışan iki kopyalı ClickHouse kümesi (Altinity operatörü).proxus-data, clickhouse
nats-trust/Diğer klasörlerin ortak kullandığı bölüm. NATS kimlik bilgilerini ve TLS sertifikasını bir kez oluşturur ve bir Secret olarak yayımlar.(diğerlerine dahil)

Yüksek erişilebilirliğin Proxus için anlamı

Bileşenha/ içindeki kurulumBir pod ya da düğüm çökerse
Merkez sunucu (proxus-ui)2 kopya, aktif-aktif, yapışkan oturumlu (sticky session) bir ingress arkasındaDiğer kopya hizmet vermeye devam eder. Çöken kopyadaki kullanıcılar diğer kopyaya geçer; yeniden oturum açmaları gerekebilir.
NATS sunucusu (hub-server)3 düğümlü küme. Her akış üç düğümde de tutulur (NATS__Replicas=3). Sunucular birbirine pod adıyla, TLS üzerinden bağlanır (6222 portu).Bir pod çökse de mesaj kaybolmaz.
Edge Gateway (proxus-server-gateway-1)Yalnızca 1 pod, Recreate stratejisiKubernetes podu yeniden başlatır. Pod ayağa kalkana kadar cihazlar okunmaz.
PostgreSQLCloudNativePG'nin işlettiği 3 örnekOperatör kopyalardan birini birincil sunucu yapar.
ClickHouse3 düğümlü Keeper ile 2 kopyaSorgulara diğer kopya yanıt verir.

Bir Edge Gateway hiçbir zaman iki kopya halinde çalışmaz. Aynı Edge Gateway kimliğine sahip iki pod, aynı cihazları iki kez okur. Bu yüzden Edge Gateway deployment'larında replicas değerini 1'in üstüne çıkarmayın. Edge Gateway için yüksek erişilebilirlik, ikinci bir kopya değil, hızlı yeniden başlatma anlamına gelir.

local/ ile deneyin

kubectl apply -k Deployment/kubernetes/local
kubectl -n proxus get pods,svc,pvc
kubectl -n proxus port-forward svc/proxus-ui 8080:8080

Ardından http://localhost:8080 adresini açın. İlk başlatmada hub-server ve proxus-server, ContainerCreating durumunda bekler. Merkez sunucu, NATS kimlik bilgilerini içeren proxus-nats-trust Secret'ını oluşturunca bu podlar başlar. Bu bekleme normaldir. Merkez sunucu HTTPS'i 8443 portundan da sunar.

Yerel çeşitte veritabanı parolaları manifestlerin içinde yazılıdır ve her bileşenin tek kopyası vardır. Bu çeşidi üretimde kullanmayın. Birimleriyle birlikte kaldırmak için şu komutu çalıştırın:

kubectl delete -k Deployment/kubernetes/local

HA çeşidini kurun

  1. İki veritabanı operatörünü (CloudNativePG ve Altinity ClickHouse operatörü) kendi belgelerindeki adımlarla kurun. Test edilen sürümler Deployment/kubernetes klasöründeki README dosyasında yazılıdır.
  2. Veritabanı parolalarını belirleyin. ha/secrets.yaml dosyasında postgres-credentials Secret'ının user, password ve database değerlerini değiştirin. Hazır dosyada üçü de proxus'tur. ha-data/ içindeki PostgreSQL kümesine de aynı değerleri yazın ve oradaki ClickHouse kimlik bilgilerini de değiştirin.
  3. Depolamayı kontrol edin. Merkez sunucu kopyaları farklı düğümlerde çalışacaksa ha/storage.yaml dosyasındaki ortak birimler (proxus-ui-config-rwx, proxus-ui-modules-rwx, nats-hub-config), bunu destekleyen bir depolama sınıfında ReadWriteMany olarak tanımlanmalıdır.
  4. Sunucu adını girin. ha/ingress-nginx-sticky.yaml dosyasında proxus.local yerine kendi DNS adınızı yazın ve sertifika Secret'ınızı içeren bir tls bölümü ekleyin. Çerez benzeşimi (cookie affinity) ek açıklamalarını silmeyin. Bu ek açıklamalar her tarayıcıyı aynı merkez sunucu kopyasına yönlendirir.
  5. ha-data/ yerine bulut hizmeti olarak alınan ya da mevcut veritabanlarını kullanıyorsanız ha/external-data-services.yaml dosyasındaki iki ExternalName hizmetini bu veritabanlarına yönlendirin.

Ardından önce veri katmanını, sonra uygulamayı uygulayın:

kubectl apply -k Deployment/kubernetes/ha-data
kubectl apply -k Deployment/kubernetes/ha

Tüm bileşenlerin çalıştığını kontrol edin:

kubectl -n proxus-ha get pods,pdb,svc

İki proxus-ui podu, üç hub-server podu ve bir proxus-server-gateway-1 podu Running durumunda olmalıdır.

Merkez sunucu, NATS kimlik bilgilerini ve TLS sertifikasını (proxus-nats-trust Secret'ı) ilk başlatmada oluşturur. NATS sunucusuna yapılan her bağlantı TLS kullanır ve sunucu sertifikası platform CA'sına göre doğrulanır. Merkez sunucu, sertifikanın süresi dolmadan yenisini üretir. Bu Secret'ı elle oluşturmayın, düzenlemeyin.

Sertifika deposu anahtarı, merkez sunucunun ortak yapılandırma diskinde (proxus-ui-config-rwx) keys/STORE/certificate-store.key dosyasında durur. Bu diski yedeklerken anahtar da yedeklenir. Dilerseniz anahtarı kendi Secret'ınızdan PROXUS_CERTIFICATE_STORE_KEY ortam değişkeniyle de verebilirsiniz (32 baytlık bir base64 değeri). Ayrıntılar için Sertifikalar sayfasına bakın.

Küme dışındaki Edge Gateway'leri bağlayın

Uzak Edge Gateway'ler NATS sunucusuna 7422 portundan bağlanır. Hazır manifestlerde hub-server hizmetine yalnızca küme içinden ulaşılır. 7422 portunu Edge Gateway'lerin bulunduğu ağlara açın, örneğin bir LoadBalancer hizmetiyle. Edge Gateway kurarken bu adresi kullanın. NATS sunucusunun sertifikası, kurulum komutunun üretildiği her adresi kapsar. Edge Gateway'ler sunucuya başka bir adla ulaşıyorsa bu adı [NATS] TlsHostNames ya da [Service] PublicHostNames ayarına ekleyin.

Mevcut manifestlerin sınırları

  • ha-data/ içindeki ClickHouse kimlik bilgileri bir Secret'ta değil, doğrudan manifestte yazılıdır.
  • Manifestlerde NetworkPolicy yoktur. Kümeniz varsayılan olarak tüm trafiği engelliyorsa (default-deny) kendi NetworkPolicy'nizi ekleyin.
  • Kubernetes'te merkez sunucuya Docker soketi bağlanmaz. Bu yüzden Yapılandırma düzenleyici ekranındaki Yeniden başlat düğmesi bir şey yapmaz. Yeniden başlatmak için kubectl -n proxus-ha rollout restart deployment/proxus-ui komutunu kullanın.
  • 2.0.0'a yükselttikten sonra, merkez sunucu başlayınca hub-server podlarını bir kez yeniden başlatın (kubectl -n proxus-ha rollout restart statefulset/hub-server). Ardından her uzak Edge Gateway'in kurulum komutunu yeniden çalıştırın. Ayrıntılar için Yükseltme sayfasına bakın.
  • Merkez sunucunun ve her Edge Gateway'in yapılandırma birimlerini yedekleyin. Ayrıntılar için Yedekleme ve geri yükleme sayfasına bakın.

Sonraki adımlar

  • Yükseltme: kümedeki imajları yeni sürüme geçirme.
  • İzleme: çalışma durumu denetimleri, metrikler ve günlükler.
  • Güvenlik: portları, parolaları ve HTTPS'i üretime hazırlama.

Bu sayfa işinize yaradı mı?

Proxus'u değerlendiriyor musunuz? 30 dakikalık teknik görüşmede kendi makinelerinizle görün.