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
No fields configured for issues without a type.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions