Şirket içinde barındırılan ağ geçidini Kubernetes'e dağıtma
Bu makalede, Azure ağ geçidinin şirket içinde barındırılan ağ geçidi bileşenini bir Kubernetes kümesine API Management adımları açıklanmıştır.
Not
Şirket içinde barındırılan ağ geçidini küme uzantısı olarak Azure Arc kubernetes kümesine de dağıtabilirsiniz.
Önkoşullar
- Şu hızlı başlangıcı tamamlayın: Azure API Management örneği oluşturma.
- Kubernetes kümesi oluşturun.
İpucu
Tek düğümlü kümeler geliştirme ve değerlendirme amacıyla iyi çalışır. Üretim iş yükleri için şirket içinde veya bulutta Kubernetes Sertifikalı çok düğümlü kümeleri kullanın.
- Kendi örneğinize kendi içinde barındırılan bir ağ geçidi API Management sağlama.
Kubernetes’e dağıtma
Dağıtım ve altyapı altında Ağ Geçitleri'ni seçin.
Dağıtmak istediğiniz şirket içinde barındırılan ağ geçidi kaynağını seçin.
Dağıtım'ı seçin.
Varsayılan Süre Sonu ve Gizli anahtar değerlerine göre Belirteç metin kutusunda bir erişim belirteci sizin için otomatik olarak oluşturulmuştur. Gerekirse, yeni bir belirteç oluşturmak için denetimlerden birini veya her ikisini birden seçin.
Dağıtım betikleri altında Kubernetes sekmesini seçin.
<gateway-name> .yml dosyası bağlantısını seçin ve YAML dosyasını indirin.
Komutları panoya kaydetmek için Dağıt metin kutusunun sağ alt köşesindeki kopyala
kubectlsimgesini seçin.Komutları terminal (veya komut) penceresine yapıştırın. İlk komut, 4. adımda oluşturulan erişim belirteci içeren bir Kubernetes gizli kodu oluşturur. İkinci komut, 6. adımda indirilen yapılandırma dosyasını Kubernetes kümesine uygular ve dosyanın geçerli dizinde olmasını bekler.
Varsayılan ad alanı içinde gerekli Kubernetes nesnelerini oluşturmak için komutları çalıştırın ve sanal makineden indirilen kapsayıcı görüntüsünden kendi kendine barındırılan ağ geçidi podlarını Microsoft Container Registry.
Dağıtımın başarılı olup olduğunu kontrol etmek için aşağıdaki komutu çalıştırın. Tüm nesnelerin oluşturularak podların başlatılmasının biraz zaman al olabileceğini unutmayın.
kubectl get deployments NAME READY UP-TO-DATE AVAILABLE AGE <gateway-name> 1/1 1 1 18sAşağıdaki komutu çalıştırarak hizmetin başarıyla oluşturularak oluşturulmamıştır. Hizmet IP'lerinizi ve bağlantı noktalarınızı farklı olacağını unutmayın.
kubectl get services NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE <gateway-name> LoadBalancer 10.99.236.168 <pending> 80:31620/TCP,443:30456/TCP 9m1sGeri dön'a Azure portal Genel Bakış'ı seçin.
Durum'un yeşil bir onay işareti ve ardından YAML dosyasında belirtilen çoğaltma sayısıyla eşleşen bir düğüm sayısı olduğunu onaylayın. Bu durum, dağıtılan kendinden konak ağ geçidi podlarının API Management hizmetiyle başarıyla iletişim kurarak normal bir "sinyal" durumuna sahip olduğu anlamına gelir.

