NFO uzantısını yönetme

Bu makale, Azure Operatör Hizmet Yöneticisi için bir ağ işlevi işleci (NFO) uzantısının kullanıcı yönetimine yol gösterir. Azure Operatör Nexus platformunun barındırdığı kapsayıcı tabanlı iş yüklerini yönetmek için bu Kubernetes küme uzantısını kullanırsınız.

Nexus Azure Kubernetes Service (NAKS) kümesini eklenti uzantısı için hazır hale getirdikten sonra bu makaledeki komutları çalıştırırsınız. Komutlar, Azure CLI'nın ve kimlik doğrulamasının hedef aboneliğe önceden yüklenip yüklenmeyişini varsayabilir.

NFO uzantısı oluşturma

NFO uzantısı oluşturmak için Azure CLI komutunu az k8s-extension createçalıştırın.

Komut

az k8s-extension create --cluster-name
                        --cluster-type {connectedClusters}
                        --extension-type {Microsoft.Azure.HybridNetwork}
                        --name
                        --resource-group
                        --scope {cluster}
                        --release-namespace {azurehybridnetwork}
                        --release-train {preview, stable}
                        --config Microsoft.CustomLocation.ServiceAccount=azurehybridnetwork-networkfunction-operator
                        [--auto-upgrade {false, true}]
                        [--config global.networkfunctionextension.enableClusterRegistry={false, true}]
                        [--config global.networkfunctionextension.enableLocalRegistry={false, true}]
                        [--config global.networkfunctionextension.enableEarlyLoading={false,true}]
                        [--config global.networkfunctionextension.clusterRegistry.highAvailability.enabled={true, false}]
                        [--config global.networkfunctionextension.clusterRegistry.autoScaling.enabled={true, false}]
                        [--config global.networkfunctionextension.webhook.highAvailability.enabled={true, false}]
                        [--config global.networkfunctionextension.webhook.autoScaling.enabled={true, false}]
                        [--config global.networkfunctionextension.clusterRegistry.storageClassName=]
                        [--config global.networkfunctionextension.clusterRegistry.storageSize=]
                        [--config global.networkfunctionextension.webhook.pod.mutation.matchConditionExpression=]
                        [--config global.networkfunctionextension.clusterRegistry.clusterRegistryGCCadence=]
                        [--config global.networkfunctionextension.clusterRegistry.clusterRegistryGCThreshold=]
                        [--config global.networkfunctionextension.clusterRegistry.registryService.scale={"small", "medium", "large"}]
                        [--config networkfunctionextension.manager.scale={"small", "medium", "large"}]
                        [--version]

Gerekli parametreler

--cluster-name -c

  • Kubernetes kümesinin adı.

--cluster-type -t

  • Azure Arc kümelerini, Azure Kubernetes Service (AKS) yönetilen kümelerini, Azure Arc gereçlerini veya provisionedClustersbelirtin.
  • Kabul edilen değerler: connectedClusters.

--extension-type

  • Uzantı türünün adı.
  • Kabul edilen değerler: Microsoft.Azure.HybridNetwork.

--name -n

  • Uzantı örneğinin adı.

--resource-group -g

  • Kaynak grubunun adı. az configure --defaults group=groupnamekullanarak varsayılan grubu yapılandırabilirsiniz.

--config Microsoft.CustomLocation.ServiceAccount=azurehybridnetwork-networkfunction-operator

  • Bu yapılandırmayı sağlamanız gerekir.

İsteğe bağlı parametreler

--auto-upgrade

  • Uzantı örneğinin ikincil sürümünü otomatik olarak yükseltin.
  • Kabul edilen değerler: false, true.
  • Varsayılan değer: true.

--release-train

  • Uzantı türü için yayın trenini belirtin.
  • Kabul edilen değerler: preview, stable.
  • Varsayılan değer: stable.

--version

  • Etkinleştirilmediyse --auto-upgrade-minor-version uzantı örneği için yüklenecek açık sürümü belirtin.

İsteğe bağlı özelliğe özgü yapılandırmalar

Yan yükleme

--config global.networkfunctionextension.enableLocalRegistry=

  • Bu yapılandırma, artefaktların donanım sürücüsü aracılığıyla uç cihaza teslim edilmesine olanak tanır.
  • Kabul edilen değerler: false, true.
  • Varsayılan değer: false.

Pod değiştiren webhook

