So you need to create a new Kubernetes cluster with all the (useful) bells and whistles like a Continuous Delivery (CD) tool, something to manage the applications’ secrets, and much, much more just to be able to deploy your application. We hear you, it’s a question of days, probably weeks even if you have the proper experience, and did exactly this before. Do not worry, we got you covered with kubefirst: you’ll be able to create a new management cluster with physical and virtual cluster management capabilities in only 20 minutes. Follow this step-by-step tutorial to know how.
First, follow the prerequisite section of our documentation to be ready to use our console UI to create your new cluster: you will need to install our CLI, install Docker Desktop if it’s not already done, create a GitHub token (we will use GitHub for this tutorial, but GitLab SaaS is also supported) with the proper access, and lastly, a Civo API token.
Once your computer is ready, let’s launch the console application by typing
kubefirst launch up in your terminal.
Keep in mind that this first cluster created locally is not the final management one: it is what we call internally the cluster 0. It will give you a running console application, which will be used to create your new production-ready management cluster.
Once the creation is successful, kubefirst will open for you a browser tab (unless you are on Windows using WSL, in which case, navigate to https://console.kubefirst.dev) which will present you a step-by-step UI helping you easily create your new Kubernetes cluster. Firstly, you’ll be asked to select between the two Git providers that we support: GitHub or GitLab SaaS.
The next step is to select the public cloud you want to use. For this tutorial, we will use Civo, but we also support AWS, and DigitalOcean, which just got out of beta. We also support, in beta for now, Google Cloud, and Vultr. Lastly, you can create a k3d cluster for a cloud-free experience, and test the platform, but it can only be done using the CLI directly.
Once you select the cloud of your choice, in that case, Civo, you will need to give us access to a GitHub organization by providing a GitHub personal access token that you created when following the prerequisite section. We will use this access to create two repositories: your new
gitops source of truth, and the metaphor repository, which is a demo application to highlight the features of your new Kubernetes platform.
The last step before the cluster creation starts is to configure the said cluster. You will be required to provide a valid email address, which for now, is used only to receive information about the certificates expiration. As for the cluster itself, you need to select the available region, the size of the instance (we suggest not going lower than the medium one to ensure you have enough resources for all the tools we install in addition to adding your own tooling once you have access to your new cluster), and the number of nodes. Lastly, you need to decide if you will use the public cloud DNS (which is the default, and suggested in most cases): you can also choose Cloudflare, but if you do, you’ll need to provide an additional API token. For the sake of this demonstration we will choose the Civo DNS service.
You may have noticed a hidden section titled “Advanced Options”. In this section, you could, for network limitation reasons, use HTTPS instead of SSH for some Git procedures, and also use a customized
gitops-template fork: more information on that in our documentation. For now, let’s not use these options.
Seems like we have been at it for a while, but moving from
launch up to step 4, the provisioning is faster to do, than to read… With that said, you have now pushed the “Create cluster” button, and it is where the magic happens: your cluster is now being created, with everything that it’s involving. You now have to wait about 10 minutes depending on your computer, and internet connection, but do not worry, because we got you covered. See the left sidebar? During the waiting time, you have the choice to read more about your future Kubernetes management cluster from our documentation, join our Slack community to meet fellow cloud native enthusiasts which is also the best place to ask for help if there is anything, watch some of our videos, or even, take it easy, and play a little game!
If for some reason the process fails, or you are just curious to see a bit more about what is happening behind the hood, a good place to find more information is within the verbose tab of the provisioning console.
Now that all the steps completed successfully, your new cluster is created, and to easily access it, click the “Next” button.
This button will bring you to the final step, the “Ready” screen. Here you can open your management console using the “Open kubefirst console” button. It may be confusing as it’s the same console application we use to provision a new cluster, but you’ll see, the experience will be different. Before you do that, to protect your cluster, we created an administrator account for me. The user is
kbot, and the password can be either shown, or copied to your clipboard using the “Copy” button. You can easily add new administrators or developers’ users in the proper Terraform file from your newly
The first screen you’ll see is the login screen. Your new platform uses HashiCorp Vault for authentication. You’ll need to click the “Log in with Vault” button to open Vault, and log in to your new management platform.
Now is the time to use the
kbot username with the password you copied to the clipboard two steps behind. Doing so will log you into all kubefirst tools (i.e., HashiCorp Vault, Argo CD…) including your console UI for managing your new Kubernetes cluster.
If you want to learn more about SSO & OIDC on kubefirst with HashiCorp Vault, watch the following livestream recording.
This ends the first article of this three-part series. In the next article, we will provide you with a guided tour of your newly created platform. In the meantime, feel free to explore by yourself your new production-ready Kubernetes platform. As always, we are welcoming constructive feedback, features ideas, and overall comment on your experience with our open-source platform. The best place to do that, or ask for help if you encounter any issues, is our Slack community, where you can join more than 300 other cloud native enthusiasts!