Aracılığıyla paylaş


Azure Kubernetes Hizmetinde (AKS) HTTP vekil sunucu desteği

Bu makalede, Azure Kubernetes Service (AKS) kümelerini giden internet erişimi için bir HTTP proxy kullanacak şekilde nasıl yapılandıracağınızı öğreniyorsunuz.

Yönetilen veya özel sanal ağlara dağıtılan AKS kümelerinin düzgün çalışabilmesi için gerekli bazı çıkış bağımlılıkları vardır; bu da internet erişiminin HTTP proxy'leri aracılığıyla yönlendirilmesi gereken ortamlarda sorunlar yarattı. Düğümlerin internet hizmetlerine erişmek için gerekli olan yapılandırma, ortam değişkenleri ve sertifikaları başlatmanın bir yolu yoktu.

HTTP proxy özelliği, HTTP proxy desteğini AKS kümelerine ekler, proxy'ye bağımlı ortamlarda AKS gerektiren ağ trafiğini güvence altına alabileceğiniz basit bir arayüz sunar. Bu özellik ile hem AKS düğümleri hem de podlar, HTTP proxy kullanacak şekilde yapılandırılır. Bu özellik, bir küme başlatma işleminin bir parçası olarak, düğümlere güvenilir bir sertifika otoritesinin yüklenmesini de sağlar. More complex solutions might require creating a chain of trust to establish secure communications across the network.

Sınırlamalar ve Dikkat Edilecek Hususlar

Aşağıdaki senaryolar desteklenmez:

  • Different proxy configurations per node pool
  • Kullanıcı/Şifre doğrulama
  • API sunucu iletişimi için özel sertifika otoriteleri
  • Windows düğüm havuzları ile AKS kümeleri
  • Sanal Makine Kullanılabilirlik Setlerini (VMAS) kullanan düğüm havuzları
  • Using * as wildcard attached to a domain suffix for noProxy

httpProxy, httpsProxy, and trustedCa have no value by default. Pod'lara aşağıdaki ortam değişkenleri enjekte edilir:

  • HTTP_PROXY
  • http_proxy
  • HTTPS_PROXY
  • https_proxy
  • NO_PROXY
  • no_proxy

Proxy ortam değişkenlerinin enjeksiyonunu devre dışı bırakmak için, Pod'u "kubernetes.azure.com/no-http-proxy-vars":"true" ile açıklamanız gerekiyor.

Başlamadan önce

  • Azure CLI'nin en son sürümüne ihtiyacınız var. Versiyonu bulmak için az --version çalıştırın ve versiyonu yükseltmek için az upgrade çalıştırın. Eğer kurulum yapmanız veya yükseltmeniz gerekiyorsa, Azure CLI Kurulumu başlığına bakın.
  • Check for available AKS cluster upgrades to ensure you're running the latest version of AKS. If you need to upgrade, see Upgrade an AKS cluster.

You can configure an AKS cluster with an HTTP proxy during cluster creation using the az aks create command and passing in configuration as a JSON file.

  1. Bir dosya oluşturun ve httpProxy, httpsProxy ve noProxy için değerler sağlayın. Ortamınız bunu gerektiriyorsa, trustedCa için bir değer sağlayın.

Yapılandırma dosyası için şema şöyle görünüyor:

{
  "httpProxy": "string",
  "httpsProxy": "string",
  "noProxy": [
    "string"
  ],
  "trustedCa": "string"
}

Her parametrenin gereksinimlerini gözden geçirin:

  • httpProxy: Küme dışındaki HTTP bağlantılarını oluşturmak için kullanılacak bir proxy URL'si. URL şeması http olmalıdır.
  • httpsProxy: Küme dışındaki HTTPS bağlantılarını oluşturmak için kullanılacak bir proxy URL'si. If not specified, then httpProxy is used for both HTTP and HTTPS connections.
  • noProxy: A list of destination domain names, domains, IP addresses, or other network CIDRs to exclude proxying.
  • trustedCa: Alternatif CA sertifika içeriğini içeren bir dize. Şu anda yalnızca PEM formatı desteklenmektedir.

