Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: Geliştirici | Premium
Kendi sunucunuzda barındırılan ağ geçidini üretim ortamında çalıştırmak için göz önünde bulundurulması gereken çeşitli yönler vardır. Örneğin, yüksek oranda kullanılabilir bir şekilde dağıtılmalıdır, geçici bağlantı kesilmelerini ve daha fazlasını işlemek için yapılandırma yedeklerini kullanın.
Bu makale, üretim iş yükleri için Kubernetes üzerinde kendi ağ geçidini sorunsuz ve güvenilir bir şekilde çalıştırmak için nasıl yönergeler sağlayacağınızı açıklar.
Erişim belirteci
Geçerli bir erişim belirteci olmadan, kendi kendine barındırılan bir ağ geçidi, ilişkili API Yönetim hizmetinin uç noktasından yapılandırma verilerine erişemez ve indiremez. Erişim belirteci en fazla 30 gün geçerli olabilir. Yeniden oluşturulmalıdır ve küme, süresi dolmadan önce el ile veya otomasyon aracılığıyla yeni bir belirteçle yapılandırılmalıdır.
Belirteç yenilemeyi otomatikleştirdiğinizde, yeni bir belirteç oluşturmak için bu yönetim API'sini kullanın. Azure'da Kubernetes gizli anahtarlarını yönetme hakkında bilgi için Kubernetes web sitesine bakın.
İpucu
Ayrıca kendi kendine barındırılan ağ geçidini Kubernetes'e dağıtabilir ve API Management örneğinde kimlik doğrulamasını Microsoft Entra ID kullanarak etkinleştirebilirsiniz.
Otomatik ölçeklendirme
Yerel barındırılan ağ geçidi için asgari replikalar sayısı konusunda rehberlik sağlarken, trafik taleplerinizi daha proaktif bir yaklaşımla karşılamak için yerel barındırılan ağ geçidi için otomatik ölçeklendirmeyi kullanmanızı öneririz.
Kendi kendine barındırılan ağ geçidini yatay olarak otomatik ölçeklendirmenin iki yolu vardır.
- Kaynak kullanımına (CPU ve bellek) göre otomatik ölçeklendirme
- Saniyedeki istek sayısına göre otomatik ölçeklendirme
Bu, yerel Kubernetes işlevselliği aracılığıyla veya Kubernetes Olay Odaklı Otomatik Ölçeklendirme (KEDA) kullanılarak mümkündür. KEDA, uygulama otomatik ölçeklendirmesini basitleştirmeye çalışan bir CNCF Kuluçka projesidir.
Not
KEDA, Azure desteği tarafından desteklenmeyen ve müşteriler tarafından çalıştırılması gereken açık kaynaklı bir teknolojidir.
Kaynak tabanlı otomatik ölçeklendirme
Kubernetes, kaynak kullanımına göre Yatay Pod Otomatik Ölçeklendiricisi kullanarak şirket içinde barındırılan ağ geçidini otomatik olarak ölçeklendirmenizi sağlar. CPU ve bellek eşiklerini ve ölçeği genişletmek veya daraltmak için kopya sayısını tanımlamanızı sağlar.
Alternatif olarak Kubernetes Event-driven Autoscaling (KEDA) kullanarak iş yüklerini CPU ve bellek gibi çeşitli ölçekleyicilere göre ölçeklendirin.
İpucu
Diğer iş yüklerini ölçeklendirmek için ZATEN KEDA kullanıyorsanız, KEDA'yı birleşik bir uygulama otomatik ölçeklendiricisi olarak kullanmanızı öneririz. Böyle bir durum söz konusu değilse, Yatay Pod Otomatik Ölçeklendiricisi aracılığıyla yerel Kubernetes işlevselliğine güvenmenizi kesinlikle öneririz.
Trafik tabanlı otomatik ölçeklendirme
Kubernetes, trafik tabanlı otomatik ölçeklendirme için kullanıma hazır bir mekanizma sağlamaz.
Kubernetes Olay Odaklı Otomatik Ölçeklendirme (KEDA), trafik tabanlı otomatik ölçeklendirmeye yardımcı olabilecek birkaç yol sağlar:
- Prometheus veya Azure İzleyici'de kullanılabiliyorsa, kullanıma hazır bir ölçeklendirici ile Kubernetes girişindeki ölçümlere göre ölçeklendirme yapabilirsiniz.
- Beta sürümünde kullanılabilen HTTP eklentisini yükleyebilir ve saniyedeki istek sayısına göre ölçeklendirin.
Yapılandırma yedeklemesi
Kendi kendine barındırılan ağ geçidi kapsayıcısı için yerel bir depolama birimi yapılandırın; böylece en son indirilen yapılandırmanın yedek kopyasını kalıcı hale getirebilirsiniz. Bağlantı kesilirse, depolama birimi yeniden başlatıldıktan sonra yedek kopyayı kullanabilir. Birim bağlama yolu /apim/config olmalıdır ve grup kimliği 1001 ait olmalıdır. GitHub'da bir örne bakın.
Kubernetes'te depolama hakkında bilgi edinmek için Kubernetes web sitesine bakın.
Kubernetes web sitesindeki securityContext.fsGroup bakarak bağlı bir yolun sahipliğini değiştirebilirsiniz.
Not
Geçici bir Azure bağlantı kesintisi varlığında şirket içinde barındırılan ağ geçidi davranışı hakkında bilgi edinmek için bkz . Şirket içinde barındırılan ağ geçidine genel bakış.
Konteyner imaj etiketi
Azure portalında sağlanan YAML dosyası en son etiketi kullanır. Bu etiket her zaman kendiliğinden barındırılan ağ geçidi kapsayıcı imajının en son sürümüne başvurur.
Daha yeni bir sürüme yanlışlıkla yükseltmeyi önlemek için üretimde belirli bir sürüm etiketi kullanmayı göz önünde bulundurun.
Kullanılabilir etiketlerin tam listesini indirebilirsiniz.
İpucu
Helm ile yükleme yaparken görüntü etiketleme sizin için iyileştirilmiştir. Helm grafiğinin uygulama sürümü, ağ geçidini belirli bir sürüme sabitler ve latest'e bağlı kalmaz.
Kubernetes üzerinde Helm ile bir API Management kendin barındırdığın ağ geçidini nasıl yükleyeceğiniz hakkında daha fazla bilgi edinin.
Kapsayıcı kaynakları
Varsayılan olarak, Azure portalında sağlanan YAML dosyası kapsayıcı kaynak isteklerini belirtmez.
Kapsayıcı başına CPU ve bellek kaynaklarının miktarını ve belirli bir iş yükünü desteklemek için gereken çoğaltma sayısını güvenilir bir şekilde tahmin etmek ve önermek mümkün değildir. Aşağıdakiler gibi birçok faktör devreye alınır:
- Kümenin üzerinde çalıştığı belirli donanım.
- Varlık durumu ve sanallaştırma türü.
- Eşzamanlı istemci bağlantılarının sayısı ve oranı.
- İstek oranı.
- Yapılandırılmış ilkelerin türü ve sayısı.
- Yük boyutu ve yüklerin arabelleğe alınıp alınmadığı veya akışa alınıp alınmadığı.
- Arka uç hizmeti gecikme süresi.
Başlangıç noktası olarak kaynak isteklerini iki çekirdeğe ve 2 GiB'ye ayarlamanızı öneririz. Bir yük testi gerçekleştirin ve sonuçlara göre ölçeği artırma/genişletme veya azaltma/daraltma.
Özel etki alanı adları ve SSL sertifikaları
API Management uç noktaları için özel etki alanı adları kullanıyorsanız, özellikle de Yönetim uç noktası için özel bir etki alanı adı kullanıyorsanız, varsayılan etki alanı adını özel etki alanı adıyla değiştirmek için gateway-name.yamlconfig.service.endpoint<>güncelleştirmeniz gerekebilir. Kubernetes kümesindeki yerel ağ geçidinin podundan Yönetim uç noktasına erişilebildiğinden emin olun.
Bu senaryoda, Yönetim uç noktası tarafından kullanılan SSL sertifikası iyi bilinen bir CA sertifikası tarafından imzalanmazsa, CA sertifikasının kendinden barındırılan ağ geçidinin podu tarafından güvenildiğinden emin olmanız gerekir.
Not
Öz barındırılan ağ geçidi v2 ile API Management yeni bir yapılandırma uç noktası sağlar: <apim-service-name>.configuration.azure-api.net. Özel konak adları bu uç nokta için desteklenir ve varsayılan konak adı yerine kullanılabilir.
DNS ilkesi
DNS ad çözümlemesi, şirket içinde barındırılan ağ geçidinin Azure'daki bağımlılıklara bağlanma ve arka uç hizmetlerine API çağrıları gönderme özelliğinde kritik bir rol oynar.
Azure portalında sağlanan YAML dosyası varsayılan ClusterFirst ilkesini uygular. Bu ilke, küme DNS'sinin çözümlemediği ad çözümleme isteklerinin düğümden devralınan yukarı akış DNS sunucusuna iletilmesine neden olur.
Kubernetes'te ad çözümleme hakkında bilgi edinmek için Kubernetes web sitesine bakın. DNS ilkesini veya DNS yapılandırmasını kurulumunuz için uygun şekilde özelleştirmeyi göz önünde bulundurun.
Dış trafik ilkesi
Azure portalında sağlanan YAML dosyası, externalTrafficPolicy alanını Service nesnesinde Local olarak ayarlar. Bu, çağıranın IP adresini (istek bağlamında erişilebilir) korur ve düğümler arası yük dengelemeyi devre dışı bırakır ve bunun neden olduğu ağ atlamalarını ortadan kaldırır. Bu ayarın düğüm başına eşit sayıda ağ geçidi podu olmayan dağıtımlarda trafiğin asimetrik dağıtımına neden olabileceğini unutmayın.
Sağlık Kontrolü
Ağ geçidi dağıtımlarınızda /status-0123456789abcdef hazır olma ve canlılık yoklamalarınız için HTTP yoklamaları uç noktasını kullanın. Bu, yalnızca başarıyla başlatılan ve trafiğe hizmet vermeye hazır olan veya yanıt vermeye devam ettiğini bilinen ağ geçidi dağıtımlarına trafiği yönlendirmenize yardımcı olur.
Sağlık kontrolleri olmadan ağ geçidi kurulumlarınız daha hızlı başlayabilir, ancak yapılandırma henüz tam olarak yüklenmemiş olabilir ve bu da veri düzlemi trafiğinizde 503 hata kodlarına yol açabilir.
İpucu
Helm ile yüklerken sistem durumu yoklamaları sizin için varsayılan olarak etkinleştirilir.
Yüksek kullanılabilirlik
Kendi kendine barındırılan ağ geçidi, altyapıda önemli bir bileşendir ve yüksek erişilebilirliğe sahip olması gerekir. Ancak hata oluşur ve gerçekleşebilir.
Şirket içinde barındırılan ağ geçidini kesintilere karşı korumayı göz önünde bulundurun.
İpucu
Helm ile yükleme yaparken, highAvailability.enabled yapılandırma seçeneğini açarak yüksek kullanılabilirlikte zamanlamayı kolayca etkinleştirin.
Kubernetes üzerinde Helm ile bir API Management kendin barındırdığın ağ geçidini nasıl yükleyeceğiniz hakkında daha fazla bilgi edinin.
Düğüm hatasına karşı koruma
Veri merkezi veya düğüm hataları nedeniyle etkilenmeyi önlemek için, düğüm düzeyinde yüksek kullanılabilirlik elde etmek için kullanılabilirlik alanlarını kullanan bir Kubernetes kümesi kullanmayı göz önünde bulundurun.
Kullanılabilirlik alanları, kendi kendine barındırılan ağ geçidinin podunu, aşağıdakileri kullanarak, bölgelere yayılmış düğümlerde zamanlamanıza imkan tanır:
- Pod Topolojisi Yayma Kısıtlamaları (Önerilen - Kubernetes v1.19+)
- Pod Karşıt Bağlılık
Not
Azure Kubernetes Service kullanıyorsanız, bu makalede kullanılabilirlik alanlarını kullanmayı öğrenin.
Pod kesintilerine karşı koruma
Podlar, el ile pod silme, düğüm bakımı gibi çeşitli nedenlerle kesintiye uğrayabilir.
En az sayıda podun herhangi bir zamanda erişilebilir olmasını zorunlu kılmak için Pod Kesintisi Bütçelerini kullanmayı göz önünde bulundurun.
HTTP(S) ara sunucusu
Kendi kendine barındırılan ağ geçidi, geleneksel HTTP_PROXY, HTTPS_PROXY ve NO_PROXY ortam değişkenlerini kullanarak HTTP(S) proxy için destek sağlar.
Yapılandırıldığında, kendi kendine barındırılan ağ geçidi, arka uç hizmetlerine yönelik tüm giden HTTP(S) istekleri için otomatik olarak ara sunucuyu kullanacaktır.
Sürüm 2.1.5 veya üzeri ile başlayarak kendine ait ağ geçidi, istek yönlendirme ile ilgili gözlemlenebilirlik sağlar.
- API Denetçisi , HTTP(S) ara sunucusu kullanılırken ve ilgili etkileşimlerinde ek adımlar gösterir.
- İstek ara sunucusu davranışının göstergesini sağlamak için ayrıntılı günlükler sağlanır.
Not
Temel kimlik doğrulaması kullanan HTTP proxy'leriyle ilgili bilinen bir sorun nedeniyle, sertifika iptal listesi (CRL) doğrulamasının kullanılması desteklenmez. Şirket İçinde Barındırılan Ağ Geçidi ayarları referansında, ağ geçidini uygun şekilde nasıl yapılandıracağınızı öğrenmek için daha fazla bilgi edinin.
Uyarı
Altyapı gereksinimlerinin karşılandığından ve şirket içinde barındırılan ağ geçidinin bunlara bağlanabildiğinden emin olun; aksi takdirde belirli işlevler düzgün çalışmayacaktır.
Yerel günlükler ve ölçümler
Kendi kendine barındırılan ağ geçidi, ilişkili API Yönetimi hizmetindeki yapılandırma ayarlarına göre Azure İzleyici ve Azure Uygulama Insights'a telemetri gönderir. Azure bağlantısı geçici olarak kesildiğinde, Azure'a telemetri akışı kesilir ve kesinti süresi boyunca veriler kaybolur.
Azure bağlantı kesintileri sırasında API trafiğini gözlemleyebilmek ve telemetri kaybını önlemek için kapsayıcılarınızı izlemek veya yerel izleme ayarlamak için Azure İzleyici Container Insights'ı kullanmayı göz önünde bulundurun.
İsim Alanı
Kubernetes ad alanları , tek bir kümeyi birden çok ekip, proje veya uygulamaya bölmeye yardımcı olur. Ad alanları, kaynaklar ve adlar için bir kapsam sağlar. Bunlar bir kaynak kotası ve erişim denetimi ilkeleriyle ilişkilendirilebilir.
Azure portalı, şirket içinde barındırılan ağ geçidi kaynakları oluşturmak için varsayılan ad alanında komutlar sağlar. Bu ad alanı otomatik olarak oluşturulur, her kümede bulunur ve silinemez. Kendi kendine barındırılan bir ağ geçidi oluşturmayı ve bunu üretimde ayrı bir ad alanına dağıtmayı göz önünde bulundurun.
Replica sayısı
Üretim için uygun olan en az çoğaltma sayısı üçtür ve bu sayının, örneklerin yüksek erişilebilirlikte zamanlanması ile birleştirilmesi tercih edilir.
Varsayılan olarak, self-hosted bir ağ geçidi, RollingUpdate dağıtım stratejisiyle dağıtılır. Varsayılan değerleri gözden geçirin ve özellikle yüksek çoğaltma sayısı kullanırken maxUnavailable ve maxSurge alanlarını açıkça ayarlamayı göz önünde bulundurun.
Performans
Performansı artırmak için kapsayıcı günlüklerini uyarılara (warn) azaltmanızı öneririz. Kendi kendine barındırılan ağ geçidi yapılandırma referansımızda daha fazla bilgi edinin.
İstek sınırlandırma
Şirket içinde barındırılan bir ağ geçidinde istek sınırlama, API Management hız sınırı veya anahtara göre hız sınırı ilkesi kullanılarak etkinleştirilebilir. Küme düğümleri arasında ağ geçidi örnekleri arasında eşitlenecek hız limiti sayılarını, örnek keşfi için Kubernetes dağıtımında aşağıdaki bağlantı noktalarını kullanıma sunarak yapılandırın.
- UDP 4290 numaralı port, hız sınırlama eşitlemesi için.
- Diğer örneklere sinyal göndermek için bağlantı noktası 4291 (UDP)
Not
Şirket içinde barındırılan bir ağ geçidindeki hız sınırı sayımları, yerel olarak (küme düğümleri arasındaki ağ geçidi örnekleri arasında) eşitlenecek şekilde yapılandırılabilir; örneğin, Kubernetes için Helm çizelgesi dağıtımı yoluyla veya Azure portalı dağıtım şablonları kullanılarak. Ancak hız sınırı sayıları, buluttaki yönetilen ağ geçidi de dahil olmak üzere API Management örneğinde yapılandırılan diğer ağ geçidi kaynaklarıyla eşitlenmez.
Güvenlik
Kendi kendine barındırılan ağ geçidi, Kubernetes üzerinde kök haklarına sahip olmadan çalışabilir ve bu da müşterilerin ağ geçidini güvenli bir şekilde çalıştırmasına olanak tanır.
Kendi kendine barındırılan ağ geçidi kapsayıcısı için güvenlik bağlamına bir örnek:
securityContext:
allowPrivilegeEscalation: false
runAsNonRoot: true
runAsUser: 1001 # This is a built-in user, but you can use any user ie 1000 as well
runAsGroup: 2000 # This is just an example
privileged: false
capabilities:
drop:
- all
Uyarı
Kendi kendine barındırılan ağ geçidini salt okunur dosya sistemi (readOnlyRootFilesystem: true) ile çalıştırmak desteklenmemektedir.
Uyarı
Yerel CA sertifikalarını kullanırken, CA sertifikalarını yönetmek için şirket içinde barındırılan ağ geçidinin kullanıcı kimliği (UID) 1001 ile çalışması gerekir, aksi takdirde ağ geçidi başlatılmaz.
İlgili içerik
- Şirket içinde barındırılan ağ geçidi hakkında daha fazla bilgi edinmek için bkz . Şirket içinde barındırılan ağ geçidine genel bakış.
- API Management şirket içinde barındırılan ağ geçidini Azure Arc özellikli Kubernetes kümelerine dağıtmayı öğrenin.