--config global.networkfunctionextension.webhook.pod.mutation.matchConditionExpression=

  • Bu yapılandırma isteğe bağlı bir parametredir. Yalnızca kapsayıcı ağ işlevleri (CNFs) ilgili yayın ad alanına yüklendiğinde devreye girer.

  • Bu yapılandırma, ve namespaceSelectorskurallarının üzerine daha ayrıntılı denetim ayarlar.

  • Varsayılan değer:

    "((object.metadata.namespace != \"kube-system\") ||  (object.metadata.namespace == \"kube-system\" && has(object.metadata.labels) && (has(object.metadata.labels.app) && (object.metadata.labels.app == \"commissioning\") || (has(object.metadata.labels.name) && object.metadata.labels.name == \"cert-exporter\") || (has(object.metadata.labels.app) && object.metadata.labels.app == \"descheduler\"))))"
    

    Başvurulan eşleşme koşulu, kube-system ad alanında kabul edilen podların yalnızca aşağıdaki etiketlerden en az birine sahip olmaları durumunda değiştirildiğini gösterir: app == "commissioning", app == "descheduler", veya name == "cert-exporter". Aksi takdirde, bunlar değiştirilmez ve CNF, bileşen veya uygulamanın Helm grafiğine göre kaynağından alınmaya devam eder.

  • Kabul edilen değer: Geçerli herhangi bir Ortak İfade Dili (CEL) ifadesi.

  • NFO uzantısını yükleme veya güncelleştirme sırasında bu parametreyi ayarlayabilir veya güncelleştirebilirsiniz.

  • Bu koşul yalnızca, namespaceSelectors ve kurallarına uygun olarak CNF, bileşeni veya uygulamayı ad alanına yüklerken devreye girer. Bu ad alanında daha fazla pod oluşturursanız, bu koşul uygulanır.

Küme kayıt defteri

--config global.networkfunctionextension.enableClusterRegistry=

  • Bu yapılandırma, yapıtları yerel olarak önbelleğe almak için kümede bir kayıt defteri sağlar.
  • Varsayılan değerler, global.networkfunctionextension.enableEarlyLoading=true hariç, gecikmeli yükleme modunu etkinleştirir.
  • Kabul edilen değerler: false, true.
  • Varsayılan değer: false.

--config global.networkfunctionextension.clusterRegistry.highAvailability.enabled=

  • Bu yapılandırma, küme sicili etkinse küme sicilini yüksek kullanılabilirlik (HA) modunda ayarlar.
  • Bu yapılandırma, değer nexus-shared olarak ayarlandığında AKS önerisine göre bir NAKS false birimi kullanır.
  • Kayıt defteri pod çoğaltma sayısı en az 3 ve en fazla 5'dir.
  • Kabul edilen değerler: true, false.
  • Varsayılan değer: true.

--config global.networkfunctionextension.clusterRegistry.autoScaling.enabled=

  • Bu yapılandırma, yatay otomatik ölçeklendirme ile küme kayıt defteri podlarının sağlanmasını gerçekleştirmektedir.
  • Kabul edilen değerler: true, false.
  • Varsayılan değer: true.

--config global.networkfunctionextension.webhook.highAvailability.enabled=

  • Bu yapılandırma, yüksek kullanılabilirlik için web dönüştürücüsünün birden çok replikasını sağlar.
  • Kabul edilen değerler: true, false.
  • Varsayılan değer: true.

--config global.networkfunctionextension.webhook.autoScaling.enabled=

  • Bu yapılandırma, webhook podlarını yatay otomatik ölçeklendirme ile donatır.
  • Kabul edilen değerler: true, false.
  • Varsayılan değer: true.

--config global.networkfunctionextension.enableEarlyLoading=

  • Bu yapılandırma, Helm yüklemesi veya yükseltmesi öncesinde yapıtların küme kayıt defterine erken yüklenmesini sağlar.
  • Bu yapılandırmayı yalnızca global.networkfunctionextension.enableClusterRegistry=true olduğunda etkinleştirebilirsiniz.
  • Kabul edilen değerler: false, true.
  • Varsayılan değer: false.

--config global.networkfunctionextension.clusterRegistry.storageClassName=

  • Bu yapılandırmayı global.networkfunctionextension.enableClusterRegistry=true olduğunda sağlamanız gerekir.
  • networkfunctionextension bu depolama sınıfından yerel önbellek yapıtlarına kalıcı birim talebi (PVC) sağlar.
  • Platforma özgü değerler:
    • AKS: managed-csi
    • NAKS (varsayılan): nexus-shared
    • NAKS (HA olmayan): nexus-volume
    • Azure Stack Edge:managed-premium
  • Varsayılan değer: nexus-shared.

Not

  • Azure Operatör Hizmet Yöneticisi'ni kullanarak bir NAKS kümesini yönetirken, varsayılan parametre değerleri önerilen yapılandırma olarak HA'yı etkinleştirir.
  • Aks kümesini Azure Operatör Hizmeti Yöneticisi'ni kullanarak yönetirken, aşağıdaki yapılandırma seçeneklerini kullanarak HA'yı devre dışı bırakmanız gerekir:
   --config global.networkfunctionextension.clusterRegistry.highAvailability.enabled=false
   --config global.networkfunctionextension.webhook.highAvailability.enabled=false
   --config global.networkfunctionextension.clusterRegistry.storageClassName=managed-csi

