KFD Installation
Once you customized the configuration file to suit your needs, you are ready to install KFD.
From a system that has access to the resources needed for your cluster (either a pre-existing Kubernetes cluster, a set of pre-existing VMs or bare-metal machines or AWS CLI with a configured profile), navigate to the folder that contains your configuration file and run:
furyctl apply
furyctl
will parse the configuration and will execute each phase in the following order: infrastructure
-> kubernetes
-> distribution
-> plugins
.
Some modules (Monitoring, Logging, Tracing), by default, need a StorageClass
to be already existing inside the Kubernetes cluster in order to dynamically provision their PersistentVolumeClaim
s. If there is no StorageClass
available, furyctl
will skip deploying the components that need one to function. Running furyctl
again once a StorageClass
is available will deploy these components.
To be able to install these modules, you can:
-
For components that can use an external S3-compatible bucket (Loki, Tempo, Mimir, Velero, etc.), change the
backend
property of these packages toexternalEnpoint
and provide the required credentials. -
Put a CSI of your choice in your configuration file's
plugins
section and runfuryctl apply
without parameters two times: the first run will install all components but the ones that need storage and after theplugins
phase the cluster will have aStorageClass
, so the second timefuryctl
can also install those modules.You can do this instead if you want more control:
furyctl apply --phase infrastructure # if applicable
furyctl apply --phase kubernetes # if applicable
furyctl apply --phase plugins
furyctl apply -
Install a CSI of your choice outside of KFD before running
furyctl apply
.
Post installation
After the installation, furyctl
will write a kubeconfig
file inside the same directory where you run it. You can use it to access your cluster with kubectl
:
kubectl get nodes --kubeconfig ./kubeconfig
If you don't have the kubeconfig
file, for example because you are working in a team that shared with you the configuration file without the kubeconfig
, you can retrieve it running:
furyctl get kubeconfig
If you need to add/change components inside your cluster, you can edit the configuration file and run furyctl apply
again.