Ş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

Kubernetes’e dağıtma

  1. Dağıtım ve altyapı altındaGeçitleri'ni seçin.

  2. Dağıtmak istediğiniz şirket içinde barındırılan ağ geçidi kaynağını seçin.

  3. Dağıtım'ı seçin.

  4. 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.

  5. Dağıtım betikleri altında Kubernetes sekmesini seçin.

  6. <gateway-name> .yml dosyası bağlantısını seçin ve YAML dosyasını indirin.

  7. Komutları panoya kaydetmek için Dağıt metin kutusunun sağ alt köşesindeki kopyala kubectl simgesini seçin.

  8. 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.

  9. 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.

  10. 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           18s
    
  11. Aş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   9m1s
    
  12. Geri dön'a Azure portal Genel Bakış'ı seçin.

  13. 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.

    Ağ geçidi durumu

İ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