Supergiant Blog

Product releases, new features, announcements, and tutorials.

Mike Johnston at KubeCon EU: Zombie Kubernetes! Raising Nodes from the Dead

Posted by Adam Vanderbush on April 27, 2017

In late March, Mike Johnston of Supergiant presented "Zombie Kubernetes! Making Nodes Rise from the Dead" at KubeCon EU in Berlin. He focused on how to install Kubernetes using immutable configuration and also covered removing points of provisioning failure by leveraging cloud-config for configuration.

Keep reading

Find Supergiant at the ATX Startup Crawl

Posted by Adam Vanderbush on March 10, 2017

The team behind Qbox.io and Supergiant.io will join other companies at the ATX Startup Crawl at SXSW to introduce their hosted elasticsearch product and their open-source container orchestration system on March 13 from 5PM - 10PM.

Join us as the Startup Crawl showcases the best in talent, startups, and more that Austin’s technology community has to offer. Last year had more than 90 companies and 12,000+ registered crawlers. This year is going to be just as awesome.

Keep reading

Microservices, Supergiant Architecture for Stability and Scale

Posted by Vineeth Mohan on February 14, 2017

In this blog post, we will compare traditional web application architecture with the emerging microservice architecture that is all the rage these days.

We will explain why microservice architecture is much preferred over traditional architecture for web applications and why it’s such a great idea to build microservices with Supergiant.

Keep reading

How to Run a Supergiant Server on DigitalOcean

Posted by Brian Sage on December 20, 2016

By the end of this tutorial, you will have started Supergiant as a service on DigitalOcean.

Supergiant and Kubernetes are open source and free forever. However, DigitalOcean hardware usage rates apply.

For this tutorial, you will need:

  • A paid DigitalOcean account
  • A public/private key pair handy for accessing your DigitalOcean server via SSH

Prepare for Launch

Log in to your DigitalOcean account dashboard view. From there, DigitalOcean makes it very easy to provision cloud hardware.

Step 1: Create and Connect to Your Droplet

From your dashboard, click Create Droplet to get started. Start by choosing an image.

Click Create Droplet and select the Ubuntu image. I’ve selected 16.04, which is the long-term support release.

You will only need the 512MB / 1CPU size to run Supergiant as a service.

About block storage and region selection: You don’t need to select block storage for this server. The default server storage will be enough, and Supergiant will automatically provision block storage for your Kubernetes cluster later. However, if you want to run your Supergiant server in the same datacenter region as your Kubernetes cluster, select a region that allows block storage, like FRA1, NYC1, or SFO1.

Add your public key, so you can access the server’s terminal via SSH later. If you have already added SSH keys to your DigitalOcean account, be sure the key you want to use is checked.

Give your server a unique name and click Create.

Your Droplet will be up and running in minutes. Once it’s up, SSH into it using the public IP you retrieve from the dashboard.

Retrieve the IP Address of the Droplet you created.

On DigitalOcean Ubuntu 16.04, SSH using the username root and the keypair you added to the server above.

ssh -i /path/to/private_key root@162.243.174.132

Step 2: Get Supergiant

Always check the Supergiant latest release for the current server binary URL. As of this tutorial, the latest release is v0.13.2. Execute the following, which will download the Supergiant v0.13.2 server binary to your /usr/sbin/ directory:

curl https://github.com/supergiant/... -L -o /usr/bin/supergiant

Be sure to make the binary executable.

chmod +x /usr/bin/supergiant

Step 3: Configure Supergiant

We will grab the example configuration file from github and put it in a responsible place. We don’t recommend using these default settings in production, but the configuration will work as is for quick start and testing purposes.

Execute the following to download the example configuration file:

sudo curl https://raw.githubusercontent.... --create-dirs -o /etc/supergiant/config.json

Use your favorite text editor to change the following configuration parameters in config.json to fit our Ubuntu environment:

{
 ...
 "sqlite_file": "/var/lib/supergiant/development.db",
 ...
 "log_file": "/var/log/supergiant/development.log",
 ...
}

