Skip to content
This repository was archived by the owner on Mar 31, 2023. It is now read-only.
This repository was archived by the owner on Mar 31, 2023. It is now read-only.

[Micro-service] Node manager #151

@xieus

Description

@xieus

Summary
The node manager is a control plane component responsible of managing and configurating physical servers/nodes/hosts inside a data center. It maintains the detailed configuration for each node and collect its health state continuously in a configurable interval. The node health states could be used collectively in many user scenarios, for example, determine if a deployment of network resource (for example, port) is successful, or if a load balancing backend is reachable.

User Cases

  • Port manager talks to node manager to pull node details from a node id (UUID).

Basic Requirements

  1. Manage mapping from node id to node info (including IP, mac, veth)
  2. Populating the node mapping in the controller launch time (through a configuration file) during new region or data center buildout
  3. Expose a CURD API to register, update, or delete a node.
  4. Define a health model, data schema and APIs for node health
  5. Working together with other services including port manager.
  6. Require HA and high scalability as 100,000+ nodes could upload health data continuously.

Advanced Requirements

  1. Node info extensible to more node resources including FPGA etc.
  2. Fall back mechanism when a node state is stall (e.g. proactively pull instead of waiting for agent to push)

Metadata

Metadata

Assignees

Labels

P0Priority 0featurefeature development

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions