TECHNICAL FIELD

The disclosure relates to a virtualized computing infrastructure and, more specifically, to configuring network connectivity for a virtualized computing infrastructure.

BACKGROUND

In a typical cloud data center environment, there is a large collection of interconnected servers that provide computing and/or storage capacity to run various applications. For example, a data center may comprise a facility that hosts applications and services for subscribers, i.e., customers of data center. The data center may, for example, host all of the infrastructure equipment, such as networking and storage systems, redundant power supplies, and environmental controls. In a typical data center, clusters of storage systems and application servers are interconnected via high-speed switch fabric provided by one or more tiers of physical network switches and routers. More sophisticated data centers provide infrastructure spread throughout the world with subscriber support equipment located in various physical hosting facilities.

Virtualized data centers are becoming a core foundation of the modern information technology (IT) infrastructure. In particular, modern data centers have extensively utilized virtualized environments in which virtual hosts, also referred to herein as virtual execution elements, such virtual machines or containers, are deployed and executed on an underlying compute platform of physical computing devices.

Virtualization within a data center can provide several advantages. One advantage is that virtualization can provide significant improvements to efficiency. As the underlying physical computing devices (i.e., servers) have become increasingly powerful with the advent of multicore microprocessor architectures with a large number of cores per physical CPU, virtualization becomes easier and more efficient. A second advantage is that virtualization provides significant control over the computing infrastructure. As physical computing resources become fungible resources, such as in a cloud-based computing environment, provisioning and management of the computing infrastructure becomes easier. Thus, enterprise IT staff often prefer virtualized compute clusters in data centers for their management advantages in addition to the efficiency and increased return on investment (ROI) that virtualization provides.

Containerization is a virtualization scheme based on operation system-level virtualization. Containers are light-weight and portable execution elements for applications that are isolated from one another and from the host. Because containers are not tightly-coupled to the host hardware computing environment, an application can be tied to a container image and executed as a single light-weight package on any host or virtual host that supports the underlying container architecture. As such, containers address the problem of how to make software work in different computing environments. Containers offer the promise of running consistently from one computing environment to another, virtual or physical.

With containers' inherently lightweight nature, a single host can often support many more container instances than traditional virtual machines (VMs). Often short-lived, containers can be created and moved more efficiently than VMs, and they can also be managed as groups of logically-related elements (sometimes referred to as “pods” for some orchestration platforms, e.g., Kubemetes). These container characteristics impact the requirements for container networking solutions: the network should be agile and scalable. VMs, containers, and bare metal servers may need to coexist in the same computing environment, with communication enabled among the diverse deployments of applications. The container network should also be agnostic to work with the multiple types of orchestration platforms that are used to deploy containerized applications.

A computing infrastructure that manages deployment and infrastructure for application execution may involve two main roles: (1) orchestration—for automating deployment, scaling, and operations of applications across clusters of hosts and providing computing infrastructure, which may include container-centric computing infrastructure; and (2) network management for creating virtual networks in the network infrastructure to enable packetized communication among applications running on virtual execution environments, such as containers or VMs, as well as among applications running on legacy (e.g., physical) environments. Software-defined networking contributes to network management.

SUMMARY

In general, techniques are described for configuring a software-defined networking (SDN) controller, implemented on multiple racks (e.g., 2 or 3 racks), to deploy into a fabric managed by the SDN controller itself. For example, a first control host installed in a first rack having a first management switch and a second control host installed in a second rack may execute controller nodes that implement the SDN controller using a controller virtual network extending between the first rack and the second rack. In this example, the first management switch may be configured to route traffic between the controller virtual network and a device management network extending from the first management switch to a fabric network device (e.g., a leaf switch) of the fabric managed by the SDN controller. For instance, the first management switch may be configured to perform virtual routing and forwarding (VRF) to route traffic between the controller virtual network and the device management network and to use a dynamic host configuration protocol (DHCP) relay to assign an Internet protocol (IP) address to the fabric network device.

In this example, the SDN controller may configure the fabric network device to enable communications, via the controller virtual network, between the first control host and a compute node or a storage node connected to the fabric network device. For instance, the SDN controller may configure, using a management port of the fabric network device, the fabric network device to route traffic using an integrated routing and bridging (IRB) interface. After configuring the fabric network device, the SDN controller may configure the compute node and/or the storage node by communicating with such nodes via the fabric network device. In this way, the SDN controller may configure the fabric network device used to support the SDN controller itself, which may allow the SDN controller to further customize the virtual network to support the SDN controller.

The described techniques may provide one or more technical improvements that realize at least one practical application. For example, customizing the virtual network to support the SDN controller may improve a performance of the SDN controller itself and/or improve a performance of the virtual network managed by the SDN controller. As another example, rather than relying on an existing SDN controller to configure a fabric network device to support a SDN controller, techniques described herein permit a single SDN controller to configure its own the fabric network device to support the SDN controller.

In one example, this disclosure describes a method for configuring a fabric managed by an SDN controller includes with a first control host installed in a first rack having a first management switch and a second control host installed in a second rack, executing controller nodes that implement an SDN controller using a controller virtual network extending between the first rack and the second rack, wherein the first management switch is configured to route traffic between the controller virtual network and a device management network extending from the first management switch to a fabric network device of the fabric managed by the SDN controller; and configuring, with the SDN controller, via the first management switch, the fabric network device with the controller virtual network to enable communications, via the controller virtual network, between the first control host and a compute node or a storage node connected to the fabric network device.

In another example, this disclosure describes a system for configuring a fabric managed by an SDN controller includes a first control host installed in a first rack; a second control host installed in a second rack, wherein the first control host and the second control host are configured to execute controller nodes that implement an SDN controller using a controller virtual network extending between the first rack and the second rack; a first management switch installed in the first rack, wherein the first management switch is configured to route traffic between the controller virtual network and a device management network extending from the first management switch to a fabric network device of the fabric managed by the SDN controller; and wherein the SDN controller is configured to configure, via the first management switch, the fabric network device with the controller virtual network to enable communications, via the controller virtual network, between the first control host and a compute node or a storage node connected to the fabric network device.

In another example, this disclosure describes a non-transitory computer-readable medium comprising instructions for causing one or more processors to: with a first control host installed in a first rack having a first management switch and a second control host installed in a second rack, execute controller nodes that implement an SDN controller using a controller virtual network extending between the first rack and the second rack, wherein the first management switch is configured to route traffic between the controller virtual network and a device management network extending from the first management switch to a fabric network device of the fabric managed by the SDN controller; and configure, with the SDN controller, via the first management switch, the fabric network device with the controller virtual network to enable communications, via the controller virtual network, between the first control host and a compute node or a storage node connected to the fabric network device.

The details of one or more embodiments of the invention are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the invention will be apparent from the description and drawings, and from the claims.