Create the directories we just referenced so Supergiant can write its DB and log files:

sudo mkdir /var/lib/supergiant && sudo mkdir /var/log/supergiant

Next configure systemd to start Supergiant as a service. Use your favorite editor to create the following init file at /etc/systemd/system/supergiant.service:

[Unit]
Description=Supergiant Server
After=syslog.target
After=network.target
[Service]
ExecStart=/usr/bin/supergiant --config-file /etc/supergiant/config.json
Restart=on-abort
[Install]
WantedBy=multi-user.target

Step 4: Create an Admin User

The first time Supergiant runs, an admin user will be created, and the service will output the username and password to the console.

Execute the following in the terminal to test your configuration and create your admin user:

sudo supergiant --config-file /etc/supergiant/config.json

You will see the terminal output something like the following:


Save the randomly generated password, so you can access the dashboard later. Type Control+C to stop the server after the user is created.

If you have any trouble by this point, please join us on our Slack channel.

Step 5: Start Your Supergiant Server

Start your new Supergiant system service like so:

sudo systemctl start supergiant.service

The system shouldn't produce any output if this is successful.

To check the status of the service, you may execute the following:

sudo systemctl status supergiant.service

Last, enable the service to start on bootup:

sudo systemctl enable supergiant.service

Access your Supergiant Dashboard

By default in development mode, Supergiant serves HTTP over port 8080 and Ubuntu’s simple firewall is off.

To access the dashboard, simply get the IP of our server from your DigitalOcean droplets list, put the IP, followed by port number:8080 in a web browser to access your Supergiant dashboard on its default port (or whatever port you may have customized in your config.json file above), then use the username "admin" and the password generated above to log in.

That’s it! You’ve successfully created a Supergiant server that runs as a service for development purposes!

Access the Supergiant Community

Remember, if you have trouble, or if you want to talk to other users about how they're making the most of Supergiant, our community hangs out on the Supergiant public Slack channel.

We would love any feedback you want to leave. We're working hard to add features that our community wants most, so all your comments are helpful to us. Visit the Supergiant Slack channel, and post your questions and comments.

Whereto Next?

This tutorial is one in a series to help you get started with Kubernetes using Supergiant. From here we recommend you check out the following:

Keep reading

Auto-Scaling Kubernetes on DigitalOcean with Supergiant

Posted by Brian Sage on December 20, 2016

By the time this tutorial is over, you will have used Supergiant to deploy an auto-scaling Kubernetes cluster on DigitalOcean.

This will keep hardware costs as low as possible while providing auto-scaling performance when it is needed.

For this tutorial, you will need:

  • A running Supergiant installation
  • DigitalOcean API Access Token with Read and Write permissions
  • Your SSH key fingerprint from the DIgitalOcean Dashboard > Click profile avatar > Settings > Security
  • A region that supports block storage where you want to deploy your Kubernetes cluster. As of this writing, it should be one of FRA1, NYC1, or SFO1.

Note: This is an article in a series to help get Kubernetes running quickly on DigitalOcean using Supergiant. If a Supergiant server is not yet running, see: How to Run a Supergiant Server on DigitalOcean

Kubernetes on DigitalOcean Hardware that Auto-Scales for You

We’re excited to release a Supergiant provider layer for DigitalOcean. DigitalOcean has emerged as an incredibly fast-growing and inexpensive cloud hardware provider that has had great success standing up to behemoths in their space. Not only are their droplet prices incredibly reasonable, but we’ve also found their provisioning performance faster than most other providers out there, making them an ideal host for auto-scaling Kubernetes.

Let’s get started.

Step 1: Login to the Supergiant Dashboard

To log in to Supergiant, you will need an admin username and password. You either created this on Supergiant first run (see installation tutorial), or you will need to be given a username and password from your Supergiant administrator.

Step 2: Add Cloud Credentials

Click to visit the Cloud Accounts view, and click to create a new entry with your DigitalOcean API access token.

Your credentials will need DigitalOcean API v2 read and write permissions.

