Skip to main content
Version: 0.0.1

Cluster Configuration

k3s

The first and only kubernetes distribution I went with when configuring a new cluster on my computers. This was fairly simple to configure and comes with everything I needed to run my services. Traefik, CoreDNS, and Flannel are some of the essential pods that are automatically configured. The network backend was something I tinkered with for a long time as I believed there were network performance issues with flannel. But it turns out due to the default config of CoreDNS I was facing this, and any network backend could be used. There was some small differences from other kubernetes distributions as k3s does not follow the standard file layout.

Deploying a new cluster

These are the steps I currently follow when setting up a new cluster:

  1. Ensure the following are installed:
  2. Create the bitwarden auth token secret:
    kubectl create secret generic bw-auth-token -n <YOUR_NAMESPACE> --from-literal=token="<TOKEN_HERE>"
    Apply it to the following namespaces:
    • argocd
    • kube-system
    • default
  3. Create the github token secret:
    kubectl create secret docker-registry ghcr-secret --docker-server=https://ghcr.io --docker-username=$YOUR_GITHUB_USERNAME --docker-password=$YOUR_GITHUB_TOKEN --docker-email=$YOUR_EMAIL -n <NAMESPACE>
    Apply it to the following namespaces:
    • default
  4. Create Bitwarden Pods:
    kubectl apply -f manifests/bitwarden/bitwarden.k8s.yaml
  5. Create necessary folders for applications to store persistent data
  6. Apply manifests for these apps:
    kubectl apply -f manifests/traefik/traefik.k8s.yaml
    kubectl apply -f manifests/argocd/argocd.k8s.yaml
    kubectl apply -f manifests/application-set/application-set.k8s.yaml