Önemli

For compatibility with Go-based components that are part of the Kubernetes system, the certificate must support Subject Alternative Names(SANs) instead of the deprecated Common Name certs.

Çevresel değişken http_proxy, https_proxy ve no_proxy ile uyum sağlama şekli konusunda uygulamalarda farklılıklar bulunmaktadır. Curl ve Python, no_proxy içinde CIDR'yi desteklemez, ancak Ruby destekler.

Örnek giriş:

{
  "httpProxy": "http://myproxy.server.com:8080/", 
  "httpsProxy": "https://myproxy.server.com:8080/", 
  "noProxy": [
    "localhost",
    "127.0.0.1"
  ],
  "trustedCA": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUgvVENDQmVXZ0F3SUJB...b3Rpbk15RGszaWFyCkYxMFlscWNPbWVYMXVGbUtiZGkvWG9yR2xrQ29NRjNURHg4cm1wOURCaUIvCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0="
}
  1. parametresi oluşturduğunuz dosyaya az aks create--http-proxy-config ayarlanmış komutunu kullanarak bir küme oluşturun.
az aks create \
    --name $clusterName \
    --resource-group $resourceGroup \
    --http-proxy-config aks-proxy-config.json \
    --generate-ssh-keys

Kümeniz, düğümlerde yapılandırılmış HTTP proxy ile başlatılmalıdır.

Http proxy yapılandırmasını etkinleştirmek veya güncelleştirmek için kümeyi güncelleştirme

Note

Yeni bir proxy'e geçiliyorsa, güncellemenin başarılı olması için yeni proxy'nin önceden var olması gerekir. After the upgrade is completed, you can delete the old proxy.

HTTP Proxy yapılandırması, komutu kullanılarak az aks update mevcut bir kümede etkinleştirilebilir veya güncelleştirilebilir. parametresi, --http-proxy-config , ve trustedCa gerekirse güncelleştirilmiş değerleri httpProxyhttpsProxynoProxyolan yeni bir JSON dosyasına ayarlanmalıdır. Güncelleme, httpProxy, httpsProxy veya noProxy değerleriyle yeni ortam değişkenlerini pod'lara enjekte eder.

Dikkat

komutunu kullanarak kümenizdeki ara sunucu yapılandırmasını güncelleştirdiğinizde AKS, kümedeki tüm düğüm havuzlarını otomatik olarak yeniden oluşturur az aks update . Kritik podların yeniden görüntüleme sırasında kesintiye uğramasını önlemek için Pod Kesinti Bütçelerini (PDB) kullanabilirsiniz.

Örneğin, yeni CA sertifikasının base64 ile kodlanmış dizgisi olan aks-proxy-config-2.json adında yeni bir dosya oluşturduğunuzu söyleyelim. Kümenizdeki proxy yapılandırmasını aşağıdaki komutla güncelleyebilirsiniz:

az aks update --name $clusterName --resource-group $resourceGroup --http-proxy-config aks-proxy-config-2.json

Eklenti yapılandırmasını izleme

HTTP proxy, izleme eklentisiyle birlikte aşağıdaki yapılandırmaları destekler:

  • Giden vekil sunucu kimlik doğrulama olmadan
  • Kullanıcı adı ve parola kimlik doğrulamalı giden proxy
  • Güvenilir sertifikaya sahip bir çıkış vekil sunucusu, Log Analitik uç noktası için.

Aşağıdaki yapılandırmalar desteklenmemektedir:

  • Güvenilir sertifikalara sahip bir proxy kullanıldığında Özel Metrikler ve Önerilen Uyarılar özellikleri

Sonraki adımlar

AKS kümelerinin ağ gereksinimleri hakkında daha fazla bilgi için, AKS'de küme düğümleri için çıkış trafiğini kontrol etme sayfasına bakın.