--config global.networkfunctionextension.clusterRegistry.storageSize=

  • Bu yapılandırmayı global.networkfunctionextension.enableClusterRegistry=true olduğunda sağlamanız gerekir.
  • Bu yapılandırma, küme kayıt defteri için ayırdığımız boyutu ayarlar.
  • Bu yapılandırma, boyutlandırma için Birimleri Gi ve Ti olarak kullanır.
  • Varsayılan değer: 100Gi

--config global.networkfunctionextension.clusterRegistry.clusterRegistryGCCadence=

  • Bu yapılandırmayı standart Unix Crontab biçiminde bir zamanlama olarak sağlamanız gerekir.
  • Boş dize olarak belirtilen bu yapılandırma, zamanlanmış işi devre dışı bırakır, böylece çöp toplama işlemini devre dışı bırakabilirsiniz.
  • Varsayılan değer: 0 0 * * *. İşi her gün bir kez çalıştırır.

--config global.networkfunctionextension.clusterRegistry.clusterRegistryGCThreshold=

  • Bu yapılandırma, küme kayıt defteri için çöp toplama işlemini tetikleyen yüzde eşiği değerini belirtir.
  • Bu yapılandırma, küme kayıt defteri kullanımı bu değeri aştığında çöp toplama işlemini tetikler.
  • Varsayılan değer: 0.

--config global.networkfunctionextension.clusterRegistry.registryService.scale=

  • Bu yapılandırma, küme kayıt defteri için CPU ve bellek kaynaklarını önceden tanımlanmış bir ölçek seçeneğine ayarlar.

  • Kabul edilen değerler: small, medium, large.

  • Varsayılan değer: medium.

  • Üç ölçeğin de kayıt defteri kaynak belirtimleri aşağıdadır:

        - requests:
          - small: cpu: 100m, memory: 250Mi
          - medium: cpu: 250m, memory: 500Mi
          - large: cpu: 500m, memory: 1Gi
        - limits:
          - small: cpu: 100m, memory: 2Gi
          - medium: cpu: 500m, memory: 2Gi
          - large: cpu: 1, memory: 4Gi
    

--config networkfunctionextension.manager.scale=

  • Bu yapılandırma, denetleyici yöneticisi için CPU ve bellek kaynaklarını önceden tanımlanmış bir ölçek seçeneğine ayarlar.

  • Kabul edilen değerler: small, medium, large.

  • Varsayılan değer: small.

  • Üç ölçek için de denetleyici yöneticisi kaynak belirtimleri şunlardır:

        - requests:
          - small: cpu: 100m, memory: 256Mi
          - medium: cpu: 500m, memory: 512Mi
          - large: cpu: 1, memory: 1Gi
        - limits:
          - small: cpu: 100m, memory: 1Gi
          - medium: cpu: 1, memory: 2Gi
          - large: cpu: 2, memory: 4Gi
    

NFO uzantısını güncelleştirme

NFO uzantısını güncelleştirmek için Azure CLI komutunu az k8s-extension updateçalıştırın:

az k8s-extension update --resource-group
                        --cluster-name
                        --cluster-type {connectedClusters}
                        --extension-type {Microsoft.Azure.HybridNetwork}
                        --name
                        --release-namespace {azurehybridnetwork}
                        --release-train {preview, stable}
                        --config Microsoft.CustomLocation.ServiceAccount=azurehybridnetwork-networkfunction-operator
                        [--version] {version-target}
                        [--config global.networkfunctionextension.enableClusterRegistry={false, true}]
                        [--config global.networkfunctionextension.enableLocalRegistry={false, true}]
                        [--config global.networkfunctionextension.enableEarlyLoading={false,true}]
                        [--config global.networkfunctionextension.clusterRegistry.highAvailability.enabled={true, false}]
                        [--config global.networkfunctionextension.clusterRegistry.autoScaling.enabled={true, false}]
                        [--config global.networkfunctionextension.webhook.highAvailability.enabled={true, false}]
                        [--config global.networkfunctionextension.webhook.autoScaling.enabled={true, false}]
                        [--config global.networkfunctionextension.clusterRegistry.storageClassName=]
                        [--config global.networkfunctionextension.clusterRegistry.storageSize=]
                        [--config global.networkfunctionextension.webhook.pod.mutation.matchConditionExpression=]
                        [--config global.networkfunctionextension.clusterRegistry.clusterRegistryGCCadence=]
                        [--config global.networkfunctionextension.clusterRegistry.clusterRegistryGCThreshold=]

NFO uzantısını silme

