이 문서에서는 Azure Operator Service Manager에 대한 NFO(네트워크 함수 연산자) 확장의 사용자 관리를 안내합니다. 이 Kubernetes 클러스터 확장을 사용하여 Azure 운영자 Nexus 플랫폼에서 호스트하는 컨테이너 기반 워크로드를 관리합니다.
NAKS(Nexus Azure Kubernetes Service) 클러스터를 추가 기능 확장에 대해 준비한 후 이 문서의 명령을 실행합니다. 이 명령은 Azure CLI를 설치하고 대상 구독에 인증을 설치하기 전에 가정합니다.
NFO 확장 만들기
NFO 확장을 만들려면 Azure CLI 명령을 az k8s-extension create실행합니다.
명령
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"}]
[--version]
필수 매개 변수
--cluster-name -c
- Kubernetes 클러스터의 이름입니다.
--cluster-type -t
- Azure Arc 클러스터, AKS(Azure Kubernetes Service) 관리형 클러스터, Azure Arc 어플라이언스 또는
provisionedClusters. - 허용되는 값:
connectedClusters.
--extension-type
- 확장 형식의 이름입니다.
- 허용되는 값:
Microsoft.Azure.HybridNetwork.
--name -n
- 확장 인스턴스의 이름입니다.
--resource-group -g
- 리소스 그룹의 이름입니다.
az configure --defaults group=groupname사용하여 기본 그룹을 구성할 수 있습니다.
--config Microsoft.CustomLocation.ServiceAccount=azurehybridnetwork-networkfunction-operator
- 이 구성을 제공해야 합니다.
선택적 매개 변수
--auto-upgrade
- 확장 인스턴스의 부 버전을 자동으로 업그레이드합니다.
- 허용되는 값:
false, .true - 기본값은
true입니다.
--release-train
- 확장 형식에 대한 릴리스 트레인을 지정합니다.
- 허용되는 값:
preview, .stable - 기본값은
stable입니다.
--version
- 사용하도록 설정되지 않은 경우
--auto-upgrade-minor-version확장 인스턴스에 설치할 명시적 버전을 지정합니다.
선택적 기능별 구성
테스트용 로드
--config global.networkfunctionextension.enableLocalRegistry=
- 이 구성을 사용하면 하드웨어 드라이브를 통해 아티팩트가 에지로 배달될 수 있습니다.
- 허용되는 값:
false, .true - 기본값은
false입니다.
Pod 변경 웹후크
--config global.networkfunctionextension.webhook.pod.mutation.matchConditionExpression=
이 구성은 선택적 매개 변수입니다. 해당 릴리스 네임스페이스에 컨테이너 네트워크 기능(CNF)이 설치된 경우에만 실행됩니다.
이 구성은 규칙 및
namespaceSelectors위에 더 세분화된 제어를 설정합니다.기본값:
"((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\"))))"참조된 일치 조건은
kube-system네임스페이스에서 수락되는 Pod가 다음 레이블 중 적어도 하나, 즉app == "commissioning",app == "descheduler",name == "cert-exporter"이 있을 때에만 변형됨을 의미합니다. 그렇지 않으면 CNF, 구성 요소 또는 애플리케이션의 Helm 차트에 따라 변형되지 않으며, 원본 소스에서 계속 끌어옵니다.허용되는 값: 유효한 CEL(공용 식 언어) 식입니다.
NFO 확장을 설치하거나 업데이트하는 동안 이 매개 변수를 설정하거나 업데이트할 수 있습니다.
이 조건은 규칙에 따라 CNF, 구성 요소 또는 애플리케이션을 네임스페이스에 설치하는 경우에만 적용됩니다
namespaceSelectors. 해당 네임스페이스에 더 많은 Pod를 만드는 경우 이 조건이 적용됩니다.
클러스터 레지스트리
--config global.networkfunctionextension.enableClusterRegistry=
- 이 구성은 클러스터에 레지스트리를 프로비전하여 아티팩트를 로컬로 캐시합니다.
- 기본값은
global.networkfunctionextension.enableEarlyLoading=true가 적용되지 않는 한 지연 로드 모드를 사용합니다. - 허용되는 값:
false, .true - 기본값은
false입니다.
--config global.networkfunctionextension.clusterRegistry.highAvailability.enabled=
- 이 구성은 클러스터 레지스트리를 사용하는 경우 HA(고가용성) 모드로 클러스터 레지스트리를 프로비전합니다.
- 이 구성은 AKS 권장 사항의 NAKS
nexus-shared볼륨을false값이 설정된 경우 이용합니다. - 레지스트리 Pod 복제본 수는 최소
3및 최대5입니다. - 허용되는 값:
true, .false - 기본값은
true입니다.
--config global.networkfunctionextension.clusterRegistry.autoScaling.enabled=
- 이 구성은 클러스터 레지스트리 Pod를 수평 자동 확장으로 프로비저닝합니다.
- 허용되는 값:
true, .false - 기본값은
true입니다.
--config global.networkfunctionextension.webhook.highAvailability.enabled=
- 이 구성은 고가용성을 위해 웹후크의 여러 복제본을 프로비전합니다.
- 허용되는 값:
true, .false - 기본값은
true입니다.
--config global.networkfunctionextension.webhook.autoScaling.enabled=
- 이 구성은 수평 자동 크기 조정 기능을 갖춘 웹후크 Pod를 프로비전합니다.
- 허용되는 값:
true, .false - 기본값은
true입니다.
--config global.networkfunctionextension.enableEarlyLoading=
- 이 구성을 사용하면 Helm 설치 또는 업그레이드 전에 클러스터 레지스트리에 아티팩트 초기 로드를 수행할 수 있습니다.
-
global.networkfunctionextension.enableClusterRegistry=true일 때만 이 구성을 사용하도록 설정할 수 있습니다. - 허용되는 값:
false, .true - 기본값은
false입니다.
--config global.networkfunctionextension.clusterRegistry.storageClassName=
- 이 구성은 다음과 같은 경우에
global.networkfunctionextension.enableClusterRegistry=true제공해야 합니다. -
networkfunctionextension는 이 스토리지 클래스의 로컬 캐시 아티팩트로 PVC(영구 볼륨 클레임)를 프로비전합니다. - 플랫폼별 값:
- AKS:
managed-csi - NAKS(기본값):
nexus-shared - NAKS (비 HA):
nexus-volume - Azure Stack Edge:
managed-premium
- AKS:
- 기본값은
nexus-shared입니다.
메모
- Azure Operator Service Manager를 사용하여 NAKS 클러스터를 관리하는 경우 기본 매개 변수 값은 HA를 권장 구성으로 사용하도록 설정합니다.
- Azure Operator Service Manager를 사용하여 AKS 클러스터를 관리하는 경우 다음 구성 옵션을 사용하여 HA를 사용하지 않도록 설정해야 합니다.
--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=
- 이 구성은 다음과 같은 경우에
global.networkfunctionextension.enableClusterRegistry=true제공해야 합니다. - 이 구성은 클러스터 레지스트리에 대해 예약하는 크기를 설정합니다.
- 이 구성에서는 크기 조정을 위해 단위를 Gi 및 Ti로 사용합니다.
- 기본값:
100Gi
--config global.networkfunctionextension.clusterRegistry.clusterRegistryGCCadence=
- 이 구성은 표준 Unix Crontab 형식으로 일정으로 제공해야 합니다.
- 빈 문자열로 지정된 이 구성은 가비지 수집 실행을 옵트아웃할 수 있도록 예약된 작업을 사용하지 않도록 설정합니다.
- 기본값은
0 0 * * *입니다. 매일 한 번 작업을 실행합니다.
--config global.networkfunctionextension.clusterRegistry.clusterRegistryGCThreshold=
- 이 구성은 클러스터 레지스트리에 대한 가비지 수집 프로세스를 트리거할 백분율 임계값을 지정합니다.
- 이 구성은 클러스터 레지스트리 사용량이 이 값을 초과할 때 가비지 수집 프로세스를 트리거합니다.
- 기본값은
0입니다.
--config global.networkfunctionextension.clusterRegistry.registryService.scale=
이 구성은 클러스터 레지스트리의 CPU 및 메모리 리소스를 미리 정의된 크기 조정 옵션으로 설정합니다.
허용되는 값:
small,medium.large기본값은
medium입니다.다음은 세 가지 척도에 대한 레지스트리 리소스 사양입니다.
- 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
NFO 확장 업데이트
NFO 확장을 업데이트하려면 Azure CLI 명령을 az k8s-extension update실행합니다.
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 확장 삭제
NFO 확장을 삭제하려면 Azure CLI 명령을 az k8s-extension delete실행합니다.
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
예제
자동 업그레이드를 사용하여 NFO 확장을 만듭니다.
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
고정된 버전을 사용하여 NFO 확장을 만듭니다.
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에서 클러스터 레지스트리(기본 지연 로드 모드) 기능을 사용하도록 설정된 NFO 확장을 만듭니다.
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에서 클러스터 레지스트리(기본 지연 로드 모드) 기능을 사용하도록 설정된 NFO 확장을 만듭니다.
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
클러스터 레지스트리(초기 로드) 기능을 사용하도록 설정된 NFO 확장을 만듭니다.
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
사이드 로드 기능을 사용하도록 설정된 NFO 확장을 만듭니다.
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
클러스터 레지스트리를 사용하도록 NFO 확장을 업데이트합니다.
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 확장을 업데이트합니다.
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