Cisco Unified Edge and Canonical Ubuntu LXD, MicroCloud and Kubernetes Deployment Guide

Available Languages

Download Options

  • PDF
    (2.9 MB)
    View with Adobe Reader on a variety of devices
Updated:May 28, 2026

Bias-Free Language

The documentation set for this product strives to use bias-free language. For the purposes of this documentation set, bias-free is defined as language that does not imply discrimination based on age, disability, gender, racial identity, ethnic identity, sexual orientation, socioeconomic status, and intersectionality. Exceptions may be present in the documentation due to language that is hardcoded in the user interfaces of the product software, language used based on RFP documentation, or language that is used by a referenced third-party product. Learn more about how Cisco is using Inclusive Language.

Available Languages

Download Options

  • PDF
    (2.9 MB)
    View with Adobe Reader on a variety of devices
Updated:May 28, 2026

Table of Contents

 

 

Published: May 2026

TextDescription automatically generated with low confidence

In partnership with:

Related image, diagram or screenshot

About the Cisco Validated Design Program

The Cisco Validated Design (CVD) program consists of systems and solutions designed, tested, and documented to facilitate faster, more reliable, and more predictable customer deployments. For more information, go to: http://www.cisco.com/go/designzone.

Executive Summary

We’re at a critical inflection point. The edge has emerged as the place where the physical and digital worlds meet, demanding real-time processing and analysis of data to deliver informed decisions, improved experiences, and increased productivity. However, legacy infrastructure wasn’t built for the AI era and can’t keep up with the scale, speed, and intelligence required by AI-driven operations. While much of the model training happens in the data center, the shift of test-time inference to the edge makes it the new frontier for enterprise AI.

Deploying AI at the edge remains complicated and demanding. Interoperability, security, cost, and rigid deployment models are all potential performance and productivity blockers. The increasing demand for AI and digitization at the edge necessitates a full system rethink, as evolving business needs and the sheer scale highly distributed edge environments and modern AI workloads create a beyond-human complexity nightmare. We need something more than just more boxes; we need a brand-new edge infrastructure and operations vision.

Cisco Unified Edge is an AI-ready system that redefines computing at the edge by converging  compute, networking, storage, and security. Designed from the edge up, for the next decade, the modular design is future-ready, energy-efficient, and easy-to-service, and can be tailored to support today’s workloads and use cases, while remaining adaptable to the rapidly evolving AI landscape. Seamless integration with third-party technologies and validated solutions for industry-specific needs ensure both compatibility and optimized performance.

Delivering breakthrough operational simplicity at scale, this software-defined system features centralized cloud management, zero-touch deployment, curated blueprints, and automated orchestration. These capabilities enable high scalability with minimal complexity. End-to-end observability with real-time analytics accelerates error detection and correction, helping minimize service outages. Security is designed-in, with integrated physical and digital safeguards to protect applications and data at the edge while multi-layered security capabilities protect infrastructure, applications, and AI models.

By combining compute, networking, security, and storage into a full stack, AI-ready system, Cisco Unified Edge introduces a fundamentally different infrastructure and operational paradigm for the enterprise edge. Unlike other solutions that may lack critical capabilities or are not optimized for edge use cases, this system offers fully validated solutions that deliver AI-era performance, simplicity, and security.

Benefits

Key benefits are:

●     Future-ready performance: Adaptable to meet today and tomorrow's edge workload demands with ease, stopping the rip-and-replace cycle with a fully integrated, modular edge environment built for the next decade. Deploy applications and infrastructure faster and profit sooner with proven solutions that are tested and certified for vertical-specific workloads and use cases, ensuring compatibility and performance.

●     Full-scale simplicity: Onboard quickly and with ease without the need for highly skilled IT expertise or on-site visits. Whether deploying ten systems or ten thousand, zero-touch provisioning, curated blueprints and automation ensure consistent, effortless rollout. A consistent operating model from core to edge makes it easy to scale, upgrade, and support your infrastructure.

●     Designed-in security: Prevent tampering at the edge with robust physical and digital protection. Proven policy-based templates eliminate configuration drift across sites. Embedded, zero-trust security capabilities ensure unmatched protection for your edge infrastructure, data, and AI models.

Canonical, the company behind Ubuntu, offers a robust and composable suite of open-source technologies designed to streamline enterprise IT operations, accelerate innovation, and reduce complexity across cloud, datacenter, and edge environments. This technical design guide explores how Canonical’s portfolio can be effectively used on Cisco Unified Edge System (Cisco UCS XE9305) to deliver scalable, secure, and cost-efficient solutions.

Canonical’s modular architecture aligns with Cisco Unified Edge infrastructure model, enabling:

●     Rapid provisioning and scaling of workloads

●     Unified management across compute, storage, and networking

●     Optimized performance for cloud-native and legacy applications

Together, Canonical and Cisco Unified Edge empower enterprises to build resilient, future-ready platforms that support digital transformation, edge computing, and AI innovation.

The design of this solution is driven by its ability to evolve and incorporate both technology and product innovations in the areas of management, computing, storage, and networking to be used at the Edge. To help organizations with their digital transformation and application modernization practices, Cisco and Canonical have partnered to produce this Cisco Validated Design (CVD) for the joint Unified Edge and Canonical solution minimizing risks by validating the integrated architecture to ensure compatibility between various components. The solution also addresses pain points by providing documented design guidance, deployment guidance, and support that can be used in various stages (planning, designing, and implementation) of a business project targeting Edge deployments. The solution is part of Cisco’s Blueprint and Fleet management enhancement of Intersight and will be delivered as IaC to further eliminate error-prone manual tasks, allowing quicker and more consistent solution deployments.

Introduction

This chapter contains the following:

●     Audience

●     Purpose of this document

●     Solution Summary

This Cisco Validated Design (CVD) describes a validated edge architecture that combines Cisco Unified Edge infrastructure with Canonical software to support bare-metal, virtualized, and containerized workloads in distributed environments. The design is intended for customers who need a repeatable and operationally efficient platform that can be deployed at remote sites, managed centrally, and scaled from a single node to a small multi-node cluster.

Unlike a general product overview, this section focuses only on the architectural elements that matter to the validated design. The goal is to establish the infrastructure context for the deployment models covered later in the document, specifically single-node Ubuntu with LXD, mixed LXD and Canonical Kubernetes deployments, and multi-node clustered edge designs based on Canonical MicroCloud.

At the edge, infrastructure decisions are often shaped by practical constraints rather than raw scale alone. Space, power, cooling, limited on-site IT presence, and the need for consistent remote operations all influence platform selection. For that reason, this CVD emphasizes a compact but capable infrastructure model that supports operational consistency, workload flexibility, and lifecycle automation through Cisco Intersight.

Audience

The intended audience of this document includes but is not limited to IT architects, sales engineers, field consultants, professional services, IT managers, partner engineering, and customers who want to take advantage of an infrastructure built to deliver efficiency and enable innovation. The expected reader is not looking for deep standalone product documentation. Instead, the intended audience needs design-level guidance on how the Cisco and Canonical components fit together as a validated platform.

Purpose of this document

The purpose of this guide is to provide design guidance for deploying Canonical software on Cisco Unified Edge using Cisco Intersight as the primary management and automation framework. It identifies the relevant platform components, explains how they contribute to the validated architecture, and highlights the workload patterns most applicable to edge environments.

This document does not define a complete AI application architecture. It defines the validated infrastructure and software foundation on which AI and analytics applications can be deployed. That distinction is important because it keeps the guide broadly useful across industries while still addressing the infrastructure requirements common to AI-enabled edge deployments.

This document does not attempt to reproduce full hardware data sheets or complete product manuals. Where deeper platform detail is required, the reader should refer to the published Cisco design guide and associated product documentation. Instead, this section focuses on the subset of information necessary to understand the design intent and justify the technology choices used in this document.

Solution Summary

Cisco Unified Edge with Canonical provides an integrated platform for running Linux-based edge workloads across several operational models. The validated stack combines Cisco compute and connectivity, Intersight-based lifecycle management, Ubuntu Server as the host operating system, and Canonical tooling for containers, virtual machines, Kubernetes, and clustered edge cloud services.

From a design perspective, the solution offers several key benefits:

●     a consistent deployment model across multiple edge locations

●     support for both traditional and cloud-native workloads

●     modular scaling from single-node systems to resilient clusters

●     centralized policy-driven operations through Cisco Intersight

●     readiness for AI inferencing and accelerated analytics workloads

The validated deployment patterns in this document can be summarized as follows:

●     Single-node Ubuntu Server with LXD

A compact and efficient model for running Linux services, system containers, and virtual machines on a single edge node.

●     Single-node Ubuntu Server with LXD and Canonical Kubernetes

A mixed workload model that supports system containers or virtual machines alongside Kubernetes-managed application containers on the same host.

●     Multi-node Canonical MicroCloud

A scale-out design that introduces clustering, distributed services, and improved resilience for workloads that outgrow a single-node footprint.

These deployment options allow you to choose an architecture that matches site-specific requirements without abandoning a common operational model. You can scale-up by adding more resources to the solution or scale-out by adding more Unified Edge instances.

Technology Overview

This chapter contains the following:

●     Solution Components

●     Design Positioning

●     AI/ML Use Cases

●     Why This Stack Fits AI/ML Edge Workloads

Solution Components

The validated solution is built on the following core elements:

Cisco Unified Edge Management

Cisco Unified Edge is part of the Cisco UCS portfolio, but it is tailored for environments where a traditional data center deployment model is not ideal. In this design, the management plane is centered on Cisco Intersight, which provides the control point for policy definition, automation, hardware lifecycle tasks, and repeatable deployment at scale.

This is especially important in edge use cases, where remote locations may not have dedicated IT staff and where operational consistency is often more important than site-specific customization. Intersight makes it possible to apply a uniform configuration model across multiple edge systems and reduce the risk of manual drift.

Cisco Intersight

Cisco Intersight is the infrastructure lifecycle management and automation platform used in this document. Within the context of this solution, its primary role is to simplify the deployment and ongoing management of Cisco Unified Edge systems.

The capabilities most relevant to this guide include:

●     centralized inventory and health visibility

●     policy-based server configuration

●     automation through APIs, templates, and blueprints

●     simplified deployment of consistent configurations across many sites

●     lifecycle management aligned with a repeatable operational model

For customers with additional security or data locality requirements, Cisco also provides on-premises deployment models for Intersight. That detail is secondary to the validated design itself, but it is useful to note that the same operational principles can be preserved across different management deployment models.

Cisco Unified Edge System

The Cisco Unified Edge platform provides the physical infrastructure foundation for the solution. It is designed for locations that need enterprise-grade compute and connectivity but cannot assume the conditions of a full data center. As a result, the platform balances compact form factor, performance, flexibility, and operational simplicity.

 For this document, the most relevant platform characteristics are:

●     support for compact, edge-optimized compute

●     local operating system and workload storage

●     integrated management through the edge chassis domain

●     support for redundant connectivity patterns

●     support for GPU acceleration where required

●     suitability for both standalone and clustered deployment models

The purpose of this section is not to restate complete hardware specifications. Instead, it establishes why the platform is appropriate for the validated Canonical software stack and the deployment models discussed later in the guide.

NVIDIA L4 GPU

When AI inferencing, video analytics, or accelerated data processing is required, the solution can incorporate the NVIDIA L4 Tensor Core GPU. The L4 is particularly relevant to edge environments because it combines strong inferencing performance with a power-efficient and compact form factor.

Within this document, GPU acceleration is relevant for workloads such as:

●     computer vision

●     video stream analysis

●     anomaly detection

●     accelerated AI inferencing

●     data processing pipelines that benefit from parallel execution

The presence of GPU support does not change the architectural model of the guide, but it expands the range of workloads that the platform can host efficiently.

Canonical Software Stack

Ubuntu Server

Ubuntu Server is the host operating system used throughout the validated design. It provides a stable and well-supported Linux foundation with strong support for automation, secure package management, modern networking, and long-term support releases suitable for production edge deployments.

For this document, Ubuntu Server is important not only as the base operating system, but also as the integration layer on which LXD, Canonical Kubernetes, and MicroCloud services are deployed.

Canonical LXD

LXD provides system container and virtual machine management for Linux environments. In this validated design, it is the key component used for lightweight virtualization and workload isolation on Ubuntu Server.

LXD is especially well suited to edge deployments because it allows customers to:

●     host Linux workloads with low overhead

●     run system containers and virtual machines under a common management model

●     use local resources efficiently

●     support both traditional application packaging and modern service models

For many single-node edge deployments, LXD is the simplest and most practical way to add workload isolation and application density without introducing the complexity of a larger virtualization platform.

Canonical Kubernetes

Canonical Kubernetes provides upstream-conformant container orchestration for application workloads that benefit from Kubernetes-based deployment and lifecycle management. In this document, it is used where cloud-native application packaging, service portability, or Kubernetes-native operating models are required.

This is particularly useful in edge environments that need to combine:

●     modern application delivery methods

●     small-footprint infrastructure

●     centralized lifecycle management

●     repeatable deployment across many locations

Canonical MicroCloud

MicroCloud extends the design from a single-node edge model to a clustered architecture by combining LXD, MicroCeph, and MicroOVN into a lightweight integrated edge cloud stack. In this guide, MicroCloud is the preferred path when the validated design needs to grow beyond a single host and introduce resilience, distributed capacity, or clustered workload hosting.

Its role in this document is architectural rather than theoretical. MicroCloud is how the design transitions from simple standalone edge systems to more resilient multi-node platforms without abandoning the Canonical operating model.

Juju and Ansible

Juju and Ansible can complement the base solution as orchestration and automation tools. They are relevant because customers may use them to extend deployment workflows, integrate application automation, or support operational tasks beyond the initial infrastructure bring-up.

However, they are not the primary focus of the architecture described in this section. The foundation of the validated solution remains Cisco Unified Edge, Cisco Intersight, Ubuntu Server, LXD, Canonical Kubernetes, and MicroCloud.

Together, these components form a flexible edge platform capable of hosting:

●     Bare-metal Linux applications

●     System containers

●     Virtual machines

●     Kubernetes-based cloud-native workloads

●     GPU-accelerated inferencing services

Figure 1.        Architecture Overview

Related image, diagram or screenshot

Design Positioning

The value of this solution is not just that it runs Canonical software on Cisco infrastructure. The value is that it presents a validated and repeatable architecture for a class of edge deployments that must support different workload types while remaining manageable at scale.

This document is positioned around a few practical design principles:

●     prefer operational consistency over site-specific customization

●     use a common platform for Linux, virtualization, and Kubernetes where possible

●     keep the single-node model simple and efficient

●     introduce clustering only where resilience or scale requires it

●     align automation and lifecycle operations with Cisco Intersight

These principles keep the design relevant across multiple industries and workload patterns without making it unnecessarily broad.

AI/ML Use Cases

AI Inferencing at the Edge

AI inferencing at the edge enables data to be processed and acted on close to where it is generated rather than sending everything back to a centralized cloud or data center. This model is valuable where low latency, constrained bandwidth, intermittent connectivity, or data sovereignty requirements make centralized processing less practical.

For this document, the AI focus is on inferencing rather than large-scale model training. The role of the validated infrastructure is to provide a reliable and operationally manageable platform on which inferencing services, analytics pipelines, and adjacent edge applications can run.

Representative Use Cases

The validated stack is broadly applicable to several common edge AI and analytics scenarios:

●     Industrial automation and predictive maintenance

Sensor data can be processed locally to detect anomalies, reduce downtime, and support near-real-time operational decisions.

●     Retail intelligence and smart store operations

Video analytics and local data processing can improve customer flow analysis, inventory visibility, and store operations without requiring all data to traverse back to a central location.

●     Security and surveillance analytics

Local inferencing can support faster threat detection, behavioural analysis, and video-based event recognition with lower latency.

●     Healthcare and diagnostic edge processing

Edge-based analytics can support localized review of patient data or imaging workflows while helping reduce data movement and preserving responsiveness.

●     Smart agriculture and remote sensing