İpucu
Birden kubectl logs deployment/<gateway-name> fazla varsa rastgele seçilen bir poddan günlükleri görüntülemek için komutunu çalıştırın.
Belirli bir pod veya kapsayıcıya yönelik günlükleri görüntüleme gibi eksiksiz kubectl logs -h bir komut seçenekleri kümesi için komutunu çalıştırın.
Üretim dağıtımında dikkat edilmesi gerekenler
Erişim belirteci
Geçerli bir erişim belirteci olmadan, kendinden konak ağ geçidi, ilişkili ağ geçidi hizmetinin uç noktası üzerinden yapılandırma verilerine API Management erişemeden indirebilir. Erişim belirteci en fazla 30 gün geçerli olabilir. Kümenin yeniden oluşturulması ve kümenin süresi dolmadan önce el ile veya otomasyon yoluyla yeni bir belirteçle yapılandırılması gerekir.
Belirteç yenilemeyi otomatik olarak yenilerken, yeni bir belirteç oluşturmak için bu yönetim API'si işlemi kullanın. Kubernetes gizli dizilerini yönetme hakkında bilgi için Kubernetes web sitesine bakın.
Ad Alanı
Kubernetes ad alanları tek bir kümeyi birden çok ekip, proje veya uygulama arasında 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şkilendirilebilirsiniz.
Bu Azure portal, varsayılan ad alanı içinde kendinden konak ağ geçidi kaynakları oluşturmak için komutlar sağlar. Bu ad alanı otomatik olarak oluşturulur, her kümede mevcuttur ve silinemez. Şirket içinde barındırılan bir ağ geçidini üretimde ayrı bir ad alanına oluşturmayı ve dağıtmayı göz önünde bulundurarak.
Çoğaltma sayısı
Üretime uygun en az iki çoğaltma sayısıdır.
Varsayılan olarak, kendinden konak 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 bulundurabilirsiniz.
Kapsayıcı kaynakları
Varsayılan olarak, dosyada sağlanan YAML Azure portal kapsayıcı kaynak isteklerini belirtmez.
Kapsayıcı başına CPU ve bellek kaynağı 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 öneride bulmak mümkün değildir. Birçok faktör rol oynar, örneğin:
- Kümenin üzerinde çalıştır olduğu belirli donanım.
- Sanallaştırmanın varlığı ve türü.
- Eş zamanlı istemci bağlantılarının sayısı ve oranı.
- İstek oranı.
- Yapılandırılan ilkelerin sayısı ve sayısı.
- Yük boyutu ve yük arabelleğe alma veya akışa alma.
- Arka uç hizmeti gecikme süresi.
Kaynak isteklerini başlangıç noktası olarak iki çekirdek ve 2 GiB olarak ayarlamanız önerilir. Yük testi gerçekleştirin ve sonuçlara göre ölçeğini yukarı/dışarı veya aşağı/in olarak gerçekleştirin.
Kapsayıcı görüntüsü etiketi
Dosyasında sağlanan YAML dosyası Azure portal etiketini kullanır. Bu etiket her zaman kendinden konak ağ geçidi kapsayıcı görüntüsünün en son sürümüne başvurur.
Daha yeni bir sürüme yapılan gereksiz yükseltmelerden kaçınmak için üretimde belirli bir sürüm etiketi kullanmayı göz önünde bulundurabilirsiniz.
Kullanılabilir etiketlerin tam listesini indirebilirsiniz.
DNS ilkesi
DNS ad çözümlemesi, kendi içinde barındırılan ağ geçidinin Azure'daki bağımlılıklara bağlanma ve arka uç hizmetleri için API çağrıları gönderme özelliğinde kritik bir rol oynar.
Dosyada sağlanan YAML dosyası Azure portal ClusterFirst ilkesi uygular. Bu ilke, küme DNS'i tarafından çözülen ad çözümleme isteklerinin düğümden devralınan yukarı akış DNS sunucusuna iletilir.
Kubernetes'te ad çözümlemesi hakkında bilgi edinmek için Kubernetes web sitesine bakın. DNS ilkesi veya DNS yapılandırmasını kurulumunuz için uygun şekilde özelleştirmeyi göz önünde bulundurabilirsiniz.
Dış trafik ilkesi
Service nesnesinde yer alan Azure portal yaML dosyası externalTrafficPolicy olarak Local ayarlar. Bu, çağıranın IP adresini (istek bağlamında erişilebilir)korur ve düğümler arası yük dengelemeyi devre dışı bırakarak bunun neden olduğu ağ atlamalarını ortadan kaldırıyor. Bu ayarın, düğüm başına eşit olmayan sayıda ağ geçidi pod'u olan dağıtımlarda trafiğin asimetrik dağılımına neden olabileceğinin farkında olun.
Ö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 config.service.endpoint <gateway-name> .yaml dosyasında değerini güncelleştirmeniz gerekir. Yönetim uç noktasına Kubernetes kümesinde kendi kendine barındırılan ağ geçidinin pod'unu kullanarak erişile olduğundan emin olun.
Bu senaryoda, Yönetim uç noktası tarafından kullanılan SSL sertifikası iyi bilinen bir CA sertifikası tarafından imzalanmamışsa, CA sertifikasına kendi kendine barındırılan ağ geçidinin pod'undan güveni olduğundan emin olun.
Yapılandırma yedeklemesi
Geçici bir Azure bağlantısı kesintisi varlığında kendinden konak ağ geçidi davranışı hakkında bilgi edinmek için bkz. Kendinden konak ağ geçidine genel bakış.
Kendinden konak ağ geçidi kapsayıcısı için yerel bir depolama birimi yapılandırarak en son indirilen yapılandırmanın yedek kopyasını kalıcı olarak saklaması için bu kapsayıcıyı kullanın. Bağlantı bağlı değilse, depolama birimi yeniden başlatma sırasında yedekleme kopyasını kullanabilir. Birim bağlama yolu olması /apim/config gerekir. bkz. GitHub.
Kubernetes'te depolama hakkında bilgi edinmek için Kubernetes web sitesine bakın.
Yerel günlükler ve ölçümler
Kendi kendine barındırılan ağ geçidi, Azure İzleyici hizmette yapılandırma ayarlarına Analizler Azure Application API Management gönderir. Azure bağlantısı geçici olarak kesiliyorsa, Azure'a telemetri akışı kesintiye uğrar ve kesinti süresince veriler kaybolur. Azure bağlantı kesintileri sırasında API trafiğini gözlemleyebilmeyi ve telemetri kaybını önlemek için yerel izlemeyi ayarlamayı göz önünde bulundurabilirsiniz.
Sonraki adımlar
- Kendinden konak ağ geçidi hakkında daha fazla bilgi edinmek için bkz. Kendinden konak ağ geçidine genel bakış.
- Şirket içinde barındırılan API Management ağ geçidini, Azure Arc Kubernetes kümelerinde dağıtmayı öğrenin.