NFO uzantısını silmek için Azure CLI komutunu az k8s-extension deleteçalıştırın:

az k8s-extension delete --resource-group
                        --cluster-name
                        --cluster-type {connectedClusters}
                        --extension-type {Microsoft.Azure.HybridNetwork}
                        --name
                        --release-namespace {azurehybridnetwork}
                        --release-train {preview, stable}
                        --config Microsoft.CustomLocation.ServiceAccount=azurehybridnetwork-networkfunction-operator

Örnekler

Otomatik yükseltme ile NFO uzantısı oluşturma:

az k8s-extension create --resource-group myresourcegroup --cluster-name mycluster --name myextension --cluster-type connectedClusters --extension-type Microsoft.Azure.HybridNetwork --scope cluster --config Microsoft.CustomLocation.ServiceAccount=azurehybridnetwork-networkfunction-operator --release-namespace azurehybridnetwork

Sabitlenmiş sürüme sahip bir NFO uzantısı oluşturun:

az k8s-extension create --resource-group myresourcegroup --cluster-name mycluster --name myextension --cluster-type connectedClusters --extension-type Microsoft.Azure.HybridNetwork --auto-upgrade-minor-version false --scope cluster --config Microsoft.CustomLocation.ServiceAccount=azurehybridnetwork-networkfunction-operator --release-namespace azurehybridnetwork --version 1.0.2711-7

NAKS'de küme kayıt defteri (varsayılan gecikmeli yükleme modu) özelliği etkin bir NFO uzantısı oluşturun:

az k8s-extension create --resource-group myresourcegroup --cluster-name mycluster --name myextension --cluster-type connectedClusters --extension-type Microsoft.Azure.HybridNetwork --scope cluster --config Microsoft.CustomLocation.ServiceAccount=azurehybridnetwork-networkfunction-operator --release-namespace azurehybridnetwork --config global.networkfunctionextension.enableClusterRegistry=true --config global.networkfunctionextension.clusterRegistry.storageSize=100Gi

AKS'de küme kayıt defteri (varsayılan gecikmeli yükleme modu) özelliği etkin bir NFO uzantısı oluşturun:

az k8s-extension create --resource-group myresourcegroup --cluster-name mycluster --name myextension --cluster-type connectedClusters --extension-type Microsoft.Azure.HybridNetwork --scope cluster --config Microsoft.CustomLocation.ServiceAccount=azurehybridnetwork-networkfunction-operator --release-namespace azurehybridnetwork --config global.networkfunctionextension.enableClusterRegistry=true --config global.networkfunctionextension.clusterRegistry.highAvailability.enabled=false --config global.networkfunctionextension.clusterRegistry.storageClassName=managed-csi --config global.networkfunctionextension.clusterRegistry.storageSize=100Gi

Küme kayıt defteri (erken yükleme) özelliğinin etkinleştirildiği bir NFO uzantısı oluşturun:

az k8s-extension create --resource-group myresourcegroup --cluster-name mycluster --name myextension --cluster-type connectedClusters --extension-type Microsoft.Azure.HybridNetwork --scope cluster --config Microsoft.CustomLocation.ServiceAccount=azurehybridnetwork-networkfunction-operator --release-namespace azurehybridnetwork --config global.networkfunctionextension.enableClusterRegistry=true --config global.networkfunctionextension.enableEarlyLoading=true --config global.networkfunctionextension.clusterRegistry.storageClassName=managed-csi --config global.networkfunctionextension.clusterRegistry.storageSize=100Gi

Yan yükleme özelliği etkin bir NFO uzantısı oluşturun:

az k8s-extension create --resource-group myresourcegroup --cluster-name mycluster --name myextension --cluster-type connectedClusters --extension-type Microsoft.Azure.HybridNetwork --scope cluster --config Microsoft.CustomLocation.ServiceAccount=azurehybridnetwork-networkfunction-operator --release-namespace azurehybridnetwork --config global.networkfunctionextension.enableLocalRegistry=true

Küme kayıt defterini etkinleştirmek için bir NFO uzantısını güncelleştirin:

az k8s-extension update --resource-group naks-1-rg --cluster-name naks-1  --cluster-type connectedClusters --name networkfunction-operator  --extension-type Microsoft.Azure.HybridNetwork --release-namespace azurehybridnetwork --config networkFunctionExtension.EnableManagedInClusterEdgeRegistry=true –-config networkFunctionExtension.EdgeRegistrySizeInGB=1024

NFO uzantısını yeni bir hedef sürüme ulaşmak için güncelleştirin:

az k8s-extension update --resource-group naks-1-rg --cluster-name naks-1  --cluster-type connectedClusters --name networkfunction-operator  --extension-type Microsoft.Azure.HybridNetwork --release-namespace azurehybridnetwork --version X.X.XXXX-YYY