Exercise: Kubernetes Cluster Visualization

In this exercise we ask you to write a Single Page Application (SPA) that visualizes a simulated Kubernetes (k8s) cluster. Clusters are comprised of nodes, which are either physical or virtual machines. Pods represent containerized applications which get scheduled onto nodes.

On startup, your simulation should show the core Kubernetes components (API server, scheduler, controller manager and a set of Nnodes). At runtime, we would like to see pods being "scheduled" onto the nodes.

"Scheduling" involves either adding or removing pods. The simulation can accomplish this via timers or UI controls that allow the user to initiate the action.

Submitting Code: Please see instructions here on how to submit your code.

We realize that your time is valuable. Please try to limit this to ~4 hours. If you can't complete the exercise in this time, please share what you have as a basis for a discussion.

Constraints

In developing this visualization, we would like to constrain the set of possible frontend tools used for implementation. There are a few reasons for this:

  • Review time and efficiency
  • Clear representation of tooling that would be used in this role
  • Demonstrates understanding of foundational tools and technologies

Given these reasons, please limit yourself to the following:

  • HTML5
  • CSS3
  • JavaScript (ES5 or ES6) - no compile to JS tools like TypeScript, GopherJS, etc.
  • Scalable Vector Graphics (SVG)
  • d3
  • React/Redux

The intent is for this exercise to be implemented without a backend. However, if there is functionality you feel can only be accomplished by having a small backend process, please limit yourself to the following:

  • Node.js (v4 or v6)
  • Go

References

You can find good introductions on Kubernetes basics: