MAAS with Intel RSD

Deploying Kubernetes Core with MAAS and Intel Rack Scale Design

Introduction

I have had the fortunate opportunity to work on Intel Rack Scale Design (RSD) compatability for MAAS.

The reason this was a cool project to work on was that several new features and improvements were added to MAAS to accommodate RSD. One example is support for composable hardware. MAAS can now manually or dynamically compose (create) new machines from an available pool of resources on the RSD. This allows administrators to request machines with specific resources on demand and be able to deploy their workloads on them. Another example is the new concept of a Pod. In MAAS, Pods are an abstraction to describe the availability of resources that allows MAAS to create or compose a machine with a set of those resources.

In greater detail, MAAS support for Intel RSD includes the following features:

  • Ability to discover all available resources
  • Ability to discover all pre-composed (pre-existing) resources or machines
  • Ability to compose machines (manually) via the API or the web UI
  • Ability to compose machines (manually and dynamically) with remote attached storage (iSCSI)
  • Ability to (dynamically) compose machines

Setting up MAAS with RSD

You will need an RSD hardware setup as well as an installed MAAS server that can communicate with the RSD. For help on setting up and installing MAAS please see the documentation for MAAS installation. Once your MAAS is installed you will need to add an RSD Pod. After completing these steps, when you go to the Pod details page it should display all of its available resources similar to something like this:

Alt text

For this tutorial the RSD Pod will need to have at least three composable machines for deploying Kubernetes Core. When setting up your RSD Pod, if there are any pre-composed machines that are found during the discovery process of the RSD Pod creation and there are still enough resources to dynamically compose three additional machines, please allocate these pre-composed machines after they finish commissioning so they will not be used during this tutorial. By setting these machines to Allocated, when Juju requests machines, it won’t use these machines and instead MAAS will dynamically create them in the RSD, which is one of the new features that I want to demonstrate here. It should be noted, for this blog post I am using Ubuntu 16.04LTS for the MAAS server machine and for the client machine.

Deploying Kubernetes Core using MAAS and RSD

In this blog post I am going to walk you through deploying Kubernetes Core using RSD‘s dynamically composable resources.

Once you have your MAAS server installed and RSD Pod created, we will need to install conjure-up on the client machine and start the application:

$ sudo snap install conjure-up --classic
$ conjure-up kubernetes

Select Kubernetes Core:

Alt text

Create a new controller and select the maas Cloud type:

Alt text
Alt text

Add MAAS server IP address and API Key:

Alt text

Deploy the applications:

Alt text

Wait for Juju bootstrap to finish:

The awesome thing going on here, is at this point there are no available machines in MAAS but since there is a registered RSD Pod in MAAS, a bootstrap node is dynamically created on the fly.

Alt text

Checking back in on the MAAS UI Pod details page:

All three nodes that have been dynamically composed up to this point. The bootstrap node is deployed with two other worker nodes being deployed.

Alt text

Wait for our Applications to be fully deployed:

Alt text

Run the final post processing steps to automatically configure your Kubernetes environment:

Alt text

Review the final summary screen:

Alt text

Now you are free to access your Kubernetes by running kubectl

Conclusion

I hope this blog post gave you a look at what can be done with MAAS and Intel RSD and some of the new features that make it work well, like Pods and dynamic composition.

TRF AM Radio Receiver

In this project I built a simple two transistor Tuned Radio Frequency AM Radio Receiver powered from a single 1.5V AA battery. A tuned radio frequency receiver (TRF receiver) is a radio receiver that is usually composed of several tuned radio frequency amplifiers followed by circuits to detect and amplify the audio signal. Here is the schematic. This radio doesn’t have great selectivity or sensitivity, which are common disadvantages that TRF’s are known to have. Selectivity requires narrow bandwidth, and narrow bandwidth at a high radio frequency implies high Q or many filter sections. There is only one tunable filter section in this radio and the Q of this tunable tank circuit isn’t extremely high. This radio gets around eight stations loud and clear.

This was the first radio receiver that I ever built and getting it to work was a learning process. At first I tried to wire it up with a dead bug construction. After wiring it up this way the radio started to oscillate and it wouldn’t pick up any stations. I decided to scrap this approach, not so much for the fact that the radio was oscillating, but more because it was too ugly for my liking. To circumvent this dilemma I decided to buy some FR-4 perfboard, which helped organize the components and gives a more clean look.

https://imgur.com/a/DSfl6

Spark-gap Tesla Coil

Tesla Coils are cool!  This is a spark-gap Tesla Coil that I built for one of my undergraduate Physics courses.

For my undergraduate *Electricity and Magnetism* Physics course we had an extra credit assignment and I decided to build a Tesla Coil.  No one helped me with this Tesla Coil but I did get some good advice and information from reading www.pupman.com.

A Tesla coil is an electrical resonant transformer circuit invented by Nikola Tesla around 1891.  It is used to produce high-voltage, low-current, high frequency alternating-current electricity.  As the Tesla Coil page on Wikipedia mentions:

A Tesla coil transformer operates in a significantly different fashion from a conventional (i.e., iron core) transformer.  In a conventional transformer, the windings are very tightly coupled and voltage gain is determined by the ratio of the numbers of turns in the windings.  This works well at normal voltages but, at high voltages, the insulation between the two sets of windings is easily broken down and this prevents iron cored transformers from running at extremely high voltages without damage.  Unlike those of a conventional transformer (which may couple 97%+ of the fields between windings), a Tesla coil’s windings are “loosely” coupled, with a large air gap, and thus the primary and secondary typically share only 10–20% of their respective magnetic fields. Instead of a tight coupling, the coil transfers energy (via loose coupling) from one oscillating resonant circuit (the primary) to the other (the secondary) over a number of RF cycles.  As the primary energy transfers to the secondary, the secondary’s output voltage increases until all of the available primary energy has been transferred to the secondary (less losses).  Even with significant spark gap losses, a well designed Tesla coil can transfer over 85% of the energy initially stored in the primary capacitor to the secondary circuit.  The voltage achievable from a Tesla coil can be significantly greater than a conventional transformer, because the secondary winding is a long single layer solenoid widely separated from the surroundings and therefore well insulated.  Also, the voltage per turn in any coil is higher because the rate of change of magnetic flux is at high frequencies.  With the loose coupling the voltage gain is instead proportional to the square root of the ratio of secondary and primary inductances.  Because the secondary winding is wound to be resonant at the same frequency as the primary, this voltage gain is also proportional to the square root of the ratio of the primary capacitor to the stray capacitance of the secondary.

https://imgur.com/a/3OwV5

Reflex AM Radio Receiver

In this project I built a Reflex AM Radio Receiver. The schematic that I built this receiver from is shown below (note that T2’s primary does not have to be center-tapped). A reflection radio receiver is a radio receiver design in which the same amplifier is used for both the radio frequency (RF) and audio frequency (AF) signals. The radio signal from the output of the amplifier passes detection and then re-enters the input of the amplifier. During the second pass, the audio frequency is amplified and then passed to the earphone. Historically, it was a way to design a cheaper receiver because it had less tube amplifiers, which were costly.

https://imgur.com/a/eEhUD