Distributed systems can analyze camera, drone, or sensor data locally to support time-sensitive decisions in remote locations.

Why This Stack Fits AI/ML Edge Workloads

Cisco Unified Edge with Canonical is well aligned with AI-enabled edge deployments because it combines infrastructure flexibility with an operational model that can support remote and distributed environments. Specifically, the stack offers:

●     low-latency local processing on an edge-optimized compute platform

●     support for GPU acceleration where inferencing performance requires it

●     flexible hosting models for virtual machines, system containers, and Kubernetes workloads

●     centralized lifecycle management through Cisco Intersight

●     a scalable progression from single-node deployments to clustered edge platforms

This makes the design suitable not only for a specific application, but for a broader class of edge solutions that need to combine infrastructure efficiency, remote manageability, and readiness for AI workloads.

Solution Design and Deployment

This chapter contains the following:

●     Solution Overview

●     Requirements

●     Physical Topology

●     Logical Design

●     Ubuntu Autoinstall with Edge-Ready Configuration

●     Automated Cisco UCS / Intersight Server Bring-Up

●     LXD Deployment Options for Edge Workloads

●     Live Workload Migration Across MicroCloud Nodes

●     Recommended Edge Architecture: MicroCloud with Canonical Kubernetes

●     High Availability Design

●     Kubernetes Deployment on LXD VMs - Canonical Kubernetes for Edge

●     Edge Deployment Considerations

●     Edge Workload Deployment Scenario - AI / IoT Application on Canonical Kubernetes

●     Kubernetes + LXD VM Integration

●     Standalone versus MicroCloud Deployment

●     Standalone LXD versus MicroCloud versus Kubernetes-Only

●     Canonical Kubernetes Installation for Edge Deployments

●     Single-Node MicroCloud Deployment

●     Multi-Node MicroCloud Deployment - 3-Node HA Cluster

●     Multi-Node Kubernetes Cluster Deployment using Canonical Kubernetes

●     High-Availability Kubernetes with kube-vip on MicroCloud Edge Cluster

●     Deploy Kubernetes on MicroCloud Edge Cluster - 3-Node HA

●     High-Availability Kubernetes with kube-vip on MicroCloud Edge Cluster

Solution Overview

This solution provides a fully automated, scalable, and high-availability edge infrastructure built on Ubuntu, optimized for deployment on Cisco UCS / Intersight-managed servers. It enables seamless provisioning, containerization, orchestration, and distributed storage for modern edge workloads.

Related image, diagram or screenshot

The design combines:

●     Automated OS provisioning

●     LXD-based system containers

●     Canonical Kubernetes orchestration

●     Ceph distributed storage

●     High availability and live migration

Design Objectives

●     Enable zero-touch provisioning using Ubuntu Autoinstall

●     Provide a lightweight virtualization layer using LXD

●     Support cloud-native workloads with Canonical Kubernetes

●     Ensure high availability and fault tolerance

●     Optimize for edge constraints (latency, bandwidth, footprint)

●     Allow flexible deployment models (standalone > full HA cluster)

Architecture Components

●     Provisioning Layer

●     Ubuntu Autoinstall (Preseed-based automation)

●     Cisco UCS / Intersight server bring-up

●     Automated network, storage, and user configuration

Compute & Virtualization Layer

●     MicroCloud multi-node platform

●     System containers and VM support

●     Live container migration across nodes

●     Horizontal scalability

Storage Layer

●     Ceph-backed distributed storage

●     Block storage (RBD)

●     Object storage (RGW)

●     Shared filesystem (CephFS)

●     Highly resilient and scalable storage for edge workloads

Container & Orchestration Layer

●     Kubernetes deployment

●     Multi-node Canonical Kubernetes clusters

●     Integration with LXD VMs

●     Supports cloud-native and AI workloads

High Availability Design

●     Canonical Kubernetes HA using kube-vip

●     LXD cluster-level fault tolerance

●     Workload mobility via live migration

●     Multi-node redundancy (3-node minimum recommended)

MicroCloud Integration

●     Simplified deployment of:

●     LXD

●     Ceph

●     Canonical Kubernetes

●     Supports:

●     Single-node deployments (dev/test)

●     Multi-node HA clusters (production edge)

Deployment Models

●     Model Description Use Case

●     Standalone LXD Single-node deployment Dev / PoC

●     MicroCloud Multi-node integrated edge platform

●     Canonical Kubernetes Only Direct K8s deployment Cloud-native apps

●     Full Edge HA Production Stack Microcloud + Canonical Kubernetes

Edge Deployment Considerations

●     Low Latency: Local processing at edge nodes

●     Offline Capability: Operates with intermittent connectivity

●     Resource Efficiency: Lightweight stack (Canonical Kubernetes + LXD)

●     Scalability: Add nodes dynamically

●     Security: On-prem data processing

Key Capabilities

●     Zero-touch infrastructure provisioning

●     Unified compute + storage + orchestration stack

●     High availability across edge nodes

●     Seamless workload mobility

●     Production-ready Kubernetes at the edge

The Cisco Unified Edge with Canonical solution provides an integrated architecture with Cisco and Canonical technologies that demonstrate support for bare-metal, virtual, and K8s workloads with high availability and server redundancy.

Figure 2 illustrates a sample design with the required management components, like Intersight Assist or Canonical Juju, installed outside of the solution stack.

Figure 2.       Cisco Unified Edge with Canonical Architecture View

Related image, diagram or screenshot

Requirements

This section outlines the key design requirements and prerequisites necessary for delivering the Cisco Unified Edge with Canonical solution.

The solution is designed to support a wide range of deployment models, scalability levels, and operational use cases at the edge providing flexibility, resiliency, and simplified lifecycle management.

The following are the general design requirements for this solution:

Note:      This deployment model does not include integrated high availability (HA) at either the hardware or software layer.

●     Simple Single-Node Deployment for Bare Metal, Virtual Machines, and Containers

◦       Provides a lightweight and easy-to-deploy edge platform capable of running bare-metal applications, virtual machines (VMs), and containerized workloads.

◦       Ideal for environments where footprint, cost, and simplicity are key priorities.

●     Single-Node Kubernetes Deployment

◦       Offers a minimal, single-node Kubernetes environment (for example, Canonical Kubernetes ) for container orchestration at the edge.

◦       Suitable for small-scale edge applications, local AI inference, and test or pilot environments.

●     Multi-Node Deployment for Bare Metal, Virtual Machines, and Containers

◦       Enables a scalable and resilient multi-node architecture supporting both traditional and cloud-native workloads.

◦       Designed for high availability and fault tolerance with no single point of failure across the infrastructure layers.

◦       Allows horizontal scalability by adding compute or storage nodes on demand as workload or business requirements evolve.

●     Modular and Repeatable Design

◦       Provides a modular architecture that can be replicated across multiple edge locations or scaled to meet increasing business demands.

◦       Ensures consistent deployment experience through automation tools such as Cisco Intersight, Canonical MAAS, and Juju.

●     Flexible and Extensible Architecture

◦       Offers the flexibility to integrate components beyond those validated and documented in this guide, allowing for future expansion.

◦       Supports interoperability with third-party systems, additional Canonical services (for example, Landscape, MicroCloud), and Cisco ecosystem solutions (for example, SecureX, Intersight Workload Optimizer).

Physical Topology

This Cisco Unified Edge solution comes as an integrated stack with compute, storage and network and is connected to an external network domain. The compute nodes are configured to install the Ubuntu Server operating system on the local M.2 storage protected with RAID1. The persistent storage for bare-metal applications, Virtual machines and containers is provisioned on the local E3.s NVMe storage devices. The Unified Edge system is managed through Cisco Intersight Infrastructure Manager (IMM).

A typical topology for the Unified Edge based solution is shown in Figure 3.

Figure 3.       Cisco Unified Edge Physical Topology

A diagram of a computer serverAI-generated content may be incorrect.

As the key components to deploy the solution are inside the Unified Edge chassis itself, there are some decisions to make regarding the connectivity to the external network:

●     Both Edge Chassis Management Controller must be connected with their management network port to a network reaching the Intersight.com.

●     Both Edge Chassis Management Controller must be connected with port 1 or port 2 to the network for data traffic.

●     Both network devices on the UCS-XE130e compute node should be used with the same vSwitch / bond as uplink to provide high-availability.

●     Canonical Ubuntu and LXD software can be installed on Cisco Unified Edge Compute Nodes with local disks.

●     A Software Defined Storage option, like Ceph, must be used to create a multi-node storage platform for virtual machines, containers, and data.

Connectivity Inside the Chassis

The Cisco UCSXE-9305 chassis in this design is populated with up to five Cisco UCSXE servers. Each server is equipped with two 25-Gbps NICs connected to the midplane. One NIC connects to the embedded 25-Gbps switch on the first ECMC controller, and the second NIC connects to the embedded 25-Gbps switch on the second ECMC controller.

Figure 4.       Data Plane Connectivity in Validated Design

A diagram of a networkAI-generated content may be incorrect.

Ubuntu can configure the two NICs either as independent interfaces or combine them into a single bonded interface:

●     When used independently, the server provides an aggregated bandwidth of 50 Gbps to the chassis.

●     For bonded configurations, Active-Backup mode is recommended to ensure high availability and simpler failover behaviour.

Figure 5.       Bond interface in Active-Backup mode

A diagram of a networkAI-generated content may be incorrect.

Ubuntu supports bonding through Netplan, and Active-Backup (mode=1) is the recommended option. This mode ensures:

●     Simplified redundancy without switch-side link aggregation.

●     Predictable network traffic behavior.

●     Automatic failover when a link becomes unavailable.

For consistent traffic distribution across servers, the primary link interface should be set to point to the same ECMC on all servers. This keeps Layer-2 traffic within the chassis and reduces unnecessary external switching.

A diagram of a computer networkAI-generated content may be incorrect.

VLAN Configuration

Table 1 lists the VLANs which can be used for setting up the solutions along with their usage. As the bare minimum one VLAN-ID must be specified inside Cisco Unified Edge for internal communication and mapped as Native-VLAN to allow network traffic to the next-hop switch without VLAN tagging. The list in only an example and some of the VLANs are used in the deployment guide(s) based on this design document.

If no VLAN ID is used in the local network, set the Native-VLAN ID to any number between 4 and 4000 and define the IB-Management VLAN with the same ID.

Table 1.           VLAN Usage

VLAN ID

Name

Usage

5

Native-VLAN

Use VLAN 5 as native VLAN instead of default VLAN (1).

1320

OOB-MGMT-VLAN

Out-of-band management VLAN to connect management ports for various devices.

1321

IB-MGMT-VLAN

In-band management VLAN utilized for all in-band management connectivity - for example, Linux hosts, management tools, and so on.

1322

DATA-VLAN

Data traffic VLAN for bare-metal applications, virtual machines, and containers.

1323

VM-VLAN

Data traffic VLAN from/to Virtual Machines.

1324

CONTAINER-VLAN

Data traffic VLAN from/to containers.

3020

STORAGE-VLAN

Storage replication traffic VLAN for SDS like Ceph.

3030

CLOCK-VLAN

Clock synchronization VLAN for manufacturing applications.

3040

APP1-VLAN

Dedicated VLAN for Application 1 Use-case, such as App to DB traffic.

3050

APP2-VLAN

Dedicated VLAN for Application 2 Use-case, such as Sensor to App traffic.

3999

GUEST-VLAN

VLAN ID for guests or Hotspot WiFi.

Some of the key highlights of VLAN usage are as follows:

●     VLAN 1320 allows customers to manage and access out-of-band management interfaces of various devices and is brought into the infrastructure to allow IMC access to the Unified Edge eCMC or Catalyst devices and is also available to infrastructure virtual machines (VMs). Interfaces in this VLAN are configured with MTU 1500.

●     VLAN 1321 is used for in-band management of VMs, hosts, and other infrastructure services. This VLAN is also required to use vMedia policy and CIMC-Mounted ISO images inside Unified Edge. Interfaces in this VLAN are configured with MTU 1500.

●     VLAN 1322 is the default VLAN used to access applications, use-cases, and traditional data traffic. Interfaces in this VLAN are configured with MTU1500.

●     VLAN 1323 is used to access applications, use-cases, and traditional data traffic deployed on virtual machines. Interfaces in this VLAN are configured with MTU1500.

●     VLAN 1324 is used to access applications, use-cases, and traditional data traffic deployed in containers. Interfaces in this VLAN are configured with MTU1500.

●     VLAN 3020 is configured to allow storage replication traffic between the nodes. Interfaces in these VLANs are configured with MTU 9000.

●     VLAN 3030 is used to by Industrial Edge applications to synchronize the clock and time information for critical command traffic. Interfaces in this VLAN are configured with MTU1500.

●     VLAN 3040 is used to access a specific application or use-case like application to database traffic for a multi-tier application. Interfaces in this VLAN are configured with MTU1500.

●     VLAN 3050 is used to access a specific application or use-case like data traffic from sensors to the data collector application. Interfaces in this VLAN are configured with MTU1500.

●     VLAN 3999 is used for Guest access to the internet. Interfaces in this VLAN are configured with MTU1500.

Physical Components

The list of the required hardware components used to build a validated solution contains the Cisco Unified Edge components and the used network domain, see Table 2. You are encouraged to review their requirements and adjust the size or quantity of various components as needed.

Table 2.           Unified Edge with Network Domain hardware components

Component

Hardware

Comments

Cisco Unified Edge Chassis with two eCMCs

Cisco UCS-XE 9305 Chassis with two eCMC

The Unified Edge Chassis with the eCMC is the core of the solution design.

Cisco Unified Edge Compute nodes

One to five Cisco UCS-XE130c compute nodes

Your requirements will determine the amount of compute nodes required to build the solution.

Cisco Meraki Network Domain

One or two Meraki Switches (MS).

One or two Meraki Appliances (MX).

Your requirements will determine the switch model and the amount of network ports and network speed required to build the solution.

At least one Meraki MX device is required for remote locations to access the internet or the corporate network.

Cisco Catalyst Network Domain

One or two Cisco Catalyst 9000 series Switches.

One or two Cisco Catalyst 8000 series routers.

Your requirements will determine the switch model and the amount of network ports and network speed required to build the solution.

At least one Catalyst router is required for remote locations to access the internet or the corporate network.

Management Cluster

Hosted at a central place like the core data center.

A minimum of two Cisco UCS servers to host components like DNS, Intersight Assist Juju Server, MaaS Server, and others.

To reduce the number of physical servers the use of a supported virtualization software like KVM is recommended.

Software Components

Table 3 lists various software components used in the solution.

Table 3.           Software components and versions

Component

Version

Cisco Unified Edge Firmware Package

6.0(1)

Cisco Catalyst 8000

IOS-XE

Cisco Catalyst 9000

IOS-XE

Cisco Meraki MX

MX 18.211.6

Cisco Meraki MS

CS 17.2.2

Canonical Ubuntu Server

24.04.4 LTS

Canonical LXD

5.21 (stable)

Canonical MicroCloud

2.1.3 LTS

Canonical Kubernetes

 1.35

Canonical Management Tools

Canonical Juju

3.6.12

Logical Design

The Cisco Unified Edge with Canonical solution provides a flexible and automated deployment architecture designed to support a wide range of edge computing scenarios.

All deployments are fully automated through Cisco Intersight using Blueprints or custom workflows, ensuring consistent configuration, simplified operations, and lifecycle management.

The automation is based on the design and configuration principles defined in this guide and its associated deployment documents.

To support various deployment use cases, this design guide includes the following logical design options:

●     Single-Node Canonical Ubuntu Server with LXD

◦       Provides lightweight container-based virtualization using LXD for edge workloads on a single node.

●     Single-Node Canonical Ubuntu Server with LXD and Canonical Kubernetes

◦       Supports mixed workload environments using system containers (via LXD) and Kubernetes-orchestrated application containers (via Canonical Kubernetes) on a single host, suitable for legacy system workloads and modern cloud-native applications coexisting at the edge.

●     Multi-Node Cluster with Canonical MicroCloud

◦       Delivers a highly available and self-managing multi-node cluster that can host virtual machines and containers with built-in replication, resilience, and scale-out capability.