Enter the following and click Create.

{
  "credentials": {
    "token": "YOUR APIv2 ACCESS TOKEN"
  },
  "name": "WHATEVER CLEVER NAME YOU LIKE",
  "provider": "digitalocean"
}

After the cloud account is created, remember the name you’ve given it, because you will use it in the next step. You can always look it up again in the Cloud Accounts dashboard view.

Step 3: Create a Kube

Click to go to the Kubes view, and click to create a Kube.

Some values will be pre-populated for you. Edit whatever you like, but be sure to edit or review the following entries:

  • "cloud_account_name": the name of the Cloud Account you created above
  • "region": the region you would like to launch your Kubernetes cluster. Must be a region that supports DigitalOcean's Block Storage. Example: “nyc1”
  • "ssh_key_fingerprint": the fingerprint of the public key that will be authorized to access the Kubernetes API. Retrieve this from DIgitalOcean Dashboard > Click profile avatar > Settings > Security
  • "master_node_size": the instance size for your Kubernetes master; the value you enter here will depend on what options are available to your Supergiant config JSON file; 512MB of RAM is sufficient.
  • "name": a name for your Kube that starts with a letter, limited to 12 characters, made of lowercase letters, numbers, and/or dashes (`-`)
  • "node_sizes": build an array of DigitalOcean node sizes chosen from sizes contained in the Supergiant config/config.json file. This list will be used to provision hardware for auto-scaling Kubernetes.

My configuration looks like this:

{
  "cloud_account_name": "digitalocean",
  "digitalocean_config": {
    "region": "nyc1",
    "ssh_key_fingerprint": "MY SSH KEY FINGERPRINT"
  },
  "master_node_size": "512mb",
  "name": "tutkube",
  "node_sizes": [
    "512mb",
    "1gb",
    "2gb",
    "4gb",
    "8gb",
    "16gb",
    "32gb",
    "48gb",
    "64gb"
  ]
}

When your edits are complete, click Create.

Step 4: Watch Supergiant Go!

Supergiant will orchestrate provisioning of DigitalOcean services, including block storage, security settings, networking, and more. When it is finished, it will provision your master and minion instances and will display log output as it goes.

The longest wait time will be “waiting for Kubernetes” as you wait for the DigitalOcean instance to be provisioned. Just be patient; DigitalOcean is working very hard for you.

Access Kubernetes

Once the process completes, you may click on the Kube ID to get details. To verify Kubernetes is running, get the username, password, and master_public_ip from the Kube details in the Supergiant dashboard.

From your terminal, enter the following:

curl --insecure https://USERNAME:PASSWORD@MASTER_PUBLIC_IP/api/v1/

You should see a JSON response describing the API. Congratulations -- you’ve just launched an auto-scaling Kubernetes cluster on DigitalOcean!

Teardown

If you want to tear down your tutorial Kube, from the Supergiant dashboard, simply click to view Kubes, select the one you wish to delete, and then select Delete from the Actions menu. It’s as simple as that. Supergiant will clean up after itself and remove all the associated DigitalOcean services unique to the Kube.

Access the Supergiant Community

Remember, if you have trouble, or if you want to talk to other users about how they're making the most of Supergiant, our community hangs out on the Supergiant public Slack channel.

We would love any feedback you want to leave. We're working hard to add features that our community wants most, so all your comments are helpful to us. Visit the Supergiant Slack channel, and post your questions and comments.

Where To Next?

This tutorial is one in a series to help you get started with Kubernetes using Supergiant. From here we recommend you check out the following:

Keep reading

Visit Our Booth at AWS re:Invent 2016!

Posted by Adam Vanderbush on November 10, 2016

Supergiant will join other containerization experts at AWS re:Invent 2016 in Las Vegas to introduce their new open-source container orchestration system on November 28 - December 2.

Connect with peers and cloud experts, engage in hands-on labs and bootcamps, and learn how AWS can improve developer productivity, network security, and application performance while keeping infrastructure costs low.

Keep reading