Hello, cloud enthusiasts! Today, I’m super excited to share some hot news straight from KubeCon North America 2023 and Microsoft Ignite 2023 – a fresh feature in Azure Container Registry (ACR) and Azure Kubernetes Service (AKS) called Artifact Streaming. If you’re all about optimizing your container setup and speeding up deployment times, you’ll want to pay close attention.
What is Artifact Streaming
Previously under the moniker “Teleport,” Artifact Streaming is a feature that promises to redefine how we handle container images in Azure.
Artifact Streaming allows you to store container images in a single Azure Container Registry (ACR), from which you can manage and stream them directly to Azure Kubernetes Service (AKS) clusters, regardless of region. This means you can deploy container applications to multiple regions without the hassle of creating multiple registries or configuring geo-replication.
The real magic of Artifact Streaming is its impact on performance. By integrating this feature, Azure estimates a reduction in overall startup time by nearly 15% when connected to ACR. That’s not just an incremental improvement; it’s a substantial leap forward in operational efficiency.
For those who rely on scaling resources in AKS, Artifact Streaming is nothing short of transformative. Say goodbye to lengthy pull times for each Kubernetes pod. Initially supporting Linux amd64 container images, Azure is already charting the course for future support of Windows and arm64 images.
Preview Limitations to Keep in Mind
While Artifact Streaming is set to change the game, it’s important to be aware of its current limitations:
- Supported Architectures: Only Linux AMD64 images are supported. Windows and ARM64 images, as well as multi-architecture images (only AMD64), are in the pipeline.
- Kubernetes Compatibility: Ensure you’re using Ubuntu version 20.04 or higher, Azure Linux, and Kubernetes version 1.25 or newer.
- Premium SKU Registries: The feature is exclusive to premium SKU registries during the preview phase.
- Restrictions: Customer-Managed Keys (CMK) registries and Kubernetes regcred are not supported in the preview.
Benefits: Why Consider Artifact Streaming?
Using Artifact Streaming brings a host of advantages:
- Reduced Image Pull Latency: Enjoy faster container startups.
- Enhanced Developer Experience: Provides agility and simplicity for software developers and architects.
- Effective Scaling: Easily design, build, and deploy high-scale container applications.
- Simplified Deployment: Deploy to multiple regions using a single registry.
- Streamlined Container Management: Makes deploying and managing container images easier and more efficient.
Considerations Before Diving In
Before you implement Artifact Streaming, here are some key points:
- Enable for Specific Repositories or Tags: Artifact Streaming can be enabled for particular repositories or tags within new and existing registries.
- Two Versions of Artifacts: Enabling this feature results in two versions of the artifact – the original and the streaming variant.
- Artifact Management: Disabling Artifact Streaming doesn’t delete existing artifacts, and deleting a repository with soft delete also removes both versions.
Setting Up Artifact Streaming in ACR
Before you can leverage Artifact Streaming in AKS, ACR needs to be equipped. Here’s how:
- Initiate Streaming Artifacts: The az acr artifact-streaming create command gets your images ready for streaming.
- Streamline Your Settings: With az acr artifact-streaming update, you can control the auto-creation of streaming artifacts for new images. Existing images in repository will not be enabled for streaming.
For example, to create a streaming artifact use the following command, ensuring you change MyRegistry and MyImage to the values you are using:
1 |
az acr artifact-streaming create --name MyRegistry --image MyImage |
To enable the auto-creation of streaming artifacts for a repository use the following command. Again, just make sure you change the values to yours:
1 |
az acr artifact-streaming update -n MyRegistry --repository MyRepository --enable-streaming true |
Checking Streaming Conversion Status
To get a real-time update on how your streaming artifacts are faring, you can use the az acr artifact-streaming operation show command. This command provides a window into the ongoing process, offering insights into the conversion status for specific images in your registry.
For instance, to check the status of the streaming operation for an image named MyImage in the MyRegistry ACR, you would execute:
1 |
az acr artifact-streaming operation show --name MyRegistry --image MyImage:tag |
Running this command gives you a snapshot of the current state of the streaming process, helping you gauge its progress and troubleshoot any potential issues.
Cross-Regional Deployment: Go Global with Ease
One of the standout features of Artifact Streaming is its seamless adaptability across different geographic regions. It’s a game-changer, especially for those deploying containerized applications on a global scale. Whether you’re using geo-replication or not, Artifact Streaming ensures consistent, reliable performance. This means you get to enjoy efficient and uniform distribution of your container images across regions, simplifying what used to be a complex task.
Private Endpoint Compatibility: Secure and Efficient
Security is a top priority, and here’s where Artifact Streaming really shines. It’s designed to work smoothly with private endpoints. This compatibility is a big plus, allowing you to integrate Artifact Streaming into your existing Azure infrastructure without the need for major network overhauls. It aligns perfectly with the security and privacy requirements of various businesses, making sure that your container streaming is as secure as it is efficient.
Empowering AKS with Artifact Streaming
With ACR ready, it’s time to bring Artifact Streaming to AKS. Remember, as a preview feature, you’ll need to enable it:
1 |
az feature register --namespace Microsoft.ContainerService --name ArtifactStreamingPreview |
This command registers the feature flag with your Azure subscription. It can take a short while to finish.
To confirm it has registered you can run the following command:
1 |
az feature show --namespace Microsoft.ContainerService –name ArtifactStreamingPreview |
When the status shows Registered, you need to refresh the Microsoft.ContainerService resource provider using the following command:
1 |
az provider register -n Microsoft.ContainerService |
With that done its time to set this up on AKS.
Adding a Node Pool with Artifact Streaming Enabled
Here’s how you can add a node pool with Artifact Streaming enabled to your AKS cluster:
1 |
az aks nodepool add --cluster-name MyCluster --resource-group MyResourceGroup --name MyNodePool --enable-artifact-streaming |
It’s as straightforward as it sounds. This command spins up a new node pool in your AKS cluster with Artifact Streaming enabled right out of the gate.
Updating an Existing Node Pool
Already have a node pool and want to enable Artifact Streaming? Update it like so:
1 |
az aks nodepool update --cluster-name MyCluster --resource-group MyResourceGroup --name MyNodePool --enable-artifact-streaming |
Testing and Feedback
Since Artifact Streaming is in preview, it’s crucial to test it extensively in development environments and provide feedback to help improve the feature. Your insights are invaluable!
And that’s it! With Artifact Streaming, you’re all set to unleash the full potential of your ACR and AKS. Happy deploying,
0 Comments