Dağıtık Cache
Dağıtık Cache, Apinizer'ın throttling, quota, OAuth2 token'ları ve yük dengeleme bilgileri gibi paylaşılan verileri saklayan cache altyapısıdır. Cache Server'ları artık Gateway pod'larından ayrı Kubernetes namespace'lerinde çalışabilir, daha esnek bir altyapı yönetimi sağlar.
Cache Server Genel Bakış
Cache Server (apinizer-cache), Apinizer'da gerek duyulan cache değerlerinin tutulduğu ortamdır. Dağıtık önbellekleme için Hazelcast teknolojisini kullanır ve Apinizer tarafından yönetilebilir veya mevcut bir uzak Cache Server dağıtımına bağlanabilir.
Namespace Bağımsızlığı:
Cache Server pod'ları artık Gateway pod'larından farklı bir Kubernetes namespace'inde çalışabilir. Bu, daha esnek bir altyapı yönetimi sağlar ve Gateway ve Cache iş yüklerini ayırmanıza olanak tanır. Gateway pod'ları diğer namespace'lerdeki Cache Server'larına Kubernetes service discovery kullanarak erişebilir (örn: http://cache-http-service.apinizer-cache.svc.cluster.local:8090).
Cache Server Yapılandırması
Deployment Tipi Seçimi
Cache Server oluştururken, deployment tipini seçmeniz gerekir:
Apinizer Tarafından Yönetilen
Apinizer, Kubernetes API kullanarak cache dağıtımını otomatik olarak oluşturur ve yönetir. Apinizer, namespace, deployment, service ve tüm gerekli Kubernetes kaynaklarını otomatik olarak oluşturacaktır.
Bu seçeneği şu durumlarda kullanın:
- Apinizer'ın tüm cache yaşam döngüsünü yönetmesini istiyorsanız
- Otomatik kaynak sağlama ve yönetime ihtiyacınız varsa
- Basitleştirilmiş Cache Server yönetimi istiyorsanız
Uzak Cache Server
Manuel olarak YAML ile dağıtılmış mevcut bir Cache Server pod'una bağlanın. Apinizer yalnızca bağlantı detaylarını kaydedecek, dağıtımı yönetmeyecektir.
Bu seçeneği şu durumlarda kullanın:
- Apinizer dışında yönetilen mevcut bir Cache Server dağıtımınız varsa
- Apinizer tarafından desteklenmeyen özel Cache Server yapılandırmalarına ihtiyacınız varsa
- Başka bir sistem tarafından dağıtılmış bir Cache Server kullanmak istiyorsanız
Uzak Cache Server Gereksinimleri:
Cache Server pod'unuzun çalıştığından ve erişilebilir olduğundan emin olun. Apinizer yalnızca bağlantı detaylarını kaydedecek, dağıtımı yönetmeyecektir. Uzak Cache Server dağıtımının bakımından siz sorumlusunuz.
Namespace Yapılandırması
Önemli: Namespace yapılandırması Cache Server oluşturulduktan sonra değiştirilemez. Oluşturma sırasında doğru namespace'i seçtiğinizden emin olun.
Yeni Namespace Oluştur
Yeni bir namespace oluştururken, özel bir namespace adı belirtebilirsiniz. Namespace, RFC 1123 DNS etiket standartlarına uygun olmalıdır:
- 3 ile 63 karakter arasında olmalıdır
- Sadece küçük harf alfanumerik karakterler (a-z, 0-9) veya tire (-) kullanılabilir
- Küçük harf alfanumerik bir karakterle başlamalı ve bitmelidir
- Örnekler:
my-namespace,prod-env,123-abc
Mevcut Namespace Kullan
Cache Server'ın dağıtılacağı mevcut bir Kubernetes namespace'i seçebilirsiniz. Bu şu durumlarda kullanışlıdır:
- Mevcut bir namespace'i yeniden kullanmak istiyorsanız
- Belirli namespace'leri gerektiren namespace yönetim politikalarınız varsa
- Başka bir sistem tarafından yönetilen bir namespace'te Cache Server'ları dağıtmak istiyorsanız
Namespace Bağımsızlığı:
Cache Server'ları Gateway pod'larından farklı namespace'lerde çalışabilir. Bu şunları yapmanıza olanak tanır:
- Daha iyi kaynak yönetimi için Gateway ve Cache iş yüklerini ayırma
- Gateway ve Cache namespace'lerine farklı güvenlik politikaları uygulama
- Gateway ve Cache'i bağımsız olarak ölçeklendirme
- Cache altyapısı için özel namespace'ler kullanma
Gateway pod'ları diğer namespace'lerdeki Cache Server'larına Kubernetes service discovery formatı kullanarak erişebilir: http://service-name.namespace.svc.cluster.local:port
Cache Management API Yapılandırması
Cache Management API URL'leri, API Manager ve Gateway'in Cache Server uygulaması ile nasıl iletişim kuracağını tanımlar. Yüksek kullanılabilirlik senaryoları için birden fazla API URL'si yapılandırabilirsiniz.
Tek API URL Yapılandırması
Temel kurulumlar için, tek bir Cache Management API URL'si yapılandırın:
Format: http://cache-http-service.namespace.svc.cluster.local:8090
Örnek:
http://cache-http-service.apinizer-cache.svc.cluster.local:8090http://cache-http-service.prod.svc.cluster.local:8090
Çoklu API URL Yapılandırması
Yüksek kullanılabilirlik için birden fazla Cache Management API URL'si yapılandırabilirsiniz. Her URL şunlara sahip olabilir:
- Ad: API URL için açıklayıcı bir ad
- Health Check Adresi: Health check'ler için kullanılan adres
Kullanım senaryoları:
- Birden fazla namespace arasında yüksek kullanılabilirlik dağıtımları
- Birden fazla cache cluster arasında yük dengeleme
- Felaket kurtarma senaryoları
Cross-Namespace İletişim:
Gateway pod'ları ve Cache Server pod'ları farklı namespace'lerde olduğunda, Kubernetes service discovery formatını kullanın:
http://service-name.namespace.svc.cluster.local:port
Bu, Gateway pod'larının namespace konumlarından bağımsız olarak Cache Server'larına erişmesine olanak tanır.