ALL THINGS KUBERNETES

Deploying and Autoscaling a Kubernetes Cluster on Packet.net with Supergiant

In previous tutorials, we’ve already discussed how to deploy and autoscale Kubernetes clusters on GCE, DigitalOcean, OpenStack and Amazon AWS. It’s now time to walk you through the same process for Packet.net — a cloud provider for which support was added in the recent Supergiant releases. By the end of this tutorial, you’ll know how to link Packet.net cloud account and leverage Supergiant’s autoscaling packing algorithm to deploy the cluster and minimize cloud costs. Sounds promising? It actually is!

What is Packet.net?

Packet.net is a cloud provider that offers fully isolated dedicated servers on a pay-as-you-go (PAYG) scheme. In this way, the platform combines the provision of the bare-metal servers with a flexibility and scalability of a cloud. Packet.net uses premium hardware provided by Dell, SuperMicro, and Quanta to provision multiple flavors of machines that can be used both for development and large-scale production.

Prerequisites

For this tutorial, we will need:

  • A Packet.net account and the capacity to deploy at least t1.small  (former Type 0  ) machine instances with 8GB of RAM and 4 CPU cores. This is the minimal requirement for instantiation of Kubernetes master and nodes on Packet.net.
  • A running Supergiant server (see the official Supergiant GitHub repo for installation details). Supergiant supports the following installation options:
    • A virtual machine (VM) hosted by a cloud provider (e.g., Packet)
    • An on-premise VM
    • An on-premise bare-metal server
  • A Packet.net API Token. The token is needed to identify the user/s on behalf of whom Supergiant connects to the Packet API.
  • An operational Packet Project to deploy a Kubernetes cluster to.

Linking Packet.net Cloud Account

Linking Packet’s cloud account takes a few simple steps. First, click ‘Add a Cloud Account‘ in your Supergiant Dashboard like in the image below.

Supergiant: adding cloud account

 

This will transfer you to the list of available cloud providers (see the image below).

Supergiant: choosing cloud account

 

On the list page, select Packet.net, and click on it. You’ll be sent to a form with Packet.net cloud credentials.

Supergiant: Packet cloud account credentials

 

As you can see, the only cloud credential required is an API Token needed to allow Supergiant to communicate with your Packet.net account on your behalf. Getting this API token in Packet.net is plain and simple: under your profile select API Keys, and create new/use the existing one. (Note: you need to have an API Key with the Read/Write permissions.)

 

Packet API key

After you obtain the token, paste it into the corresponding field of your Packet.net cloud credentials, create a user-friendly name for your cloud account (for example, “packet“), and click the “Submit” button. Supergiant will automatically link Packet’s cloud account using the token. In a while, you’ll see the newly added Packet.net account in the cloud accounts list.

SG: Deploy Packet cluster

 

Deploying Kubernetes Cluster

Now, as we’ve linked a brand new Packet.net account, we can deploy a Kubernetes cluster to it. To begin deploying a Kube, first click ‘Launch a Cluster‘ or ‘Take me to Clusters‘ from the Supergiant’s dashboard. Assuming no clusters have been deployed yet, you’ll see a ‘Deploy your First Cluster‘ button. Click on it to open a list of available cloud accounts, and then select your Packet.net account. This will send you to the Kube’s configuration page that includes two sections: general cluster configuration and Packet-specific settings. Make sure that you understand what each parameter discussed below means before deploying the Kube to Packet.net.

Supergiant: deploy Packet cluster

 

General Configuration

  • Master Node Size  — the size of the server that will run as a Kubernetes Master. As a default value, we use Type 0  Packet.net servers, which are cost-effective bare-metal machines with resources sufficient for running Kubernetes masters.
  • Kube Master Count  — a number of Kube masters. The default value is 1.
  • SSH Pub Key  — an SSH public key to securely connect to the cluster. You can access existing SSH keys or add new SSH keys to your Packet.net account under your Profile’s dropdown menu.
  • Node Sizes  — the array of node size for your Packet.net cluster. Each node size maps to the Packet.net bare-metal machine type that will be used by Supergiant’s packing algorithm to autoscale your Kubernetes cluster so that it always has sufficient resources to run your applications. Default values for node sizes are Type 0 , Type 1 , Type 2 , Type 3 , and Type 2a .

Note: Packet.net renamed some of its instance types, however, Supergiant always maps conventional names to the most recent naming standards so users shouldn’t bother about that.

If you expect your cluster to scale to large workloads, be sure to include all available machine options specified in this list:

For more information, see a full list of Packet bare-metal servers.

Packet Configuration

Facility  — A Packet.net region in which the cluster will be created. The default region is ewr1 . For a more detailed description of available Packet regions see their official documentation.

Project  — A Packet.net Project in which the cluster will be created. The field accepts a Project UUID (e.g 45acaac1-8adg-7a4f-43da-1aba2183da30  ). The Project’s UUID can be obtained under Project Settings of your Packet.net control panel.

Watch Supergiant Go!

After you have configured the deployment, click ‘Submit‘ and Supergiant will start provisioning your Kube. Supergiant will orchestrate provisioning of all Packet.net services including block storage, networking, and security, which may take up to 5-7 minutes. Once the process is completed, you’ll see the status of the cluster changed to ‘Running‘ and the newly created master and node instances in your Packet.net console. You can now also access the cluster’s stats via Supergiant’s monitoring dashboard. There you’ll see the amount of RAM and CPU used and a raw data describing Kubernetes API and the deployment’s details.

Deleting the Kube

If you want to delete your Packet.net Kube, from the Supergiant dashboard access “Clusters“, select the one you want to delete, and then click “Delete Selected Cluster” button. The cluster’s status will be changed to “Deleting” and, in a while, Supergiant will clean up the Packet.net instances and all services linked to the Kube.

Conclusion

As you’ve seen, linking Packet.net cloud account and deploying a Kube to it is plain and simple. Getting your Packet.net API token and editing the cluster’s configuration are two steps away from having a reliable Kubernetes cluster deployed to your Packet servers. Stay tuned to the Supergiant blogs and tutorials, and you’ll soon have more useful information on managing your Kubernetes clusters.

Subscribe to our newsletter