You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Improve resiliency for cloud native network functions with Azure Operator Service Manager (AOSM) cluster registry (CR)
13
+
14
+
## Document history
12
15
* Created & First Published: July 26, 2024
13
16
* Updated for HA: October 16, 2024
17
+
* Updated for GC: November 5, 2024
14
18
15
-
## Overview
16
-
Improve resiliency for cloud native network functions with Azure Operator Service Manager (AOSM) cluster registry (CR). This feature requires the following minimum environment:
19
+
## Feature dependencies
20
+
This feature requires the following minimum environment:
17
21
* Minimum AOSM ARM API Version: 2023-09-01
18
22
* First version, no high availability (HA) for Network Function (NF) kubernetes extension: 1.0.2711-7
19
23
* First version, with HA for NF kubernetes extension: 2.0.2810-144
24
+
* First version, with GC for NF kubernetes extension: 2.0.2860-160
20
25
21
-
## Introduction
26
+
## Cluster registry overview
22
27
Azure Operator Service Manager (AOSM) cluster registry (CR) enables a local copy of container images in the Nexus K8s cluster. When the containerized network function (CNF) is installed with cluster registry enabled, the container images are pulled from the remote AOSM artifact store and saved to this local cluster registry. Using a mutating webhook, cluster registry automatically intercepts image requests and substitutes the local registry path, to avoid publisher packaging changes. With cluster register, CNF access to container images survives loss of connectivity to the remote artifact store.
23
28
24
29
### Key use cases and benefits
@@ -81,7 +86,7 @@ The cluster registry feature deploys helper pods on the target edge cluster to a
81
86
* This pod stores and retrieves container images for CNF.
82
87
83
88
### Cluster registry garbage collection
84
-
AOSM cluster extension runs a background job to regularly clean up container images. The job schedule and conditions are configured by end-user, but by default the job runs once per days at a 0% utilization threshold. This job will check if the cluster registry usage has reached the specified threshold, and if so, it will initiate the garbage collection process.
89
+
AOSM cluster extension runs a background garbage collection (GC) job to regularly clean up container images. This job will run based on a schedule, check if the cluster registry usage has reached the specified threshold, and if so, initiate the garbage collection process. The job schedule and threshold is configured by the end-user, but by default the job runs once per day at a 0% utilization threshold.
85
90
86
91
#### Clean up garbage image manifests
87
92
AOSM maintains references between pod owner resource and consuming images in cluster registry. Upon initiating the images cleanup process, images will be identified which are not linked to any pods, issuing a soft delete to remove them from cluster registry. This type of soft delete doesn't immediately free cluster registry storage space. Actual image files removal depends on the CNCF distribution registry garbage collection outlined below.
@@ -96,10 +101,10 @@ AOSM sets up the cluster registry using open source [CNCF distribution registry]
96
101
> This process requires the cluster registry in read-only mode. If images are uploaded when registry not in read-only mode, there is the risk that images layers are mistakenly deleted leading to a corrupted image. Registry requires lock in read-only mode for a duration of up to 1 minute. Consequently, AOSM will defer other NF deployment when cluster registry in read-only mode.
97
102
98
103
#### Garbage collection configuration parameters
99
-
Customers can adjust the following settings to configure the schedule and conditions for the garbage collection job.
104
+
The following parameters configure the schedule and threshold for the garbage collection job.
* For more configuration details, please refer to the [Network function extension installation instructions](manage-network-function-operator.md)
107
+
* For more configuration details, please refer to the latest [Network function extension installation instructions](manage-network-function-operator.md)
103
108
104
109
## High availability and resiliency considerations
105
110
The AOSM NF extension relies uses a mutating webhook and edge registry to support key features.
@@ -159,7 +164,18 @@ All AOSM operator containers are configured with appropriate request, limit for
159
164
* Pod Anti affinity only deals with the initial placement of pods, subsequent pod scaling, and repair, follows standard K8s scheduling logic.
160
165
161
166
## Frequently Asked Questions
162
-
* Can I use AOSM cluster registry with a CNF application previously deployed?
163
-
* If there's a CNF application already deployed without cluster registry, the container images are not available automatically. The cluster registry must be enabled before deploying the network function with AOSM.
164
-
* Can I change the storage size after a deployment?
165
-
* Storage size can't be modified after the initial deployment. We recommend configuring the volume size by 3x to 4x of the starting size.
167
+
#### Can I use AOSM cluster registry with a CNF application previously deployed?
168
+
If there's a CNF application already deployed without cluster registry, the container images are not available automatically. The cluster registry must be enabled before deploying the network function with AOSM.
169
+
170
+
#### Can I change the storage size after a deployment?
171
+
Storage size can't be modified after the initial deployment. We recommend configuring the volume size by 3x to 4x of the starting size.
172
+
173
+
#### Can I list the files presently stored in the cluster repository?
174
+
The following command can be used to list files in a human readable format:
175
+
```bash
176
+
kubectl get artifacts -A -o jsonpath='{range .items[*]}{.spec.sourceArtifact}'
177
+
```
178
+
This command should produce output similar to the following:
0 commit comments