●     Single-Node Canonical Ubuntu Server with Canonical Kubernetes

◦       Offers a minimal Kubernetes environment via Canonical Kubernetes on a single node, ideal for small-scale edge applications or development and testing environments.

●     Multi-Node Cluster with Canonical Kubernetes

◦       Enables distributed, production-grade Kubernetes clusters with high availability, horizontal scaling, and lifecycle automation using Juju and Intersight.

The logical configuration of the Cisco Unified Edge system may vary depending on the intended workload and solution architecture. For example:

●     Deploying three standalone single-node Ubuntu servers running independent workloads does not require a dedicated storage replication network.

●     Conversely, deploying a three-node Canonical MicroCloud cluster benefits from a dedicated storage and replication network to optimize data synchronization, fault tolerance, and performance

This flexible design approach ensures that the Cisco Unified Edge platform can be optimized for a variety of edge computing use cases from lightweight single-node deployments to robust, clustered multi-node environments with full redundancy and high availability.

Ubuntu Autoinstall with Edge-Ready Configuration

This section provides the configuration details.

Option 1

This approach uses Ubuntu autoinstall with cloud-init to automate operating system provisioning and prepare the system for edge workloads. The operating system is installed first, and container and cluster prerequisites are configured during post-installation.

1. Disk Partitioning (boot, root, data)

Disk partitioning is defined in the autoinstall configuration to separate system and workload data.

Desired Layout

●     /boot – Boot partition

●     / – Root filesystem

●     /data – Dedicated data partition for containers and workloads

Example Storage Configuration

storage:

  config:

    - type: disk

      id: disk0

      match:

        size: largest

      ptable: gpt

      wipe: superblock

 

    - type: partition

      id: boot-part

      device: disk0

      size: 1G

      flag: boot

 

    - type: partition

      id: root-part

      device: disk0

      size: 50G

 

    - type: partition

      id: data-part

      device: disk0

      size: -1

 

    - type: format

      volume: boot-part

      fstype: ext4

 

    - type: format

      volume: root-part

      fstype: ext4

 

    - type: format

      volume: data-part

      fstype: ext4

 

    - type: mount

      device: boot-part

      path: /boot

 

    - type: mount

      device: root-part

      path: /

 

    - type: mount

      device: data-part

      path: /data

2. OS Initialization (Timezone, Locale)

System initialization parameters are defined to ensure consistency across edge locations:

locale: en_US.UTF-8

timezone: UTC

3. Hostname Configuration

Each node is assigned a unique hostname to support identification in clustered deployments:

identity:

  hostname: ue-node-01

4. User Creation and Sudo Access

An administrative user is created during installation and granted sudo privileges:

identity:

  username: admin

  password: "$6$REDACTED_HASH"

Ubuntu automatically assigns sudo access to the primary user created during installation.

5. SSH Key–Based Access

Secure remote access is enabled using SSH public keys:

ssh:

  install-server: true

  authorized-keys:

    - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD...

Password-based SSH login can be disabled post-installation if required.

6. Network Interface Configuration

Network interfaces are configured using Netplan. Basic IP addressing can be applied during autoinstall or left for post-install configuration:

network:

  version: 2

  ethernets:

    eno1:

      dhcp4: true

7. VLAN Basics (Mgmt / Data / Storage)

VLAN interfaces are created to logically separate traffic:

network:

  version: 2

  ethernets:

    eno1:

      dhcp4: no

  vlans:

    mgmt:

      id: 100

      link: eno1

      dhcp4: true

    data:

      id: 200

      link: eno1

      dhcp4: true

    storage:

      id: 300

      link: eno1

      dhcp4: true

This configuration supports management, application, and storage traffic isolation.

8. Ubuntu Tuning & Optimization for Edge Workloads

Basic OS tuning is applied during post-installation to optimize the system for edge use cases.

Example Late Commands

late-commands:

  - curtin in-target -- systemctl disable apt-daily.service

  - curtin in-target -- systemctl disable apt-daily-upgrade.service

  - curtin in-target -- sysctl -w net.ipv4.ip_forward=1

  - curtin in-target -- sysctl -w net.bridge.bridge-nf-call-iptables=1

These settings improve system stability, networking behavior, and readiness for container and Kubernetes workloads.

9. Installing LXD and Container Prerequisites

LXD and container prerequisites are installed as post-installation steps:

late-commands:

  - curtin in-target -- snap install lxd

  - curtin in-target -- lxd init --auto

  - curtin in-target -- apt-get update

  - curtin in-target -- apt-get install -y docker.io

Kubernetes itself is installed after the operating system boots to maintain a clean separation between OS and platform layers.

10. Post-Installation Validation (Test First)

After the system boots, validate the desired state:

lsb_release -a

df -h

ip addr

lxc list

docker version

Successful validation confirms the system is ready for Kubernetes or MicroCloud enablement.

Here is the complete cloud-init configuration:

#cloud-config

autoinstall:

  version: 1

 

  identity:

    hostname: ue-node-01

    username: admin

    password: "$6$REDACTED_HASH"

  locale: en_US.UTF-8

  timezone: UTC

 

  ssh:

    install-server: true

    allow-pw: false

    authorized-keys:

      - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD...

 

  storage:

    config:

      - type: disk

        id: disk0

        match:

          path: /dev/sda

        ptable: gpt

        wipe: superblock

 

      - type: partition

        id: boot-part

        device: disk0

        size: 1G

        flag: boot

 

      - type: partition

        id: root-part

        device: disk0

        size: 50G

 

      - type: partition

        id: data-part

        device: disk0

        size: -1

 

      - type: format

        volume: boot-part

        fstype: ext4

 

      - type: format

        volume: root-part

        fstype: ext4

 

      - type: format

        volume: data-part

        fstype: ext4

 

      - type: mount

        device: boot-part

        path: /boot

 

      - type: mount

        device: root-part

        path: /

 

      - type: mount

        device: data-part

        path: /data

 

  network:

    version: 2

    ethernets:

      eno1:

        dhcp4: true

 

  packages:

    - curl

    - ca-certificates

    - gnupg

    - containerd

 

  late-commands:

    # OS tuning

    - curtin in-target -- sysctl -w net.ipv4.ip_forward=1

    - curtin in-target -- modprobe br_netfilter

    - curtin in-target -- sysctl -w net.bridge.bridge-nf-call-iptables=1

 

    # Disable apt timers (correct way)

    - curtin in-target -- systemctl disable apt-daily.timer

    - curtin in-target -- systemctl disable apt-daily-upgrade.timer

    - curtin in-target -- systemctl stop apt-daily.timer

    - curtin in-target -- systemctl stop apt-daily-upgrade.timer

 

    # Install LXD

    - curtin in-target -- snap install lxd

    - curtin in-target -- lxd init --storage-backend=dir --storage-create-device=/data

 

    # Enable containerd

    - curtin in-target -- systemctl enable containerd

Automated Cisco UCS / Intersight Server Bring-Up

Option 2 – Recommended

This section describes an automated approach to provisioning Cisco Unified Edge servers using Cisco Intersight, including:

●     Policy creation

●     Server profile deployment

●     Unattended Ubuntu OS installation

The solution uses a small set of scripts and a centralized variables file to ensure consistent, repeatable infrastructure deployment without relying on manual GUI workflows.

Automate end-to-end server provisioning—from infrastructure policies to OS installation—using a single variable file and reusable scripts, eliminating repetitive manual configuration in the Intersight UI.

Why this matters

Think of Cisco Intersight as the control plane for your entire server fleet.

Traditionally, administrators manually create:

●     Policies (network, boot, storage)

●     Pools (IP, MAC, UUID)

●     Server profiles

●     OS installation workflows

This approach replaces manual steps with:

●     Infrastructure-as-Code (IaC) principles

●     Centralized configuration (variables file)

●     Repeatable automation scripts

Result

●     Faster deployments

●     Consistent configurations

●     Reduced human error

●     Easier audits and reviews

Daily workflow

After initial setup, day-to-day operations are minimal:

●     Edit one variable file.

●     Optionally update per-server YAML files.

●     Run one script for infrastructure.

●     Run one script for OS installation.

Where complexity exists

Initial setup requires understanding:

●     VLANs, gateways, and IP addressing

●     NIC naming as seen by Ubuntu (for example, eno1np0)

●     Intersight policies and resource groups

●     Secure handling of API keys and credentials

Solution Components

Table 4 lists the high-level structure for the artifact and role. You can download the files from UCS Solution git repository. For repository information, see UE_Ubuntu_Solutions. 

Table 4.           High-Level Structure

Artifact

Role

intersight_deploy_validate_vars.txt

Central configuration (single source of truth)

intersight_deploy_validate.sh

Creates policies, templates, and server profiles

intersight_os_install.sh

Automates OS installation workflows

intersight_policy_reconcile.sh

Detects and optionally fixes configuration drift

intersight_cleanup_strict.sh

Safely removes all objects created in the org

ubuntu-24.04.4-server*.yaml

Per-server unattended OS install configs

Key Design Principle

All infrastructure design decisions are encoded once in:

●     Variables file > infrastructure configuration

●     YAML files > OS-level configuration

This separation ensures:

●     Clean abstraction

●     Easier debugging

●     Reusable infrastructure templates

Prerequisites

Platform Requirements

●     Cisco Intersight account with required permissions

●     Target organization and resource group configured

●     Cisco UCS servers claimed and visible

System Requirements (Automation Host)

●     bash

●     isctl (Intersight CLI)

●     jq

●     Network connectivity to Intersight API

Security Requirements

●     API key stored securely (referenced via SECRET_KEY_PATH)

●     Key file must never be committed to source control

Infrastructure Requirements

●     Available unassigned servers

●     Reachable Ubuntu ISO URL (for vMedia boot)

●     Defined VLAN and IP addressing scheme

End-to-End Deployment Workflow

This section details the end-to-end deployment workflow process.

Phase A – Configuration

Step 1: Configure Variables File

Edit:

intersight_deploy_validate_vars.txt

Set:

●     Organization name

●     Resource group

●     API key path

●     Number of server profiles (1–5)

●     VLANs, IP ranges, MAC pools

●     Boot policy and vMedia ISO

Step 2: Configure Per-Server YAML

Edit:

ubuntu-24.04.4-server1.yaml
...
ubuntu-24.04.4-server5.yaml

Define per server:

●     Hostname

●     Bonding configuration

●     VLAN IPs

●     DNS and routes

Note:      Ensure the NIC names match actual system interfaces.

Phase B – Infrastructure Deployment

Run:

chmod +x intersight_deploy_validate.sh
./intersight_deploy_validate.sh intersight_deploy_validate_vars.txt /path/to/SecretKey.txt

Expected outcome

●     Policies created

●     Pools configured

●     Profile template created

●     Server profiles deployed and activated

●     Validation checks completed

●     Servers are ready for OS installation

Phase C – Operating System Installation

Run:

chmod +x intersight_os_install.sh
./intersight_os_install.sh intersight_deploy_validate_vars.txt /path/to/SecretKey.txt

Expected Outcome

●     OS configuration files uploaded

●     Installation workflows triggered

●     Progress monitored automatically

●     Ubuntu installed with predefined configuration

Optional – Drift Detection

./intersight_policy_reconcile.sh vars.txt key.txt

Ensures configuration consistency.

Optional – Cleanup (Lab Environments)

./intersight_cleanup_strict.sh vars.txt key.txt

Removes all objects created within the organization.

Logical Architecture

Figure 6 illustrates the logical architecture flow.

Figure 6.       Logical Architecture

Related image, diagram or screenshot

Benefits of this approach

Operational Advantages

●     Repeatable deployments across environments

●     Infrastructure as Code alignment

●     Parallel provisioning and activation

●     Reduced manual effort

●     Faster time to deployment

Design Advantages

●     Separation of infrastructure and OS logic

●     Centralized configuration management

●     Easy scaling (1 to N servers)

●     Controlled lifecycle (deploy > validate > install > cleanup)

Security Considerations

●     Store API keys and credentials outside version control

●     Use environment variables or secret management systems (Vault, and so on)

●     Rotate credentials regularly

●     Restrict access to scripts that modify or delete infrastructure

●     Audit usage of automation scripts

Ease of Adoption (CVD Positioning)

Strengths

●     Highly repeatable and consistent

●     Fully automates day-0 provisioning

●     Aligns with enterprise IaC practices

●     Supports parallel server provisioning

●     Clean separation of responsibilities

Considerations

●     Requires correct initial network design

●     Depends on Intersight API and CLI setup

●     YAML must match real hardware interfaces

●     Secrets must be managed securely

Summary

This automation framework enables end-to-end server provisioning using Cisco Intersight, combining:

●     Infrastructure automation

●     Profile-based deployment

●     Unattended OS installation

The result is a scalable, repeatable, and enterprise-ready edge deployment model that significantly reduces manual effort while improving consistency and reliability.

LXD Deployment Options for Edge Workloads

LXD provides system container and virtual machine orchestration capabilities on Ubuntu Server. In edge computing environments, LXD enables lightweight workload hosting, secure isolation, and infrastructure consolidation on resource-constrained hardware.

By running workloads inside LXD virtual machines, organizations can deploy microservices, edge analytics, and Kubernetes clusters directly on Cisco Unified Edge platforms without requiring a full hypervisor infrastructure.

This section describes the supported LXD deployment options, configuration models, storage backends, networking modes, and runtime capabilities, along with their suitability for edge computing use cases.

LXD Installation Methods

Snap Installation (Recommended)

snap install lxd

Description

LXD is distributed and maintained by Canonical as a Snap package, which provides an integrated installation, update mechanism, and dependency management system.

This method ensures the deployment remains aligned with Canonical's supported release channels and simplifies lifecycle management for infrastructure administrators.

Advantages

●     Officially supported by Canonical

●     Automated updates and patching

●     Integrated VM support using QEMU

●     Built-in clustering capabilities

●     Simplified upgrade and rollback mechanisms

●     Consistent package distribution across nodes

Recommended Use Cases

Snap-based LXD installation is recommended for:

●     Production edge deployments

●     Kubernetes container infrastructure

●     MicroCloud environments

●     Multi-node edge clusters

●     Automated edge orchestration platforms

LXD Operating Modes

LXD supports two primary deployment models depending on the scale and availability requirements of the edge environment.

Standalone Mode (Single Node)

lxd init
clustering = no

Description

Standalone mode deploys LXD on a single host, where all containers and virtual machines run locally.

Note:      This model is ideal for small edge deployments where simplicity and minimal infrastructure dependencies are required.

Edge Use Cases

Typical use cases include:

●     Retail branch edge servers

●     Industrial IoT gateways

●     Manufacturing edge analytics

●     AI inference nodes

●     Remote branch compute platforms

Advantages

●     Minimal configuration complexity

●     No inter-node communication required

●     Reduced network requirements

●     Simplified operations and troubleshooting

●     Lower infrastructure overhead

Position

Standalone LXD deployments represent the default validated architecture for single-node edge environments in this design.

Cluster Mode (Multi-Node)

lxd init
clustering = yes

Description

Cluster mode enables multiple LXD nodes to operate as a unified infrastructure cluster. Containers and virtual machines can be scheduled across nodes, enabling horizontal scaling and workload mobility.

Requirements

Cluster deployments require:

●     Static IP addresses for all cluster nodes

●     Port 8443/TCP open for LXD API communication

●     TLS trust between cluster members

●     Consistent storage backend configuration

●     Reliable network connectivity between nodes

Edge Use Cases

Cluster deployments are recommended for:

●     High availability edge platforms

●     Distributed edge clouds

●     Multi-site orchestration

●     Edge infrastructure pools

Advantages

●     Workload migration between nodes

●     Improved infrastructure utilization

●     Horizontal scaling capabilities

●     Fault tolerance and failover support

Note:      Cluster mode is supported in this design, but requires additional planning around networking, storage, and operational procedures.

 

Note:      It is highly recommended to use Microcloud when required.

LXD Storage Backend Options

Storage backend selection has a direct impact on performance, reliability, and operational complexity. The following options are supported.

Option 1 — Directory Backend (dir)

driver: dir

Description

The directory storage backend stores container data as standard directories within the host filesystem, typically on a dedicated mount point such as /data.

Advantages

●     Simple configuration

●     No specialized disk preparation required

●     Compatible with existing filesystems

●     Easy backup and migration

●     Low operational complexity

Limitations

●     Snapshot operations are less efficient

●     Performance lower than block-based storage

●     Not optimized for large-scale container environments

Recommended Use Cases

This backend is recommended for:

●     Single-node edge deployments

●     Predictable workload environments

●     Operational simplicity

Recommendation

The directory backend on a dedicated /data partition is the preferred storage model for single-node edge deployments.

Option 2 — ZFS

driver: zfs

Advantages

●     Fast snapshot and cloning operations

●     Copy-on-write filesystem

●     Built-in compression and deduplication

●     High performance storage operations

Requirements

●     Dedicated disk or block device

●     Higher memory overhead

●     Careful storage planning

Recommended Use Cases

ZFS is suitable for:

●     AI and analytics workloads

●     Snapshot-intensive environments

●     Performance-sensitive applications

Note:      ZFS is supported but requires additional storage planning and validation.

Option 3 — LVM

driver: lvm

Advantages

●     Block-level performance

●     Thin provisioning support

●     Mature Linux storage technology

Limitations

●     Requires disk preparation and wiping

●     Increased operational complexity

Note:      LVM is not recommended for edge deployments unless enterprise storage architecture requires it.

Option 4 — Ceph (Cluster Deployments)

Description

Ceph provides distributed storage across multiple nodes and enables highly available storage pools.

Recommended Use Cases

Ceph is appropriate for:

●     MicroCloud deployments

●     Multi-node edge clusters

●     High availability storage environments

Note:      Ceph storage is outside the scope of the single-node deployment model described in this document.

 

Note:      Microcloud is highly recommended whenever Ceph is needed, even in single node scenario.

LXD Networking Modes

Networking configuration determines how containers communicate with each other and with external systems.

NAT Bridge (lxdbr0)

Default LXD networking configuration.

Recommended for:

●     Single node environments

●     Isolated workloads

●     Development and validation environments

VLAN Attached Bridge

Containers connect directly to enterprise VLANs.

Recommended for:

●     Production workloads

●     direct enterprise network integration

●     environments requiring routable container IP addresses

Macvlan Networking

Provides containers with direct LAN presence.

Recommended for:

●     Lightweight services

●     environments requiring minimal networking configuration

Limitations include reduced host-container communication.

Overlay / Cluster Networking

Used in MicroCloud multi-node platform.

Recommended for:

●     High availability environments

●     distributed edge infrastructure

●     MicroCloud deployments

Container versus Virtual Machine Mode

LXD supports both containerized workloads and full virtual machines.

System Containers (Default)

System containers provide lightweight Linux environments that share the host kernel.

Advantages

●     Extremely fast startup times

●     Low memory footprint

●     High workload density

●     Efficient CPU utilization

Edge Use Cases

●     AI inference services

●     retail microservices

●     edge analytics pipelines

●     data processing workloads

Virtual Machines

lxc launch ubuntu:24.04.4 vm1 --vm

Advantages

●     Full operating system isolation

●     Separate kernel environments

●     Compatibility with legacy workloads

Edge Use Cases

●     Vendor appliances

●     Legacy enterprise software

●     Windows workloads

Note:      Virtual machines are supported but consume significantly more system resources.

Security and Exposure Options

LXD API Exposure

By default, the LXD API should not be exposed externally.

core.https_address = unset

External API exposure should only be enabled when clustering or remote orchestration is required.

Image Auto Updates

images.auto_update_interval = 6

This ensures container images remain up to date with security patches and OS updates.

Table 5.           Edge Workload Suitability Matrix

Deployment Type

Storage

Networking

Mode

Single Edge Node

dir

NAT Bridge

Standalone

Retail Edge

dir

VLAN Bridge

Standalone

Industrial Gateway

dir

NAT Bridge

Standalone

Multi-Node HA

ZFS / Ceph

Overlay

Cluster

AI Edge Platform

ZFS

VLAN Bridge

Standalone

Recommended Configuration

For most Cisco Unified Edge single-node deployments, the following architecture is recommended:

●     Snap-based LXD installation

●     Standalone operating mode

●     Directory storage backend using /data

●     NAT-based container networking

●     LXD API not externally exposed

●     Container workloads preferred over virtual machines

This configuration provides the best balance of simplicity, reliability, and performance for edge environments.

Step 1 – Create Dedicated Storage for Container Workloads

During default Ubuntu installation, only a portion of disk capacity is allocated to the root filesystem. The remaining space can be used to create a dedicated logical volume for container storage.

Verify Volume Group

vgdisplay

Confirm available free space.

Create Logical Volume

Example allocation:

lvcreate -L 200G -n data-lv ubuntu-vg

Format the Logical Volume

mkfs.ext4 /dev/ubuntu-vg/data-lv

Create Mount Point

mkdir /data

Mount Logical Volume

mount /dev/ubuntu-vg/data-lv /data

Persist Mount Configuration

echo '/dev/ubuntu-vg/data-lv /data ext4 defaults 0 2' >> /etc/fstab

Verify:

mount -a
df -h

The /data partition is now ready for container storage.

Step 2 – Apply Production LXD Configuration

The following preseed configuration defines a production-ready single-node LXD environment optimized for edge workloads.

LXD Production Preseed YAML

config:
  images.auto_update_interval: "6"
  core.https_address: ""
  core.trust_password: ""

networks:
  - name: lxdbr0
    type: bridge
    config:
      ipv4.address: 10.132.0.1/24
      ipv4.nat: "true"
      ipv6.address: "none"

storage_pools:
  - name: default
    driver: dir
    config:
      source: /data

profiles:
  - name: default
    description: Default profile for edge workloads
    config:
      security.nesting: "true"
      security.syscalls.intercept.mknod: "true"
      security.syscalls.intercept.setxattr: "true"
    devices:
      eth0:
        name: eth0
        network: lxdbr0
        type: nic
      root:
        path: /
        pool: default
        type: disk

projects: []
cluster: null

Save as:

lxd-production.yaml

Apply Configuration

If LXD has not been initialized:

lxd init --preseed < lxd-production.yaml

If LXD was previously initialized:

snap remove lxd --purge
snap install lxd
lxd init --preseed < lxd-production.yaml

Step 3 – Validation

Verify storage configuration:

lxc storage show default

Expected output:

source: /data

Verify networking:

lxc network show lxdbr0

Launch validation container:

lxc launch ubuntu:24.04.4 test-container
lxc list

Table 6.           Production Characteristics

Component

Configuration

Storage

Dedicated /data logical volume

Storage Backend

Directory driver

Networking

NAT bridge

IPv6

Disabled

API Exposure

Disabled

Image Updates

Automatic

Mode

Standalone

Design Considerations for Edge Deployments

The following are the design considerations specific for Edge deployments:

●     The /data partition must reside on reliable storage hardware.

●     LXD bridge CIDR must not overlap with enterprise networks.

●     Kubernetes pod CIDR must not conflict with the LXD network.

●     Enterprise patch management policies must be considered.

Recommended Deployment Scenarios

This architecture is suitable for:

●     Retail edge compute platforms

●     Industrial IoT gateways

●     AI inference nodes

●     Remote branch compute infrastructure

●     Single-node Kubernetes edge clusters

Live Workload Migration Across MicroCloud Nodes

After a multi-node MicroCloud environment is established, one of its key operational capabilities is workload mobility across cluster members. MicroCloud enables workloads to be moved between nodes with minimal service interruption when the underlying storage and networking configuration supports it.

This capability is particularly valuable in edge environments where infrastructure must remain available during:

●     system maintenance

●     hardware upgrades

●     node failures

●     workload rebalancing

Workload migration allows administrators to relocate services without rebuilding the application stack, helping maintain service continuity across the distributed edge infrastructure.

In this Cisco Validated Design, workload migration is validated within a three-node MicroCloud deployment on Cisco Unified Edge systems.

Migration Architecture

In a multi-node MicroCloud deployment, workloads run on top of the integrated platform formed by:

●     LXD for compute

●     MicroOVN for networking

●     MicroCeph for distributed storage

When shared storage is available through MicroCeph, workloads can be moved between nodes more efficiently because storage remains accessible across the cluster. In environments using only local storage, migration requires data transfer between nodes and may involve greater disruption.

In most production scenarios, workload migration should be validated for the specific application before operational use.

Example Migration Workflow

1.    A workload is running on one MicroCloud node.

2.    The workload is moved to another node.

3.    The application resumes on the destination node.

4.    Application access is revalidated.

Migration Prerequisites

Before performing workload migration in a multi-node MicroCloud deployment, the following conditions must be met:

MicroCloud Environment

●     MicroCloud cluster must be operational

●     Nodes must be reachable over the cluster network

●     Cluster services must be healthy

Verify cluster membership:

microcloud status

lxc cluster list

Storage Configuration

Workload migration works best when MicroCeph distributed storage is enabled.

For simple environments using local storage, workload data must be transferred during migration.

For production clusters, MicroCeph is recommended because it reduces disruption and improves recovery behavior.

Network Connectivity

All cluster members must be able to communicate with each other over the network.

MicroOVN networking and cluster communication must be functioning correctly.

Required cluster communication ports must be open according to the platform design.

Workload Migration Procedure

The following procedure demonstrates how to move a workload between nodes in a multi-node MicroCloud deployment.

Verify Workload Location

List running workloads and identify the current host:

lxc list

Example output:

NAME STATE IPV4 LOCATION web1 RUNNING 10.200.10.5 node1

In this example, the workload web1 is running on node1.

Initiate Migration

Move the workload to another node:

lxc stop web1 lxc move web1 --target node2 lxc start web1

During migration, the workload configuration is transferred to the destination node. When shared storage is available through MicroCeph, the migration process is more efficient because the underlying data remains accessible across the cluster.

Verify Migration Completion

Check workload placement again:

lxc list

Expected result:

NAME STATE IPV4 LOCATION web1 RUNNING 10.200.10.5 node2

The workload is now running on node2.

Validate Application Availability

To confirm service continuity, verify application accessibility after migration.

Example test:

curl >

The application should remain accessible after migration.

Cross-Node Migration Validation

Migration can be repeated across additional MicroCloud nodes to validate workload mobility.

Example:

lxc move web1 --target node3

Verify placement:

lxc list

The workload should now appear on node3.

Operational Use Cases

Workload migration enables several operational workflows.

Infrastructure Maintenance

Workloads can be moved off a node before performing maintenance tasks such as:

●     firmware upgrades

●     operating system updates

●     hardware replacement

Workload Rebalancing

Administrators can redistribute workloads across nodes to optimize:

●     CPU usage

●     memory utilization

●     storage capacity

Fault Avoidance

If a node experiences degraded performance, workloads can be moved proactively to healthy nodes.

Migration Performance Considerations

Migration duration depends on several factors (Table 7).

Table 7.           Migration Factors

Factor

Impact

Workload memory usage

Larger memory requires longer transfer time

Filesystem size

Larger storage footprint increases transfer time

Network bandwidth

Faster networks reduce migration duration

Storage model

MicroCeph reduces data-copy overhead compared to local storage

For optimal migration performance:

●     use high-speed networking

●     minimize workload disk footprint

●     avoid migration during peak traffic periods

●     use MicroCeph for shared storage

Limitations

Certain workloads may not support seamless migration.

Examples include:

●     workloads with heavy disk I/O

●     applications maintaining external hardware connections

●     workloads with strict real-time constraints

These scenarios may require stop-and-start migration or workload restart on the destination node.

Production Recommendations

For production-grade multi-node MicroCloud deployments, the following design enhancements are recommended:

●     enable MicroCeph distributed storage

●     use 10GbE or higher networking between cluster nodes

●     monitor cluster health and resource utilization

●     validate migration behavior per application

●     use Kubernetes for application-level orchestration where appropriate

These improvements reduce migration time and improve platform resiliency.

Validation Summary

Workload migration was successfully validated across the three-node MicroCloud deployment on Cisco Unified Edge systems.

Table 8 lists the confirmed capabilities.

Table 8.           Validation Tests and Results

Validation Test

Result

Workload migration between nodes

Successful

Application availability after migration

Maintained

Cluster state synchronization

Verified

The test confirms that a multi-node MicroCloud deployment supports dynamic workload mobility, allowing administrators to maintain application availability during infrastructure operations.

Recommended Edge Architecture: MicroCloud with Canonical Kubernetes

Modern edge environments require infrastructure platforms that are lightweight, resilient, and operationally simple, while still supporting cloud-native application deployment models. Organizations increasingly deploy compute resources closer to data sources such as IoT devices, industrial sensors, cameras, and retail systems to enable low-latency processing and real-time analytics.

 A combination of Canonical MicroCloud and Canonical Kubernetes provides a flexible and scalable platform for running workloads at the network edge.

In this architecture, MicroCloud provides the integrated infrastructure platform by combining compute, storage, and networking services across physical nodes. Canonical Kubernetes operates as the application orchestration layer, managing containerized workloads running on top of that infrastructure.

This design preserves a clear separation between infrastructure services and application orchestration while ensuring they function together as a unified edge platform. MicroCloud is not a separate management layer on top of compute, storage, and networking; it is the platform formed by those capabilities.

The architecture enables organizations to deploy cloud-native applications consistently across edge sites, data centers, and cloud environments.

Figure 7.       Architecture Layers

Related image, diagram or screenshot

Table 9 lists the four logical layers, each providing a specific role within the platform of the solution architecture.

Table 9.           Architecture Layers and Roles

 Layer

 Rose

Edge Hardware

Provides compute, networking, and storage resources

Ubuntu OS

Operating system foundation and system services

MicroCloud

Integrated distributed compute, storage, and networking platform

Canonical Kubernetes

Application orchestration and service management

Each layer contributes distinct capabilities to the overall system architecture.

Infrastructure Layer: MicroCloud

MicroCloud provides distributed edge infrastructure across multiple Cisco Unified Edge servers. It integrates LXD for compute, MicroOVN for networking, and MicroCeph for storage into a single platform that can be deployed and operated consistently across edge locations.

Key capabilities provided by the MicroCloud infrastructure layer include:

●     Multi-node infrastructure clustering

●     Distributed compute services through LXD

●     Integrated networking through MicroOVN

●     Distributed storage through MicroCeph

●     Cluster-wide workload placement

●     Centralized infrastructure visibility

●     Secure isolation for containers and virtual machines

●     Infrastructure resilience across physical nodes

MicroCloud allows the platform to continue operating even if an individual node becomes unavailable, provided quorum is maintained (Table 10).

Table 10.       Example Cluster Layout

Node

Role

node1

MicroCloud cluster member

node2

MicroCloud cluster member

node3

MicroCloud cluster member

For production deployments, a minimum of three nodes is recommended to maintain quorum and ensure reliable high-availability operations.

Canonical Kubernetes Layer

Canonical Kubernetes operates as the application orchestration layer within the platform. It manages containerized workloads, service discovery, scaling, and application lifecycle operations.

In this architecture, Kubernetes nodes run on infrastructure provided by MicroCloud, allowing the application layer to benefit from distributed compute, integrated networking, and resilient storage services.

Table 11.       Example Kubernetes Node Layout

Node / Instance

Role

k8s-control-1

Kubernetes control plane

k8s-control-2

Kubernetes control plane

k8s-control-3

Kubernetes control plane

The control plane node manages cluster state, scheduling, and API access, while worker nodes execute application workloads.

Canonical Kubernetes simplifies deployment and operations while maintaining full upstream Kubernetes compatibility, making it well suited for edge environments that require consistency and reduced operational overhead.

Workload Placement

One of the key benefits of MicroCloud is the ability to distribute workloads across multiple physical hosts while maintaining consistent infrastructure services.

Table 12 lists an example of the workload placement.

Table 12.       Workload Placement

Kubernetes Node / Instance

Host Location

k8s-control-1

node1

k8s-control-2

node2

k8s-control-3

node3

This distribution ensures that Kubernetes components are not all hosted on the same physical system, improving fault tolerance and overall resiliency. If a single infrastructure node becomes unavailable, the remaining nodes in the cluster can continue operating.

Network Architecture

Networking is implemented through multiple layers that provide connectivity between infrastructure components and Kubernetes workloads.

Table 13.        Network Layers and Function

Layer

Function

Physical Network

Provides connectivity between edge nodes

MicroOVN Network

Enables distributed node-to-node and workload connectivity

Instance Interface

Connects workloads to MicroCloud networking

Kubernetes Pod Network

Handles pod-to-pod communication

MicroCloud networking enables workloads and infrastructure services across different hosts to communicate consistently, while Kubernetes manages service-level communication between application pods.

This layered approach ensures reliable communication across both infrastructure and application layers.

Storage Architecture

Storage can be implemented using local or distributed options depending on deployment requirements.

Table 14.       Supported Storage Options

Storage Type

Use Case

ZFS local storage

Single-node or lab deployments

LVM storage

High-performance local storage

MicroCeph distributed storage

Multi-node high availability

For multi-node production clusters, MicroCeph distributed storage is recommended. MicroCeph enables shared storage across nodes, allowing:

●     workload migration

●     infrastructure failover

●     persistent data replication

●     resilient stateful services

High Availability Design

High availability in this architecture is achieved through multiple layers of redundancy and infrastructure resilience is provided through MicroCloud.

Key mechanisms include:

●     multiple cluster nodes

●     distributed control and service coordination

●     workload placement across nodes

●     integrated storage and networking resilience

●     infrastructure failover capabilities

Canonical Kubernetes provides application-level resilience through:

●     multiple worker nodes

●     pod replication

●     service load balancing

●     self-healing capabilities

This layered redundancy helps ensure both infrastructure and applications remain operational during node failures.

Edge Workload Use Cases

The architecture supports a wide range of edge computing workloads.

Examples include:

●     AI inference pipelines

●     IoT telemetry processing

●     retail analytics platforms

●     video processing workloads

●     microservices-based applications

●     industrial automation services

Container-based and cloud-native workloads benefit from fast provisioning, efficient resource utilization, and flexible deployment options, making them well suited for distributed edge environments.

Operational Advantages

Deploying Canonical Kubernetes on MicroCloud infrastructure provides several operational benefits.

Key advantages include:

●     simplified infrastructure provisioning

●     integrated compute, storage, and networking services

●     faster Kubernetes node deployment

●     reduced operational complexity

●     flexible workload placement across nodes

●     consistent lifecycle management across edge sites

Because the underlying infrastructure is integrated within MicroCloud, organizations can scale and manage the platform more consistently than with separately assembled infrastructure layers.

Deployment Workflow

The recommended deployment workflow follows an integrated platform approach:

 Deploy Ubuntu 24.04.4 LTS on Cisco Unified Edge servers.

●     Install MicroCloud components on each node.

●     Initialize a MicroCloud cluster across multiple edge nodes.

●     Configure integrated networking and storage services.

●     Deploy Canonical Kubernetes on top of the MicroCloud platform.

●     Enable Kubernetes add-ons and deploy application workloads.

This approach ensures a consistent and repeatable deployment model for edge infrastructure.

Scaling the Architecture

The architecture supports scaling at both the infrastructure layer and the application layer.

Infrastructure Scaling

Additional compute, storage, and networking capacity can be added by introducing new MicroCloud cluster nodes.

Application Scaling

Kubernetes workloads can scale horizontally by adding worker nodes or application pods. Because the infrastructure platform is integrated and designed for distributed operation, scaling can be completed efficiently while maintaining consistency across the environment.

Validation Summary

A layered edge computing platform was successfully validated using Cisco Unified Edge systems running Ubuntu 24.04.4 LTS.

Table 15.       Validation Tests and Results

Validation Test

Result

MicroCloud cluster deployment

Successful

Canonical Kubernetes deployment

Operational

Kubernetes cluster formation

Successful

Application deployment

Verified

Cross-node networking

Functional

Distributed infrastructure services

Functional

The validation confirms that the architecture provides a scalable and resilient platform for running Kubernetes workloads at the edge.

Conclusion

The combination of MicroCloud and Canonical Kubernetes creates a flexible and efficient platform for deploying modern applications in distributed edge environments.

By leveraging Cisco Unified Edge hardware, Ubuntu Server, MicroCloud integrated infrastructure, and Canonical Kubernetes orchestration, organizations can deploy cloud-native applications closer to data sources while maintaining centralized operational control.

This architecture enables enterprises to support emerging workloads such as AI analytics, IoT processing, and distributed microservices with minimal infrastructure overhead.

Kubernetes Deployment on LXD VMs - Canonical Kubernetes for Edge

This section describes the deployment of Canonical Kubernetes inside LXD virtual machines on Cisco Unified Edge systems running Ubuntu Server 24.04.4 LTS.

Deploying Kubernetes inside LXD virtual machines provides a lightweight and flexible orchestration platform that is well suited for edge computing environments. Compared to running full traditional virtual infrastructure stacks, LXD virtual machines reduce operational overhead while maintaining strong workload isolation and deployment flexibility.

Canonical Kubernetes can be deployed on infrastructure provided by LXD. For production-grade deployments, LXD virtual machines are recommended for Kubernetes nodes because they provide stronger isolation and better alignment with current platform guidance.

LXD virtual machines enable rapid provisioning of Kubernetes nodes while maintaining efficient resource utilization on edge hardware platforms. This approach simplifies lifecycle management, allowing administrators to deploy, recreate, migrate, or scale Kubernetes nodes dynamically.

The validated architecture consists of the following infrastructure layers.

This architecture enables rapid Kubernetes deployment for edge workloads such as AI inference pipelines, IoT data processing, retail analytics, and distributed microservices.

Figure 8.       Architecture Characteristics

Related image, diagram or screenshot

The Kubernetes deployment architecture validated in this design provides the following capabilities.

Lightweight Kubernetes Runtime

Canonical Kubernetes delivers a compact, production-ready Kubernetes distribution optimized for edge and small-cluster deployments.

VM-Based Node Provisioning

Kubernetes nodes are deployed as LXD virtual machines, allowing new nodes to be created quickly without requiring a separate virtualization stack.

Simplified Cluster Operations

Canonical Kubernetes packages the core Kubernetes services in a streamlined distribution, reducing operational complexity while preserving upstream Kubernetes compatibility.

Efficient Resource Utilization

Running Kubernetes nodes inside LXD virtual machines reduces infrastructure complexity while preserving strong workload isolation.

Architectural Limitations

The VM-based Kubernetes architecture intentionally prioritizes simplicity and lightweight operation. As such, the following advanced features are not included in this deployment:

●     Multi-region Kubernetes federation

●     Cross-cluster orchestration

●     Multi-tenant infrastructure segmentation

Despite these limitations, Canonical Kubernetes provides an ideal runtime for single-node and small-cluster edge deployments.

Prerequisites

Before deploying Kubernetes inside LXD virtual machines, several prerequisites must be satisfied.

System Requirements

The following system resources are recommended for stable Kubernetes operation.

Resource

Recommended

CPU

4 cores

Memory

16 GB

Storage

100 GB

Network

Static IP configuration

These resource allocations ensure that the host system can support both LXD infrastructure services and Kubernetes workloads.

Software Requirements

The following components must be installed and configured prior to Kubernetes deployment:

●     Ubuntu Server 24.04.4 LTS

●     LXD runtime

●     Configured LXD storage pool

●     LXD bridge network

Verify that LXD is operational:

lxc info

Create Kubernetes LXD Profile

Kubernetes virtual machines require a consistent LXD profile for networking, storage, and VM configuration.

Step 1 - Create the Kubernetes Profile

lxc profile create canonical-k8s

Step 2 - Attach Network Interface

Attach the VM network interface to the LXD bridge:

lxc profile device add canonical-k8s eth0 nic name=eth0 network=lxdbr0

Step 3 - Verify the Profile Configuration

lxc profile show canonical-k8s

Deploy Kubernetes Node VM

Once the profile is created, a virtual machine can be launched to act as a Kubernetes node.

lxc launch ubuntu:24.04.4 k8s-node --vm -p default -p canonical-k8s

Verify VM status:

lxc list

Expected output:

k8s-node RUNNING

Access the Kubernetes Node

Enter the virtual machine shell to install Kubernetes:

lxc exec k8s-node -- bash

Install Canonical Kubernetes

Inside the virtual machine, install Canonical Kubernetes:

snap install k8s --classic

Initialize the Kubernetes services and wait until the node is ready:

sudo k8s bootstrap sudo k8s status --wait-ready

This ensures that the Kubernetes control plane services are running correctly.

Enable Core Kubernetes Services

Canonical Kubernetes provides the core services required to run edge workloads.

Commonly required capabilities include:

●     DNS for service name resolution

●     ingress for HTTP traffic routing

●     storage integration for persistent workloads

Verify the cluster is operational:

sudo k8s kubectl get nodes

Expected output:

NAME STATUS ROLES k8s-node Ready control-plane

The Kubernetes node is now registered and ready to run workloads.

Deploy Test Application

To validate Kubernetes functionality, deploy a sample application.

Create an nginx deployment:

sudo k8s kubectl create deployment nginx --image=nginx

Expose the application using a NodePort service:

sudo k8s kubectl expose deployment nginx --type=NodePort --port=80

Verify service status:

sudo k8s kubectl get svc

This confirms that Kubernetes workloads can be deployed and exposed successfully.

Validation Summary

The validation confirms that Canonical Kubernetes deployed inside LXD virtual machines provides:

●     lightweight Kubernetes infrastructure for edge systems

●     fast node provisioning through LXD virtual machines

●     reduced infrastructure overhead

●     simplified lifecycle operations

●     reliable workload deployment on Cisco Unified Edge platforms

Edge Deployment Considerations

When deploying Canonical Kubernetes in edge environments, several design considerations must be addressed.

Resource Optimization

Edge systems typically operate with constrained resources. VM resource limits should be configured appropriately.

Example:

lxc config set k8s-node limits.cpu 4 lxc config set k8s-node limits.memory 8GB

These limits prevent Kubernetes workloads from consuming excessive host resources.

Security

Edge Kubernetes deployments must be secured to protect infrastructure and workloads.

Recommended security practices include:

●     securing Kubernetes API endpoints

●     restricting SSH access

●     implementing Kubernetes RBAC policies

●     limiting privileged workload usage

Network Planning

VM networking should align with the overall edge infrastructure design.

Bridge networking provides the simplest deployment model, while advanced environments may require:

●     overlay networking

●     software-defined networking (SDN)

●     integration with enterprise network policies

Operational Benefits

Running Canonical Kubernetes inside LXD virtual machines offers several operational advantages:

●     rapid node provisioning

●     low resource overhead

●     simplified lifecycle management

●     efficient workload isolation

Virtual machines can be recreated or repositioned between cluster nodes, supporting dynamic edge workloads.

Expansion to Multi-Node Kubernetes

Additional Kubernetes nodes can be deployed by launching additional LXD virtual machines.

Example cluster topology:

●     k8s-control-plane

●     k8s-node1

●     k8s-node2

●     k8s-node3

Each virtual machine acts as a Kubernetes node and can join the cluster using Canonical Kubernetes clustering procedures.

Validation Summary

Canonical Kubernetes was successfully deployed inside LXD virtual machines on Cisco Unified Edge systems.

The following validation tests were performed:

Validation Test

Result

VM provisioning

Successful

Canonical Kubernetes installation

Successful

Kubernetes node registration

Successful

Application deployment

Successful

The deployment confirms that Canonical Kubernetes running inside LXD virtual machines provides a lightweight and efficient Kubernetes platform optimized for edge computing environments.

Edge Workload Deployment Scenario - AI / IoT Application on Canonical Kubernetes

This section demonstrates a practical edge workload deployment scenario using a Kubernetes cluster running on LXD VMs on Cisco Unified Edge systems.

Related image, diagram or screenshot

Edge computing environments frequently process data generated by IoT devices, sensors, cameras, and industrial equipment. Instead of sending all data to centralized cloud environments, edge platforms allow applications to process data locally, enabling lower latency, reduced bandwidth consumption, and improved operational responsiveness.

In this validated design, Canonical Kubernetes is used to deploy an example application that simulates an AI-enabled IoT processing pipeline running directly on the edge infrastructure.

The deployment validates the ability of the platform to host real-time data processing workloads, demonstrating the suitability of LXD and Canonical Kubernetes for edge environments.

Edge Application Architecture

The edge workload architecture consists of multiple components running as Kubernetes services.

Each component runs as a containerized service orchestrated by Kubernetes.

Workload Components

The example deployment includes the following microservices:

Component

Function

IoT Data Generator

Simulates sensor data streams

Edge Processing Service

Processes incoming data

AI Inference Service

Performs basic analysis

API Gateway

Exposes results

Monitoring Service

Observes application metrics

These services collectively represent a simplified edge analytics pipeline.

Kubernetes Deployment Model

The application is deployed using Kubernetes deployments and services.

This microservices architecture allows each service to scale independently.

Step 1 - Create Namespace

Create a dedicated namespace for the edge workload.

kubectl create namespace edge-workload

Namespaces isolate workloads and simplify cluster management.

Step 2 - Deploy IoT Data Generator

The IoT data generator simulates device telemetry.

Create the deployment:

kubectl create deployment iot-simulator \

--image=nginx \

-n edge-workload

Verify deployment:

kubectl get pods -n edge-workload

Expected output:

iot-simulator-xxxx Running

Step 3 - Deploy Edge Processing Service

Deploy a service that processes incoming IoT data.

kubectl create deployment edge-processor \

--image=python:3.11 \

-n edge-workload

This container represents an edge analytics service.

Step 4 - Deploy AI Inference Service

The AI service performs local data analysis.

kubectl create deployment ai-inference \

--image=python:3.11 \

-n edge-workload

In real deployments, this service would run models such as:

●     object detection

●     anomaly detection

●     predictive maintenance

Step 5 - Deploy API Gateway

Expose the edge processing results through a service endpoint.

kubectl expose deployment edge-processor \

--type=NodePort \

--port=80 \

-n edge-workload

Verify service:

kubectl get svc -n edge-workload

Example output:

edge-processor NodePort 80:30080/TCP

The application can now be accessed via the node IP and assigned NodePort.

Workload Validation

Confirm that all services are running:

kubectl get pods -n edge-workload

Example output:

iot-simulator Running edge-processor Running ai-inference Running

This confirms that the edge workload pipeline is operational.

Edge Processing Workflow

Once deployed, the application workflow proceeds as follows:

●     IoT devices generate telemetry data

●     Data is ingested by the processing service

●     AI inference analyzes the data

Results are exposed through an API endpointThis architecture enables real-time decision making at the edge.

Benefits of Edge Kubernetes Deployment

Running AI and IoT workloads locally provides several advantages.

Reduced Latency

Data processing occurs close to the source, enabling near real-time response.

Lower Network Utilization

Only processed results need to be transmitted to central systems.

Improved Reliability

Applications continue operating even when cloud connectivity is interrupted.

Scalability

Kubernetes enables dynamic scaling of edge workloads.

Edge Platform Operational Benefits

Deploying Kubernetes workloads on LXD VMs provides several operational advantages:

●     rapid workload deployment

●     efficient infrastructure utilization

●     simplified cluster management

●     dynamic workload scaling

The platform enables a consistent application deployment model across edge, data center, and cloud environments.

Design Considerations

When deploying AI or IoT workloads at the edge, the following factors should be considered.

Resource Allocation

Ensure sufficient CPU and memory are available for inference workloads.

Data Retention

Edge systems should implement policies for data storage and rotation.

Security

Secure communication between IoT devices and edge services.

Network Segmentation

Isolate operational technology (OT) networks from enterprise IT networks.

Validation Summary

The edge workload deployment successfully validated the following capabilities:

Validation Test

Result

Kubernetes workload deployment

Successful

Service exposure

Successful

Multi-service architecture

Operational

Edge processing pipeline

Functional

Kubernetes + LXD VM Integration

Cisco Unified Edge – Container Orchestration Architecture

This section describes the validated integration model between a MicroCloud-based infrastructure platform and Canonical Kubernetes. In this architecture, LXD provides infrastructure-level virtualization and resource isolation, while Kubernetes provides container orchestration and application lifecycle management.

Architecture Overview

In an integrated deployment:

●     Each Unified Edge node runs Ubuntu

●     LXD provides container/VM hosting

●     Kubernetes runs on top of LXD nodes

●     Ceph (optional) provides shared storage

●     Workloads are orchestrated by Kubernetes

Two primary models are supported.

Supported Integration Models

Kubernetes Directly on Host

Ubuntu Host
   ├── LXD (for system containers / VMs)
   └── Kubernetes (container runtime = containerd)

Description

Kubernetes runs directly on the host OS.
LXD is used only for:

●     Infrastructure containers

●     Edge microservices

●     Legacy workloads

●     VM hosting

Advantages

●     Clean separation of orchestration layers

●     Best performance

●     Lower networking complexity

●     Simplified troubleshooting

Position

Supported for lab or CI environments, not recommended for production Unified Edge.

Recommended Production Deployment Flow

Step 1 — Prepare All Nodes

On every node:

snap install lxd

Ensure:

sysctl net.ipv4.ip_forward
sysctl net.bridge.bridge-nf-call-iptables

Return value = 1

Step 2 — Install Canonical Kubernetes

On all nodes:

sudo snap install k8s --classic --channel=1.35-classic/stable

Initialize the control plane on node1:

sudo k8s bootstrap

sudo k8s status --wait-ready

Generate join tokens for the remaining nodes from node1:

sudo k8s get-join-token <control-plane-node-name>

sudo k8s get-join-token <worker-node-name> --worker

Join each additional node with its token:

sudo k8s join-cluster <join-token>

Step 3 — Install CNI Plugin

Example (Flannel):

kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml

Step 4 — Join Worker Nodes

On each worker node:

sudo k8s join-cluster <worker-join-token>

Networking Design Considerations

Avoid CIDR overlap:

Component

Example CIDR

LXD bridge

10.132.0.0/24

Kubernetes Pod CIDR

10.244.0.0/16

Kubernetes Service CIDR

10.96.0.0/12

●     Management VLAN

●     Storage VLAN

●     Enterprise LAN

Ceph + Kubernetes Integration

If MicroCeph is enabled in LXD cluster:

Install Ceph CSI driver:

kubectl apply -f ceph-csi-rbd.yaml

Create StorageClass:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: ceph-rbd
provisioner: rbd.csi.ceph.com
parameters:
  pool: cephpool

Now persistent volumes are shared across nodes.

High Availability Behavior

With:

●     MicroCloud multi-node platform

●     Kubernetes control plane HA

●     Ceph distributed storage

The system supports:

●     Pod rescheduling

●     Node failure tolerance

●     Stateful workloads

●     Storage replication

Production Security Model

Recommended controls:

●     Firewall restrict LXD API (8443)

●     Firewall restrict Kubernetes API (6443)

●     Enable RBAC

●     Disable anonymous access

●     Encrypt etcd

Performance Considerations

●     Containerd recommended runtime

●     Avoid running Kubernetes inside LXD VMs

●     Dedicated CPU pinning optional

●     Memory reservations recommended

Failure Scenario Example

If Node 2 fails:

●     Kubernetes marks node NotReady

●     Pods rescheduled to Node 1 or 3

●     Ceph ensures persistent volume availability

Recommended Architecture Position

For Cisco Unified Edge:

Deployment Size

Recommended Model

Single node

Kubernetes on host

3-node HA

Kubernetes on host + Ceph

Industrial HA

Kubernetes + Ceph

AI cluster

Kubernetes + Ceph

Avoid:

●     Nested Kubernetes inside LXD for production

Summary

In production Unified Edge deployments, Kubernetes should run directly on the host operating system, while LXD provides infrastructure-level virtualization for system containers and VM workloads. When combined with Ceph distributed storage, this architecture provides high availability, workload mobility, and scalable edge orchestration.

Standalone versus MicroCloud Deployment

This section compares standalone and MicroCloud deployment models to help determine the appropriate architecture for edge workload requirements.

Table 16.       Architectural Comparison

Category

Standalone LXD

MicroCloud

Number of Nodes

Single node

2+ nodes (3 recommended)

High Availability

No

Yes (with MicroCeph)

Workload Migration

Not supported

Supported (with MicroCeph)

Storage Model

Local storage only

Local or distributed storage

Cluster Database

Not required

Integrated distributed services

API Exposure

Local only

Platform-wide management

Operational Complexity

Low

Medium to High

Resource Overhead

Minimal

Higher

Network Requirements

Basic

Static IP + multicast/network coordination

Failure Tolerance

Node failure = workload loss

Workloads can recover across nodes

Table 17.       Storage Capabilities

Feature

Standalone

MicroCloud

Local dir backend

Yes

Yes

ZFS backend

Yes

Yes

MicroCeph distributed storage

No

Yes

Shared persistent volumes

No

Yes

Live container migration

No

MicroCeph required

Table 18.       Edge Workload Suitability

Deployment Type

Standalone

MicroCloud

Small retail site

Recommended

Not required

Industrial gateway

Recommended

Optional

AI inference node

Yes

Optional

Regional edge aggregation

No

Recommended

High availability edge

No

Required

Stateful applications

Limited

Recommended

Table 19.       Operational Considerations

Factor

Standalone

MicroCloud

Setup time

Fast

Moderate

Maintenance complexity

Low

Higher

Upgrade coordination

Single node

Coordinated across nodes

Monitoring requirements

Basic

Platform-aware

Backup strategy

Per-node

Distributed platform-aware backup

Network dependency

Low

High

Table 20.       Failure Behavior

Scenario

Standalone

MicroCloud Without MicroCeph

MicroCloud With MicroCeph

Single node failure

All workloads lost

Workloads lost

Workloads recoverable

Storage failure

Workloads lost

Workloads lost

Data replicated

Control plane failure

N/A

Platform degraded

Platform remains operational

Table 21.       Resource Impact

Component

Standalone

MicroCloud

CPU overhead

Low

Moderate

Memory overhead

Low

Higher

Storage overhead

Minimal

Replication overhead

Network overhead

Low

Storage replication traffic

Standalone LXD versus MicroCloud versus Kubernetes-Only

This section compares three validated deployment models available for Unified Edge environments. The selection depends on workload type, availability requirements, operational complexity tolerance, and scalability needs.

Table 22.       Architecture Overview

Model

Description

Standalone LXD

Single-node LXD deployment hosting containers and/or VMs locally

MicroCloud

Multi-node Canonical edge cloud platform integrating LXD, MicroOVN, and optional MicroCeph

Kubernetes-Only

Kubernetes running directly on host OS without LXD abstraction

Table 23.       Core Capability Comparison

Capability

Standalone LXD

MicroCloud

Kubernetes-Only

Multi-node support

No

Yes

Yes

High Availability

No

Yes (with MicroCeph)

Yes

Workload Orchestration

Limited

Limited

Advanced

Auto Rescheduling

No

Partial

Yes

Stateful Workloads

Limited

Yes (with MicroCeph)

Yes

Live Migration

No

MicroCeph required

Pod rescheduling

VM Support

Yes

Yes

No

Container Density

High

High

High

Infrastructure Isolation

Strong

Strong

Moderate

Operational Complexity

Low

Medium/High

Medium

Table 24.       Storage Model Comparison

Storage Feature

Standalone LXD

MicroCloud

Kubernetes-Only

Local dir backend

Yes

Yes

Yes

ZFS backend

Yes

Yes

Optional

Distributed storage

No

Yes

Yes (using CSI backend)

Persistent Volumes

Limited

Yes

Yes

Shared Storage Across Nodes

No

Yes

Yes

Table 25.       Networking Complexity

Networking Aspect

Standalone

MicroCloud

Kubernetes-Only

NAT Bridge

Yes

Yes

N/A

Overlay Network

No

Yes

Yes

CNI Plugin Required

No

No for infrastructure layer

Yes

Static IP Requirement

No

No

No

Port Requirements

Minimal

Platform networking requirements

6443 + CNI

Table 26.       Edge Deployment Suitability

Deployment Scenario

Standalone LXD

MicroCloud

Kubernetes-Only

Retail single store

Recommended

No

Optional

Small branch office

Yes

No

Optional

Industrial gateway

Yes

Optional

Yes

Regional edge aggregation

No

Recommended

Recommended

AI inference cluster

Yes

Yes

Recommended

High availability site

No

Yes

Yes

Microservices-heavy workloads

Limited

Limited

Recommended

Table 27.       Failure Behavior

Failure Scenario

Standalone

MicroCloud Without MicroCeph

MicroCloud With MicroCeph

Kubernetes-Only

Node failure

All workloads lost

Workloads lost

Recoverable

Pods rescheduled

Storage failure

Data loss

Data loss

Replicated

Depends on backend

Control plane failure

N/A

Platform degraded

Platform degraded

HA control plane required

Table 28.       Resource and Operational Impact

Factor

Standalone

MicroCloud

Kubernetes-Only

Memory overhead

Low

Medium/High

Medium

CPU overhead

Low

Medium

Medium

Storage overhead

Minimal

High (replication)

Moderate

Upgrade coordination

Simple

Coordinated

Coordinated

Skill requirement

Basic Linux

Advanced Linux

Kubernetes expertise

Full High Availability Edge Architecture

Architecture Overview

The full HA architecture consists of three or more Cisco Unified Edge nodes forming a clustered infrastructure that integrates:

●     MicroCloud (infrastructure platform)

●     MicroCeph distributed storage

●     Kubernetes HA control plane

●     Segmented networking for management, storage, and data

This architecture ensures workload continuity, storage resilience, and application-level high availability in edge environments.

Logical Architecture Layers

The following diagram illustrates a layered format.

Related image, diagram or screenshot

Layer 1 - Physical Layer (Cisco Unified Edge Nodes)

Minimum recommended:

●     3 Unified Edge nodes

●     Dedicated OS disk

●     Dedicated MicroCeph storage disk per node

●     Redundant network interfaces

Each node runs:

●     Ubuntu Server 24.04.4 LTS

●     MicroCloud components

●     Containerd

●     Kubernetes components

●     MicroCeph OSD

Layer 2 - Networking Segmentation

The architecture includes three logical networks:

Network

Purpose

Example

Management VLAN

MicroCloud and Kubernetes API

192.168.10.0/24

Storage VLAN

MicroCeph replication traffic

192.168.30.0/24

Data VLAN

Application traffic

192.168.50.0/24

Separation ensures:

●     MicroCeph replication does not affect application traffic

●     Platform communication remains stable

●     Traffic isolation improves security posture

Layer 3 - MicroCloud Infrastructure Layer

MicroCloud runs across all nodes and integrates:

●     LXD for compute

●     MicroOVN for networking

●     Optional MicroCeph for storage

Platform characteristics:

●     Integrated distributed services

●     Shared trust model

●     Centralized control

●     Optional VM hosting

●     Infrastructure container support

This layer provides infrastructure abstraction.

Layer 4 - MicroCeph Distributed Storage Layer

MicroCeph provides shared block storage across nodes.

Each node contributes:

●     One OSD disk

MicroCeph characteristics:

●     Replication factor = 3

●     Data distributed across nodes

●     No single storage point of failure

●     Persistent volumes remain available during node failure

●     MicroCeph traffic runs on the dedicated storage VLAN.

Layer 5 - Kubernetes HA Control Plane

Kubernetes runs directly on host OS or on top of the MicroCloud-managed platform, depending on the validated deployment model.

Control plane configuration:

●     3 control-plane nodes

●     etcd quorum across nodes

●     CNI overlay network

●     Pod CIDR separate from LXD CIDR

Example:

Component

CIDR

LXD Bridge

10.132.0.0/24

Kubernetes Pod CIDR

10.244.0.0/16

Kubernetes Service CIDR

10.96.0.0/12

Kubernetes provides:

●     Pod scheduling

●     Self-healing

●     Rolling updates

●     Auto rescheduling

●     Failure Scenarios Explained

Scenario 1 - Single Node Failure

If Node 2 fails:

●     MicroCeph rebalances data

●     Kubernetes marks node NotReady

●     Pods are rescheduled to Node 1 or 3

●     Persistent volumes remain accessible

●     No data loss occurs.

Scenario 2 - MicroCeph OSD Failure

If a storage disk fails:

●     MicroCeph marks the OSD down

●     Data is replicated from remaining copies

●     The cluster remains operational

Scenario 3 - Control Plane Failure

If one control plane node fails:

●     etcd quorum is maintained

●     API remains available

●     The cluster continues operating

Scenario 4 - Network Partition

If the storage VLAN is disrupted:

●     MicroCeph may degrade

●     Write performance may be impacted

●     The cluster remains partially functional

●     Network recovery is required

Traffic Flow Description

Container Startup Flow

●     User deploys application via Kubernetes

●     Scheduler selects available node

●     Container runtime launches container

●     Persistent volume is provisioned through MicroCeph CSI

●     Pod receives overlay IP from CNI

●     Traffic flows through the data VLAN

MicroCeph Replication Flow

●     Write request sent to MicroCeph pool

●     Data written to primary OSD

●     Replicated to secondary and tertiary OSDs

●     Acknowledgment returned after replication quorum

Table 29.       Resource Isolation Model

Layer

Responsibility

Ubuntu

Kernel and system services

MicroCloud

Integrated infrastructure abstraction

Kubernetes

Application orchestration

MicroCeph

Distributed storage

CNI

Pod networking

Each layer operates independently but integrates through defined interfaces.

Table 30.       High Availability Characteristics Summary

Feature

Supported

Node failure tolerance

Yes

Storage replication

Yes

Control plane HA

Yes

Live container rescheduling

Yes

Stateful workload protection

Yes

Zero single point of failure

Yes

Operational Considerations

●     Requires 3-node minimum

●     Requires static IP addressing

●     Requires storage VLAN

●     Higher memory consumption

●     Requires coordinated upgrades

●     Monitoring must include MicroCeph and Kubernetes

Recommended Deployment Scenarios

●     Full HA architecture is recommended for:

●     industrial edge with strict uptime requirements

●     Regional edge aggregation sites

●     AI inference clusters

●     Edge data processing clusters

●     Smart city deployments

Not recommended for:

●     Small retail sites

●     Single-node edge

●     Stateless micro-branch workloads

Summary

The full high-availability Unified Edge architecture integrates MicroCloud, MicroCeph distributed storage, and Kubernetes orchestration to eliminate single points of failure. This design ensures workload continuity, data resilience, and scalable orchestration while maintaining clear separation between infrastructure and application layers.

Canonical Kubernetes Installation for Edge Deployments

Edge deployments vary significantly depending on site size and workload requirements. The recommended Kubernetes architecture should match the operational requirements of the edge environment.

Edge Environment

Recommended Canonical Kubernetes Model

Small single-node edge

Single control-plane node

Industrial high-availability edge

Three-node HA control plane

Regional aggregation edge

Three or more nodes with distributed storage

Small branch locations often require minimal infrastructure, while larger industrial deployments require high availability and persistent storage capabilities.

Pre-Installation Requirements (All Nodes)

Before installing Canonical Kubernetes, the operating system must be prepared to support container runtime operations and cluster networking.

Disable Swap

Swap should be disabled for Kubernetes nodes to avoid scheduling and memory-management issues.

Disable swap immediately:

sudo swapoff -a

Disable swap permanently:

sudo sed -i '/ swap / s/^/#/' /etc/fstab

Install Canonical Kubernetes

Install Canonical Kubernetes on all nodes using the k8s snap:

sudo snap install k8s --classic --channel=1.35-classic/stable

This installs the Kubernetes components required for both control-plane and worker nodes.

Single-Node Edge Deployment

Single-node Kubernetes deployments are suitable for small retail sites, branch offices, or lightweight edge compute locations.

Bootstrap the cluster on the node:

sudo k8s bootstrap

sudo k8s status --wait-ready

Verify the node is ready:

sudo k8s kubectl get nodes

In single-node deployments, workloads run on the same node that hosts the control plane.

Multi-Node High Availability Deployment

For production edge environments requiring higher resilience, a multi-node Canonical Kubernetes cluster is recommended.

A typical high-availability architecture includes three control-plane nodes.

Step 1 - Bootstrap the First Control Plane

On node1:

sudo k8s bootstrap

sudo k8s status --wait-ready

This initializes the cluster and brings up the first control-plane node.

Step 2 - Join Additional Control Plane Nodes

On node1, generate join tokens for the additional control-plane nodes:

sudo k8s get-join-token node2

sudo k8s get-join-token node3

On node2 and node3, join the cluster using the generated tokens:

sudo k8s join-cluster <join-token>

These nodes participate in the control plane and help maintain cluster quorum.

Step 3 - Join Worker Nodes

Generate worker join tokens on an existing control-plane node:

sudo k8s get-join-token worker1 --worker

sudo k8s get-join-token worker2 --worker

On each worker node, join the cluster:

sudo k8s join-cluster <worker-join-token>

Worker nodes host the application workloads.

Cluster Networking

Canonical Kubernetes deploys its networking components as part of the cluster bootstrap process. Network ranges used by Kubernetes must not conflict with existing infrastructure networks.

Example recommended CIDR layout:

Component

Example Network

LXD bridge

10.132.0.0/24

Pod CIDR

10.244.0.0/16

Service CIDR

10.96.0.0/12

Management VLAN

192.168.10.0/24

Careful network planning prevents routing conflicts and connectivity issues.

Distributed Storage Integration (Optional)

Stateful applications require persistent storage that remains available even if nodes fail.

For edge environments requiring resilient storage, distributed storage such as MicroCeph or another CSI-backed platform can be integrated with Canonical Kubernetes.

Example StorageClass structure:

kind: StorageClass

apiVersion: storage.k8s.io/v1

metadata:

name: ceph-rbd

provisioner: rbd.csi.ceph.com

Distributed storage ensures persistent volumes remain available across cluster nodes.

Edge Security Hardening

Production Kubernetes clusters should implement several security controls.

Recommended practices include:

●     Enable Role-Based Access Control (RBAC)

●     Restrict Kubernetes API access to the management VLAN

●     Apply firewall rules for API access on port 6443

●     Enable Kubernetes audit logging

●     Limit administrative access to trusted operators

These measures help protect cluster infrastructure and workloads.

Edge Failure Behavior

Canonical Kubernetes provides automated recovery mechanisms.

If a worker node fails:

●     pods are rescheduled

●     services remain available

Persistent volumes remain accessible when using distributed storageIf a control-plane node fails in a three-node cluster:

●     Quorum remains intact

●     The cluster continues operating normally

Cluster Validation

Verify cluster health.

Check nodes:

sudo k8s kubectl get nodes

Check system pods:

sudo k8s kubectl get pods -A

Deploy a sample workload:

sudo k8s kubectl create deployment nginx --image=nginx

sudo k8s kubectl expose deployment nginx --type=NodePort --port=80

This confirms cluster scheduling and service networking.

Table 31.       Recommended Deployment Model for Unified Edge

Edge Deployment Type

Recommended Architecture

Small retail edge

Single-node cluster

Industrial HA edge

Three-node control plane

AI processing cluster

Three-node cluster with distributed storage

Regional aggregation edge

HA Kubernetes cluster with distributed storage

Selecting the appropriate architecture depends on workload criticality and site scale.

Summary

For production deployments on Cisco Unified Edge platforms, Canonical Kubernetes can be installed directly on the host operating system using the k8s snap.

Single-node deployments are well suited for small edge environments, while three-node high-availability clusters combined with distributed storage provide resilient orchestration capabilities for mission-critical edge workloads.

This architecture allows organizations to deploy cloud-native applications at the edge while maintaining scalability, operational control, and infrastructure resilience.

Single-Node MicroCloud Deployment

This section describes the deployment of MicroCloud on a single Cisco Unified Edge server running Ubuntu Server 24.04.4 LTS. MicroCloud is an integrated edge cloud platform that combines compute, networking, and storage services into a unified system.

A single-node MicroCloud deployment is commonly used for:

●     Edge lab validation

●     Development environments

●     Proof-of-concept (PoC) deployments

●     Platform familiarization

While production environments typically require three or more nodes for high availability, a single-node deployment provides a simplified environment to understand MicroCloud architecture, service integration, and operational workflows.

The deployment installs and integrates the following services:

Component

Function

LXD

Container and virtual machine runtime

MicroOVN

Software-defined networking

MicroCeph

Distributed storage services

MicroCloud

Orchestration and lifecycle management

Architecture

The deployment follows a layered architecture model:

Related image, diagram or screenshot

This architecture provides a lightweight private cloud platform capable of running containerized and virtualized workloads directly at the edge.

Network Requirements

Two network interfaces are required to separate internal platform communication from external access:

Interface

Purpose

Internal Network

MicroCloud service communication

Uplink Network

External connectivity

The uplink network must support broadcast and multicast traffic, which is required for MicroCloud networking services.

Step 1 – Prepare Ubuntu Server

Update system packages to ensure the system is up to date.

sudo apt update && sudo apt upgrade -y

Set a hostname for the node.

sudo hostnamectl set-hostname edge-node1

Verify the hostname configuration.

hostnamectl

A consistent hostname is required for proper service identification within the platform.

Step 2 – Install MicroCloud Components

Install the required MicroCloud services using snap packages.

sudo snap install lxd --channel=5.21/stable
sudo snap install microceph --channel=squid/stable
sudo snap install microovn --channel=24.03/stable
sudo snap install microcloud --channel=2/stable

The cohort flag ensures version compatibility across nodes if the environment is later expanded into a multi-node cluster.

Step 3 – Hold Snap Updates

Pause automatic snap updates to maintain version consistency.

sudo snap refresh lxd microceph microovn microcloud --hold

This prevents unintended version mismatches between cluster services.

Step 4 – Initialize MicroCloud

Start the initialization process.

sudo microcloud init

The initialization process will guide you through configuration of networking, storage, and cluster setup.

Step 5 – Configure Cluster Membership

When prompted:

Do you want to set up more than one cluster member?

Select:

no

This configures MicroCloud in single-node mode, suitable for lab and development environments.

Step 6 – Configure Internal Network

MicroCloud automatically detects available interfaces and assigns an internal address.

Example:

Using address 10.132.0.15 for MicroCloud

This IP address is used for communication between MicroCloud services.

Step 7 – Configure Uplink Network

Select the interface providing external connectivity.

Example:

eno1np0

Provide the gateway:

10.132.0.1/24

Define the IP range for containers and virtual machines:

First IP: 10.132.0.200
Last IP: 10.132.0.250

This range will be used for dynamically assigned workload IP addresses.

Step 8 – Complete Initialization

MicroCloud initializes and configures all platform services.

Example output:

Initializing new services ...

Local MicroCloud is ready
Local MicroOVN is ready
Local MicroCeph is ready
Local LXD is ready

MicroCloud is ready

At this stage, the platform is fully operational.

Step 9 – Verify Deployment

Check MicroCloud status.

microcloud status

Example output:

Name        Address
edge-node1  10.132.0.15

This confirms successful initialization.

Step 10 – Verify LXD Environment

Verify that LXD is operational.

lxc cluster list

Example output:

+-----------+--------------------------+
| NAME      | URL                      |
+-----------+--------------------------+
| edge-node1| https://10.132.0.15:8443 |
+-----------+--------------------------+

Even in single-node mode, LXD operates with cluster capabilities enabled.

Step 11 – Deploy Test Container

Launch a test container to validate the environment.

lxc launch ubuntu:24.04.4 test-container

Verify container status.

lxc list

Example output:

NAME           STATE    IPV4
test-container RUNNING  10.200.10.5

This confirms that the compute platform is functioning correctly.

Step 12 – Access Web Interface

LXD provides a built-in web interface for management.

Open in browser:

https://<server-ip>:8443

Example:

https://10.132.0.15:8443

Use the current LXD web UI authentication flow documented for the validated LXD release. Generate the required access token or trust relationship using the latest LXD UI procedure for your environment.

Use the token to log in using the web interface.

Table 32.       Validation

Test

Expected Result

MicroCloud initialization

Successful

LXD service status

Running

Container deployment

Successful

Web UI access

Functional

Figure 9.       Resulting Edge Platform

Related image, diagram or screenshot

Summary

This deployment provides a lightweight private cloud platform for edge workloads, enabling rapid container and virtual machine deployment with integrated networking and storage.

Although this setup is designed for lab and development environments, it can be expanded into a multi-node MicroCloud cluster to support:

●     high availability

●     distributed storage

●     workload migration

●     scalable edge infrastructure

Multi-Node MicroCloud Deployment - 3-Node HA Cluster

This section describes the deployment of a highly available Kubernetes cluster on a 3-node MicroCloud platform running on Cisco Unified Edge servers.

 In this architecture:

●     MicroCloud provides the infrastructure layer

●     LXD hosts Kubernetes nodes as containers

●     MicroOVN enables cross-node networking

●     Canonical Kubernetes orchestrates workloads

A 3-node Kubernetes deployment ensures:

●     Control plane quorum

●     Improved fault tolerance

●     Distributed workload execution

●     High availability for edge applications

This architecture is suitable for:

●     Industrial edge platforms

●     AI inference clusters

●     Real-time analytics systems

●     Mission-critical microservices

Architecture

Figure 10 illustrates the Cisco Unified Edge Cluster architecture.

Figure 10.    Cisco Unified Edge Cluster (3 Nodes)

Related image, diagram or screenshot

Cisco Unified Edge Cluster (3 Nodes)

Architecture Characteristics

●     Kubernetes control plane distributed across 3 nodes

●     LXD VMs act as Kubernetes nodes

●     OVN overlay networking enables cross-node communication

●     Kubernetes scheduler distributes workloads

●     No single point of failure

Table 33.       Prerequisites

Requirement

Status

MicroCloud 3-node cluster deployed

Yes

LXD cluster operational

Yes

MicroOVN networking configured

Yes

Cross-node connectivity verified

Yes

Verify:

lxc cluster list

Step 1 - Create Kubernetes Node Containers

Deploy Kubernetes nodes as LXD VMs across all nodes.

Control plane nodes:

lxc launch ubuntu:24.04.4 k8s-control-1 --target node1

lxc launch ubuntu:24.04.4 k8s-control-2 --target node2

lxc launch ubuntu:24.04.4 k8s-control-3 --target node3

Worker nodes:

lxc launch ubuntu:24.04.4 k8s-worker1 --target node1

lxc launch ubuntu:24.04.4 k8s-worker2 --target node2

Verify:

lxc list

Step 2 - Install Canonical Kubernetes on First Control Plane

lxc exec k8s-control-1 -- bash

sudo snap install k8s --classic --channel=1.35-classic/stable

sudo k8s bootstrap

sudo k8s status --wait-ready

If DNS or local storage were disabled during bootstrap customization, enable them explicitly:

sudo k8s enable dns

sudo k8s enable local-storage

Step 3 - Generate Join Tokens

On k8s-control-1, generate tokens for the remaining nodes:

sudo k8s get-join-token k8s-control-2

sudo k8s get-join-token k8s-control-3

sudo k8s get-join-token k8s-worker1 --worker

sudo k8s get-join-token k8s-worker2 --worker

This produces join tokens for control-plane and worker nodes.

Step 4 - Join Additional Control Plane Nodes

On k8s-control-2:

lxc exec k8s-control-2 -- bash

sudo snap install k8s --classic --channel=1.35-classic/stable

sudo k8s join-cluster <control-plane-token-for-k8s-control-2>

On k8s-control-3:

lxc exec k8s-control-3 -- bash

sudo snap install k8s --classic --channel=1.35-classic/stable

sudo k8s join-cluster <control-plane-token-for-k8s-control-3>

Step 5 - Join Worker Nodes

On k8s-worker1:

lxc exec k8s-worker1 -- bash

sudo snap install k8s --classic --channel=1.35-classic/stable

sudo k8s join-cluster <worker-token-for-k8s-worker1>

On k8s-worker2:

lxc exec k8s-worker2 -- bash

sudo snap install k8s --classic --channel=1.35-classic/stable

sudo k8s join-cluster <worker-token-for-k8s-worker2>

Step 6 - Verify Kubernetes Cluster

On the first control plane node:

lxc exec k8s-control-1 -- bash

sudo k8s kubectl get nodes

Expected:

NAME          STATUS ROLES

k8s-control-1 Ready  control-plane,worker

k8s-control-2 Ready  control-plane,worker

k8s-control-3 Ready  control-plane,worker

k8s-worker1   Ready  worker

k8s-worker2   Ready  worker

Step 7 - Deploy Test Application

sudo k8s kubectl create deployment nginx --image=nginx

sudo k8s kubectl scale deployment nginx --replicas=3

Verify distribution:

sudo k8s kubectl get pods -o wide

Pods should run on different nodes.

Step 8 - Expose Application

sudo k8s kubectl expose deployment nginx --type=NodePort --port=80

sudo k8s kubectl get svc

Access:

curl http://<node-ip>:<nodeport>

Table 34.       High Availability Behavior

Failure Scenario

Behavior

Single control plane failure

Cluster continues

Worker node failure

Pods rescheduled

Container failure

Restarted automatically

Network disruption

OVN maintains connectivity

Production Recommendations

●     Use kube-vip for a stable API endpoint

●     Use MicroCeph for persistent storage

●     Separate management and storage networks

●     Enable monitoring and logging

●     Avoid CIDR overlap between the LXD network, pod network, and service network

Table 35.       Validation Summary

Component

Status

Control plane HA

Yes

Worker nodes joined

Yes

Pod scheduling

Yes

Cross-node communication

Yes

Application access

Yes

Summary

A 3-node Kubernetes cluster was successfully deployed on MicroCloud, providing:

●     High availability control plane

●     Distributed workload execution

●     Resilient edge infrastructure

●     Scalable Kubernetes platform

This architecture forms a production-ready edge cloud solution capable of supporting mission-critical workloads in distributed environments.

Multi-Node Kubernetes Cluster Deployment using Canonical Kubernetes

This section describes the deployment of a multi-node Kubernetes cluster using Canonical Kubernetes running on Cisco Unified Edge systems.

A multi-node Kubernetes architecture provides high availability, workload distribution, and improved fault tolerance for applications running in edge environments. By distributing Kubernetes nodes across multiple hosts, the platform can continue operating even if individual nodes experience failures.

Canonical Kubernetes is a lightweight, production-ready Kubernetes distribution developed by Canonical and optimized for edge and resource-constrained environments. It offers a simplified operational model while maintaining compatibility with standard Kubernetes APIs and tooling.

In this validated deployment architecture, each Kubernetes node runs on infrastructure distributed across multiple Cisco Unified Edge hosts. This design provides:

●     Infrastructure isolation

●     Flexible workload placement

●     Efficient resource utilization

●     Rapid node provisioning

The architecture allows organizations to deploy cloud-native workloads directly at the edge while maintaining centralized orchestration capabilities.

Figure 11.    Architecture Overview

Related image, diagram or screenshot

The Kubernetes cluster runs across multiple Cisco Unified Edge systems with Ubuntu Server 24.04.4 LTS as the operating system foundation.

This design ensures that Kubernetes nodes are distributed across multiple physical systems, improving resiliency and enabling workload failover capabilities.

Kubernetes Node Layout

Table 36 lists the node layout used in this validated deployment.

Table 36.       Kubernetes Node Layout

Node

Role

Host Node

k8s-control-plane1

Kubernetes control plane

node1

k8s-control-plane2

Kubernetes control plane

node2

k8s-control-plane3

Kubernetes control plane

node3

k8s-worker1

Worker node

node2

k8s-worker2

Worker node

node3

The control plane nodes manage cluster state, API availability, and scheduling decisions, while worker nodes execute application workloads.

Deploy Kubernetes Nodes

The Kubernetes nodes are deployed across the available Cisco Unified Edge hosts.

Create Control Plane Nodes

lxc launch ubuntu:24.04.4 k8s-control-plane1 -p default -p canonical-k8s --target node1

lxc launch ubuntu:24.04.4 k8s-control-plane2 -p default -p canonical-k8s --target node2

lxc launch ubuntu:24.04.4 k8s-control-plane3 -p default -p canonical-k8s --target node3

Create Worker Nodes

lxc launch ubuntu:24.04.4 k8s-worker1 -p default -p canonical-k8s --target node2

lxc launch ubuntu:24.04.4 k8s-worker2 -p default -p canonical-k8s --target node3

Verify Node Deployment

lxc list

Expected output:

Name

State

k8s-control-plane1

RUNNING

k8s-control-plane2

RUNNING

k8s-control-plane3

RUNNING

k8s-worker1

RUNNING

k8s-worker2

RUNNING

Install Canonical Kubernetes on the First Control Plane Node

Access the first control plane node:

lxc exec k8s-control-plane1 -- bash

Install Canonical Kubernetes:

snap install k8s --classic

Bootstrap the node:

sudo k8s bootstrap

sudo k8s status --wait-ready

This initializes the first control plane node and ensures Kubernetes services are running.

Install Canonical Kubernetes on Additional Nodes

Access each remaining node and install Canonical Kubernetes:

lxc exec k8s-control-plane2 -- bash

snap install k8s --classic

lxc exec k8s-control-plane3 -- bash

snap install k8s --classic

lxc exec k8s-worker1 -- bash

snap install k8s --classic

lxc exec k8s-worker2 -- bash

snap install k8s --classic

Join Additional Nodes to the Cluster

After the first control plane node is initialized, use Canonical Kubernetes cluster join procedures to add the remaining control plane and worker nodes.

Join the second and third control plane nodes to extend control plane quorum and high availability.

Join the worker nodes so they can host application workloads.

After all nodes join successfully, the cluster forms a distributed multi-node Kubernetes environment.

Verify Kubernetes Cluster

Return to the primary control plane node and verify cluster node status:

kubectl get nodes

Expected output:

Node

Status

k8s-control-plane1

Ready

k8s-control-plane2

Ready

k8s-control-plane3

Ready

k8s-worker1

Ready

k8s-worker2

Ready

The Kubernetes cluster is now operational.

Deploy Sample Application

To validate cluster scheduling and networking, deploy a sample nginx application:

kubectl create deployment nginx --image=nginx

Scale the deployment:

kubectl scale deployment nginx --replicas=3

Verify pod distribution:

kubectl get pods -o wide

Pods should be scheduled across multiple worker nodes.

Validate Service Access

Expose the nginx application as a Kubernetes service:

kubectl expose deployment nginx --type=NodePort --port=80

Check service information:

kubectl get svc

The application should now be accessible via the assigned NodePort using the IP address of any cluster node.

High Availability Benefits

Deploying Kubernetes across multiple nodes provides significant operational advantages.

Capability

Benefit

Control-plane quorum

Cluster survives single-node failure

Node redundancy

Workloads remain available during node failures

Horizontal scaling

Additional worker nodes can be added dynamically

Load distribution

Pods are scheduled across multiple nodes

Self-healing

Failed containers are automatically restarted

These capabilities significantly improve reliability and scalability for edge workloads.

Operational Considerations

For production deployments, the following practices are recommended:

●     Deploy three control-plane nodes for quorum-based high availability

●     Implement persistent storage solutions for stateful workloads

●     Define resource limits and quotas for workloads

●     Deploy monitoring and logging solutions for cluster observability

These practices ensure long-term stability and operational visibility of the Kubernetes platform.

Validation Summary

A multi-node Kubernetes cluster was successfully deployed using Canonical Kubernetes on Cisco Unified Edge infrastructure.

The following capabilities were validated:

Validation Test

Result

Kubernetes node deployment

Successful

Cluster formation

Successful

Multi-node workload scheduling

Successful

Service exposure via NodePort

Successful

The deployment demonstrates that Cisco Unified Edge platforms can host distributed Kubernetes clusters capable of orchestrating modern cloud-native workloads at the network edge.

High-Availability Kubernetes with kube-vip on MicroCloud Edge Cluster

This section describes the deployment of a high-availability Kubernetes control plane using kube-vip on a 3-node MicroCloud cluster running on Cisco Unified Edge servers.

In this architecture:

●     MicroCloud provides distributed infrastructure

●     LXD VMs host Kubernetes nodes

●     MicroOVN enables cross-node networking

●     kube-vip provides a Virtual IP (VIP) for API server high availability

The VIP acts as a single stable endpoint for the Kubernetes API server, ensuring uninterrupted access even if a control plane node fails.

Architecture Characteristics:

●     3 control-plane nodes for quorum

●     kube-vip provides floating VIP ownership

●     Leader election ensures VIP ownership

●     Automatic failover on node failure

●     No external load balancer required

Table 37.       Prerequisites

Requirement

Status

MicroCloud 3-node cluster

Yes

LXD cluster operational

Yes

MicroOVN networking configured

Yes

Cross-node connectivity validated

Yes

Kubernetes containers created

Yes

Verify:

lxc cluster list

Step 1 - Deploy Kubernetes Control Plane Containers

lxc launch ubun¸tu:24.04.4 k8s-control-1 --target node1

lxc launch ubuntu:24.04.4 k8s-control-2 --target node2

lxc launch ubuntu:24.04.4 k8s-control-3 --target node3

Optional workers:

lxc launch ubuntu:24.04.4 k8s-worker1 --target node1

lxc launch ubuntu:24.04.4 k8s-worker2 --target node2

Step 2 - Install Canonical Kubernetes and Form the Cluster

On k8s-control-1:

lxc exec k8s-control-1 -- bash

sudo snap install k8s --classic --channel=1.35-classic/stable

sudo k8s bootstrap sudo k8s status --wait-ready

Generate join tokens:

sudo k8s get-join-token k8s-control-2

sudo k8s get-join-token k8s-control-3

sudo k8s get-join-token k8s-worker1 --worker

sudo k8s get-join-token k8s-worker2 --worker

Join k8s-control-2 and k8s-control-3:

lxc exec k8s-control-2 -- bash

sudo snap install k8s --classic --channel=1.35-classic/stable

sudo k8s join-cluster <control-plane-token-for-k8s-control-2>

lxc exec k8s-control-3 -- bash

sudo snap install k8s --classic --channel=1.35-classic/stable

sudo k8s join-cluster <control-plane-token-for-k8s-control-3>

Join workers:

lxc exec k8s-worker1 -- bash

sudo snap install k8s --classic --channel=1.35-classic/stable

sudo k8s join-cluster <worker-token-for-k8s-worker1>

lxc exec k8s-worker2 -- bash

sudo snap install k8s --classic --channel=1.35-classic/stable

sudo k8s join-cluster <worker-token-for-k8s-worker2>

Step 3 - Deploy kube-vip

On k8s-control-1:

export VIP=10.132.0.200 export INTERFACE=eth0

sudo k8s kubectl apply -f https://kube-vip.io/manifests/rbac.yaml

sudo k8s kubectl apply -f kube-vip.yaml

The kube-vip deployment advertises the VIP and performs leader election across control-plane nodes.

Step 4 - Verify HA Cluster

sudo k8s kubectl get nodes

Expected:

k8s-control-1 Ready

k8s-control-2 Ready

k8s-control-3 Ready

Verify VIP:

ip a | grep 10.132.0.200

Step 5 - Validate Failover

Simulate failure:

lxc stop k8s-control-1

Verify:

sudo k8s kubectl get nodes

Expected behavior:

●     cluster remains accessible

VIP moves to another control plane node

Step 6 - Deploy Test Application

sudo k8s kubectl create deployment nginx --image=nginx

sudo k8s kubectl expose deployment nginx --type=NodePort --port=80

sudo k8s kubectl get svc

Table 38.       High Availability Behavior

Failure Scenario

Behavior

Control plane node failure

VIP moves automatically

API server failure

No downtime

Worker node failure

Pods rescheduled

Network interruption

OVN maintains connectivity

Table 39.       Validation Summary

Test

Result

Control plane HA

Yes

VIP active

Yes

API accessible via VIP

Yes

Failover working

Yes

Workload deployment

Yes

Benefits of HA Kubernetes at the Edge

●     No external load balancer required

●     Automatic control plane failover

●     Single stable API endpoint

●     Resilient infrastructure for edge workloads

●     Scalable Kubernetes deployment model

Production Recommendations

●     Always use a minimum of 3 control-plane nodes

●     Combine with MicroCeph for persistent storage

●     Use a dedicated network for storage traffic

●     Secure API server access on port 6443

●     Enable monitoring and logging

Summary

A high-availability Kubernetes cluster using kube-vip was successfully deployed on a MicroCloud platform. The solution provides a self-contained, resilient Kubernetes control plane optimized for edge environments without requiring external load balancers.

This architecture is ideal for:

●     industrial edge systems

●     AI/ML inference platforms

●     mission-critical distributed applications

About the authors

Ulrich Kleidon, Principal Engineer, UCS Solutions, Cisco Systems, Inc.

Ulrich is a Principal Engineer for the Cisco UCS solutions team and a lead architect for solutions around converged infrastructure stacks, enterprise applications, data protection, software-defined storage, and Hybrid-Cloud. He has over 25 years of experience designing, implementing, and operating solutions in the data center.

Vinayaka Shivanna, Technical Marketing Engineer, UCS Solutions, Cisco Systems, Inc.

Vinayaka is a Technical Marketing Engineer on the Cisco Compute team. He has over six years of experience in the technology industry. Vinayaka has a strong background as a Full-Stack developer and AI engineer, with hands-on expertise in building and delivering AI-driven solutions across multiple domains. At Cisco, Vinayaka focuses on showcasing and enabling innovative compute and infrastructure capabilities, including Cisco UCS and AI integrations.

Acknowledgements

For their support and contribution to the design, validation, and creation of this Cisco Validated Design, the authors would like to thank: 

●     Chris O’Brien, Director for Technical Marketing, UCS Solutions, Cisco Systems, Inc.

●     Miona Aleksic, Product Manager, MicroCloud, Canonical

●     Enrico Panetta, Alliance Field Engineer, Canonical

Appendix

This appendix contains the following:

●     Compute

●     Canonical

●     NVIDIA

●     Interoperability Matrix

Compute

Cisco Intersight: https://www.intersight.com

Cisco Intersight Managed Mode: https://www.cisco.com/c/en/us/td/docs/unified_computing/Intersight/b_Intersight_Managed_Mode_Configuration_Guide.html

Cisco Unified Edge and Canonical Ubuntu for Edge Deployments Design Guide: https://www.cisco.com/c/en/us/td/docs/unified_computing/ucs/UCS_documents/Cisco_Unified_Edge_and_Canonical_Ubuntu_for_Edge_Deployments_Design.html

Cisco Unified Edge At a Glance: https://www.cisco.com/c/en/us/products/collateral/servers-unified-computing/unified-edge/unified-edge-at-a-glance.html

Unified Edge Solution Overview: https://www.cisco.com/c/en/us/products/collateral/servers-unified-computing/unified-edge/unified-edge-solution-overview.html

Canonical

Canonical Kubernetes: https://documentation.ubuntu.com/canonical-kubernetes/latest/

Canonical MicroCloud: https://documentation.ubuntu.com/microcloud/v2-edge/microcloud/

Canonical LXD: https://documentation.ubuntu.com/microcloud/v2-edge/lxd/

Canonical MicroCeph: https://documentation.ubuntu.com/microcloud/v2-edge/microceph/

Canonical MicroOVN: https://documentation.ubuntu.com/microcloud/v2-edge/microovn/

Canonical Ubuntu Core: https://documentation.ubuntu.com/core/

Canonical Ubuntu Server: https://documentation.ubuntu.com/server/

NVIDIA

NVIDIA L4 GPU: https://www.nvidia.com/en-in/data-center/l4/

NVAIE: https://www.nvidia.com/en-in/data-center/products/ai-enterprise/

NVAIE Product Support Matrix: https://docs.nvidia.com/ai-enterprise/latest/product-support-matrix/index.html#support-matrix__suse-linux-enterprise-server

Interoperability Matrix

Cisco UCS Hardware Compatibility Matrix: https://ucshcltool.cloudapps.cisco.com/public/ 

CVD Program

ALL DESIGNS, SPECIFICATIONS, STATEMENTS, INFORMATION, AND RECOMMENDATIONS (COLLECTIVELY, "DESIGNS") IN THIS MANUAL ARE PRESENTED "AS IS," WITH ALL FAULTS. CISCO AND ITS SUPPLIERS DISCLAIM ALL WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OR ARISING FROM A COURSE OF DEALING, USAGE, OR TRADE PRACTICE. IN NO EVENT SHALL CISCO OR ITS SUPPLIERS BE LIABLE FOR ANY INDIRECT, SPECIAL, CONSEQUENTIAL, OR INCIDENTAL DAMAGES, INCLUDING, WITHOUT LIMITATION, LOST PROFITS OR LOSS OR DAMAGE TO DATA ARISING OUT OF THE USE OR INABILITY TO USE THE DESIGNS, EVEN IF CISCO OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

THE DESIGNS ARE SUBJECT TO CHANGE WITHOUT NOTICE. USERS ARE SOLELY RESPONSIBLE FOR THEIR APPLICATION OF THE DESIGNS. THE DESIGNS DO NOT CONSTITUTE THE TECHNICAL OR OTHER PROFESSIONAL ADVICE OF CISCO, ITS SUPPLIERS OR PARTNERS. USERS SHOULD CONSULT THEIR OWN TECHNICAL ADVISORS BEFORE IMPLEMENTING THE DESIGNS. RESULTS MAY VARY DEPENDING ON FACTORS NOT TESTED BY CISCO.

CCDE, CCENT, Cisco Eos, Cisco Lumin, Cisco Nexus, Cisco StadiumVision, Cisco TelePresence, Cisco WebEx, the Cisco logo, DCE, and Welcome to the Human Network are trademarks; Changing the Way We Work, Live, Play, and Learn and Cisco Store are service marks; and Access Registrar, Aironet, AsyncOS, Bringing the Meeting To You, Catalyst, CCDA, CCDP, CCIE, CCIP, CCNA, CCNP, CCSP, CCVP, Cisco, the Cisco Certified Internetwork Expert logo, Cisco IOS, Cisco Press, Cisco Systems, Cisco Systems Capital, the Cisco Systems logo, Cisco Unified Computing System (Cisco UCS), Cisco UCS B-Series Blade Servers, Cisco UCS C-Series Rack Servers, Cisco UCS S-Series Storage Servers, Cisco UCS X-Series, Cisco UCS Manager, Cisco UCS Management Software, Cisco Unified Fabric, Cisco Application Centric Infrastructure, Cisco Nexus 9000 Series, Cisco Nexus 7000 Series. Cisco Prime Data Center Network Manager, Cisco NX-OS Software, Cisco MDS Series, Cisco Unity, Collaboration Without Limitation, EtherFast, EtherSwitch, Event Center, Fast Step, Follow Me Browsing, FormShare, GigaDrive, HomeLink, Internet Quotient, IOS, iPhone, iQuick Study,  LightStream, Linksys, MediaTone, MeetingPlace, MeetingPlace Chime Sound, MGX, Networkers, Networking Academy, Network Registrar, PCNow, PIX, PowerPanels, ProConnect, ScriptShare, SenderBase, SMARTnet, Spectrum Expert, StackWise, The Fastest Way to Increase Your Internet Quotient, TransPath, WebEx, and the WebEx logo are registered trade-marks of Cisco Systems, Inc. and/or its affiliates in the United States and certain other countries. (LDW_P5)

All other trademarks mentioned in this document or website are the property of their respective owners. The use of the word partner does not imply a partnership relationship between Cisco and any other company. (0809R)

 

 

Related image, diagram or screenshot

Learn more