Install DKP on a small environment
You can install Kommander on a small environment with smaller memory, storage, and CPU requirements for testing and demo purposes. This topic describes methods for installing Kommander in these environments. Refer to the Kommander documentation for more information.
Enterprise considerations: D2iQ recommends performing testing and demo tasks in a single-cluster environment. The Enterprise license is designed for multi-cluster environments and fleet management, which require a minimum amount of resources. Applying an Enterprise license key to the previous installation adds modifications to your environment that can exhaust a small environment’s resources.
Prerequisites
Ensure you have done the following:
You have acquired a DKP license.
You have installed Konvoy.
You have reviewed the prerequisite section pertaining to your air-gapped, or networked environment.
Minimal Kommander installation
The YAML file that is used to install a minimal configuration of Kommander contains the bare minimum setup that allows you to deploy applications, and access the DKP UI. It does NOT include applications for cost monitoring, logging, alerting, object storage, etc.
In this YAML file you can find the lines that correspond to all platform applications which would be included in a normal Kommander setup. Applications that have enabled
set to false
are not taken into account during installation. If you want to test an additional application, you can enable it individually to be installed by setting enabled
to true
on the corresponding line in the YAML file.
For example, if you want to enable the logging stack, set enabled
to true
for grafana-logging
, grafana-loki
, logging-operator
and minio-operator
. Note that depending on the size of your cluster, enabling several platform applications could exhaust your cluster’s resources.
Some applications depend on other applications to work properly. Refer to the dependencies documentation to find out which other applications you need to enable to test the target application.
Initialize your Kommander installation and name it
kommander_minimal.yaml
:CODEdkp install kommander --init --kubeconfig=<cluster-kubeconfig>.conf -oyaml > kommander_minimal.yaml
Edit your
kommander_minimal.yaml
to match the following example:CODEapiVersion: config.kommander.mesosphere.io/v1alpha1 kind: Installation apps: dex: enabled: true dex-k8s-authenticator: enabled: true dkp-insights-management: enabled: false fluent-bit: enabled: true gatekeeper: enabled: true gitea: enabled: true grafana-logging: enabled: false grafana-loki: enabled: false kommander: enabled: true kube-prometheus-stack: enabled: false kubefed: enabled: true kubernetes-dashboard: enabled: false kubetunnel: enabled: false logging-operator: enabled: false minio-operator: enabled: false prometheus-adapter: enabled: false reloader: enabled: true traefik: enabled: true traefik-forward-auth-mgmt: enabled: true velero: enabled: false ageEncryptionSecretName: sops-age clusterHostname: ""
Install Kommander on your cluster with the following command:
CODEdkp install kommander --installer-config ./kommander_minimal.yaml --kubeconfig=<cluster-kubeconfig>.conf
After running the install command above, HelmReleases begin to appear on the cluster.
CODEkubectl -n kommander wait --for condition=Released helmreleases --all --timeout 15m
This will wait for each of the helm charts to reach their
Released
condition, eventually resulting in something resembling this:CODEhelmrelease.helm.toolkit.fluxcd.io/cluster-observer-1234567890 condition met helmrelease.helm.toolkit.fluxcd.io/dex condition met helmrelease.helm.toolkit.fluxcd.io/dex-k8s-authenticator condition met helmrelease.helm.toolkit.fluxcd.io/gitea condition met helmrelease.helm.toolkit.fluxcd.io/karma-traefik-certs condition met helmrelease.helm.toolkit.fluxcd.io/kommander condition met helmrelease.helm.toolkit.fluxcd.io/kommander-appmanagement condition met helmrelease.helm.toolkit.fluxcd.io/kube-oidc-proxy condition met helmrelease.helm.toolkit.fluxcd.io/kubecost-traefik-certs condition met helmrelease.helm.toolkit.fluxcd.io/kubefed condition met helmrelease.helm.toolkit.fluxcd.io/prometheus-traefik-certs condition met helmrelease.helm.toolkit.fluxcd.io/reloader condition met helmrelease.helm.toolkit.fluxcd.io/traefik condition met helmrelease.helm.toolkit.fluxcd.io/traefik-forward-auth-mgmt condition met
An alternative to using the --kubeconfig=<cluster-config>
flag is to initialize the KUBECONFIG environment variable. You can do this by running export KUBECONFIG=<cluster-config>
. Setting your KUBECONFIG (either by flag or by environment variable) ensures that Kommander is installed on the workload cluster.
When completed, you can verify your installation. For more on exploring your cluster, view the install Kommander topic.