Install Kaptain on an on-premises cluster

Install Kaptain on an on-premises cluster

On-Premise Installation

Kaptain natively supports the installation on an on-premise Konvoy cluster. Before installing Kaptain, please follow the Konvoy On-Premises Installation Guide to set up the on-prem Konvoy cluster. The cluster admin is responsible for configuring the Konvoy cluster.yaml correctly and ensuring the requisite addons are enabled.

Please note that the IP address of the Kaptain UI will come from the IP address range that is configured in the MetalLB load balancer.

The steps to install Kaptain on an on-premises cluster are as follows:

  • Follow the Konvoy On-Premises Installation Guide to configure the cluster.yaml. An example is shown below.
  • Ensure the Knative and NFS addons that are needed by Kaptain are enabled:
    - configRepository: https://github.com/mesosphere/kubeaddons-kaptain
      configVersion: stable-1.17-0.4.3
      addonsList:
      - name: kubeflow-nfs
        enabled: true
      - name: knative
        enabled: true
    
  • Spin up the Konvoy cluster:
    konvoy up
    
  • When the Konvoy cluster is ready, install Kaptain.

Here is an example of a cluster.yaml for an on-premise installation:

kind: ClusterConfiguration
apiVersion: konvoy.mesosphere.io/v1beta1
metadata:
  name: konvoy_v1.5.2
  creationTimestamp: "2020-05-19T21:14:16Z"
spec:
  kubernetes:
    version: 1.17.11
    controlPlane:
      controlPlaneEndpointOverride: "172.16.75.89:6443"
      certificate: {}
      keepalived: {}
    networking:
      podSubnet: 192.168.0.0/16
      serviceSubnet: 10.0.0.0/18
    cloudProvider:
      provider: none
    admissionPlugins:
      enabled:
      - AlwaysPullImages
      - NodeRestriction
  containerNetworking:
    calico:
      version: v3.13.5
      encapsulation: ipip
      mtu: 1480
  containerRuntime:
    containerd:
      version: 1.3.7
  osPackages:
    enableAdditionalRepositories: true
  nodePools:
  - name: worker
  addons:
  - configRepository: https://github.com/mesosphere/kubernetes-base-addons
    configVersion: stable-1.17-2.2.0
    addonsList:
    - name: cert-manager
      enabled: true
    - name: dashboard
      enabled: true
    - name: defaultstorageclass-protection
      enabled: true
    - name: dex
      enabled: true
    - name: dex-k8s-authenticator
      enabled: true
    - name: elasticsearch
      enabled: false
    - name: elasticsearch-curator
      enabled: false
    - name: elasticsearchexporter
      enabled: false
    - name: external-dns
      enabled: false
    - name: flagger
      enabled: false
    - name: fluentbit
      enabled: false
    - name: gatekeeper
      enabled: true
    - name: istio # Istio is currently in Preview
      enabled: true
    - name: kibana
      enabled: false
    - name: konvoyconfig
      enabled: true
    - name: kube-oidc-proxy
      enabled: true
    - name: localvolumeprovisioner
      enabled: true
    - name: metallb
      enabled: true
      values: |
        configInline:
          address-pools:
          - name: default
            protocol: layer2
            # configure addresses for your network
            addresses:
            - 172.16.75.225-172.16.75.250
    - name: nvidia
      enabled: false
    - name: opsportal
      enabled: true
    - name: prometheus
      enabled: true
    - name: prometheusadapter
      enabled: true
    - name: reloader
      enabled: true
    - name: traefik
      enabled: true
    - name: traefik-forward-auth
      enabled: true
    - name: velero
      enabled: false
  - configRepository: https://github.com/mesosphere/kubeaddons-dispatch
    configVersion: stable-1.17-1.2.2
    addonsList:
    - name: dispatch
      enabled: false
  - configRepository: https://github.com/mesosphere/kubeaddons-kommander
    configVersion: stable-1.17-1.1.2
    addonsList:
    - name: kommander
      enabled: false
  - configRepository: https://github.com/mesosphere/kubeaddons-kaptain
    configVersion: stable-1.17-0.4.3
    addonsList:
    - name: kubeflow-nfs
      enabled: true
    - name: knative
      enabled: true
  version: v1.5.2