Octostar Single Node
Prerequisitesβ
Installing Docker, Helm, helmfile and kubectl is necessary before we can install Octostar single node.
On MacOSβ
Docker Installation on MacOS:β
- Download Docker Desktop for Mac: Visit the Docker Hub and download the Docker Desktop application.
- Install Docker Desktop: Open the downloaded
.dmgfile and drag the Docker icon to your Applications folder. - Run Docker Desktop: Open Docker from your Applications folder. Docker will ask for your password to install its networking components and links to the Docker apps.
- Verify Installation: Open a terminal and run
docker --versionto ensure Docker is installed correctly.
Helm Installation on MacOS:β
- Homebrew: If you have Homebrew installed, you can simply run
brew install helm. - Manual Install:
Helmfile installation on MacOS:
- Install Helmfile: using Homebrew with this command:
brew install helmfile
kubectl Installation on MacOS:β
- Homebrew: Run
brew install kubectlorbrew install kubernetes-cli. - Curl:
- Download the latest release with the command:
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl". - Make the binary executable:
chmod +x ./kubectl. - Move the binary into your PATH:
sudo mv ./kubectl /usr/local/bin/kubectl.
- Download the latest release with the command:
On Linuxβ
Docker Installation on Linux:β
- Update Package Index: Run
sudo apt-get update. - Install Packages to Allow apt to Use Repository Over HTTPS:
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
- Add Dockerβs Official GPG Key:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
- Set Up the Stable Repository:
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
- Install Docker Engine:
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
- Verify Installation: Run
sudo docker run hello-worldto check if Docker was installed without any issues.
Helm Installation on Linux:β
- From Script: Helm provides an automated script to get started quickly. Run
curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash. - From Package Manager (for example, using
snapfor Ubuntu):
sudo snap install helm --classic
Install Helmfile on a Linux systemβ
- Open your terminal and use the following command to download the latest release of Helmfile:
wget https://github.com/roboll/helmfile/releases/download/v0.144.0/helmfile_linux_amd64
Make the binary executable
- Change the permissions of the downloaded binary to make it executable:
chmod +x helmfile_linux_amd64
Move the binary to your PATH
- Move the Helmfile binary to a directory in your PATH for easy access:
sudo mv helmfile_linux_amd64 /usr/local/bin/helmfile
Verify the installation
- Check that Helmfile is correctly installed by running:
helmfile --version
- You should see the version of Helmfile printed out.
Remember to replace v0.144.0 with the actual version you wish to install. You can find the latest version on the .
kubectl Installation on Linux:β
- Curl:
- Download the latest release with the command:
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
- Package Management (for example, for Ubuntu/Debian):
sudo apt-get update
sudo apt-get install -y kubectl
After installation, you can verify that helm and kubectl are properly installed by running helm version and kubectl version --client, respectively.
β
Installing Kind (Kubernetes-in-Docker)β
Kind is a tool designed for running local Kubernetes clusters using Docker container "nodes." It simplifies the process of testing Kubernetes by allowing you to set up a single-node cluster quickly. This setup can be implemented on any architecture, including ARM-based systems and Intel/AMD ones.
Download Kind
Open your terminal and run the following command to download the latest version of Kind. This command automatically detects your architecture and downloads the appropriate binary.
curl -Lo ./kind $(curl -s https://api.github.com/repos/kubernetes-sigs/kind/releases/latest | grep browser_download_url | cut -d '"' -f 4 | grep -i $(uname -s) | grep $(uname -m) || echo "URL not found")
Make the Kind Binary Executable
After downloading, you need to make the binary executable:
chmod +x ./kind
Move the Binary to Your PATH
To use the kind command from anywhere on your system, move it to a directory in your path. A common place is /usr/local/bin/.
sudo mv ./kind /usr/local/bin/kind
Verify the Installation
Check that Kind is installed correctly by running:
kind --version
You should see the version of Kind printed out.
Congratulations. You are now ready to get started with octostar-singlenode !
Set up DNSβ
Our Kubernetes ingress controller has a single entry point on port 80/443, and routes requests by URL and path, so you need to reach it via appropriate domain names in order to work correctly.
Option#1 Set up local name resolutionβ
When you use local name resolution, as opposed to real DNS domain names, you should edit your /etc/hosts file and add the following entries:
minio-api.local.test 127.0.0.1
fusion.local.test 127.0.0.1
home.local.test 127.0.0.1
This will allow you to connect to the cluster only from a browser in the host machine.
Configure Chromeβ
We use a self-signed root certificate authority for the local domain names. So if you use local resolution via /etc/hosts you will need the instructions below.
Instructionsβ
To configure Chrome to trust our self-signed root CA certificate, follow these steps to add the rootCA.pem file:
- Open Chrome and go to Settings by clicking on the three dots in the upper right corner.
- Scroll down and click on "Advanced" to expand the advanced settings options.
- Under the "Privacy and security" section, click on "Security."
- Find the "Manage certificates" option and click on it.
- In the Certificate Manager window, go to the "Authorities" tab. (Use Keychain Access for Mac)
- Click on "Import" to start adding the rootCA.pem file.
- Browse to the location of the rootCA.pem file on your computer, select it, and click "Open."
- When prompted, ensure you check all the boxes that apply to enable trust for this certificate.
- Finally, click "OK" to complete the process.
Your Chrome browser will now trust certificates issued by your self-signed root CA.
Option#2 Set up regular DNS for remote browsingβ
Follow these steps to obtain a single node system reachable from remote on a public IP.
#TODO @Guido Maria Serra
Checkout the codeβ
Clone or download the zip file of "octostar-singlenode" repository. You will see a k8s directory, where all the helm templates, and other tools necessary to bring up the single node deployment live.
If you are on Linux, you will have to use Kind, so please execute these scripts in this order:
./k8s/onetime-setup.kind(setup the cluster)./k8s/install-octostar.kind(bring up all the components in kubernetes)
The second script takes a lot of time (up to 20m), and the script output is a bit cryptic, but keep an eye on the kubernetes pods slowly coming up using:
kubectl get pods --all-namespaces
And occasionally checking the logs and state of each pod.
Take it for a spinβ
Open chrome and go to https://home.local.test, login with the following credentials:
- Username: admin
- Password: Welcome@123