Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Info

This document is not to be used for all production or POC deployment.

Contents

Table of Contents
minLevel1
maxLevel7

...

Please check here for installation requirements

K3s Installation

Installation

All the commands in this runbook were tested against a VM with Canonical, Ubuntu, 20.04 LTS, amd64 as root.

  1. Install K3s and wait for the pods to become ready:

    $
    Code Block
    language
    bash
    curl -sfL https://assets.master.k3s.getvisibility.com/k3s/k3s.sh | INSTALL_K3S_VERSION="v1.2326.910+k3s1" K3S_KUBECONFIG_MODE="644" sh -s - server --node-name=local-01
    $
    kubectl get deploy -n kube-system --output name | xargs -n1 -t kubectl rollout status -n kube-system
  2. Install Helm 3:

    $
    Code Block
    language
    bash
    wget --quiet https://raw.githubusercontent.com/helm/helm/master/scripts/get -O /tmp/get_helm.sh \
    && chmod 0755 /tmp/get_helm.sh \
    && /tmp/get_helm.sh -v v3.8.2
  3. Configure GetVisibility private Docker image registry (replace $USERNAME and $PASSWORD with the Docker credentials provided):

    $
    Code Block
    languagebash
    kubectl create secret docker-registry gv-docker-registry \
      --docker-server=https://images.master.k3s.getvisibility.com \
      --docker-username=$USERNAMEgvimages \
      --docker-password=$PASSWORD$GVIMAGES_PASSWORD \
      --docker-email=no@email.com
  4. Configure GetVisibility private Helm repository (replace $USERNAME and $PASSWORD with the Helm credentials provided):

    $
    Code Block
    language
    bash
    helm repo add gv_stable https://charts.master.k3s.getvisibility.com/stable --username $USERNAMEgvcharts --password $PASSWORD$GVCHARTS_PASSWORD
    $
    helm repo update
    

    Install Getvisibility Gatekeeper:

    Code Block
    $ 
  5. Install chart GetVisibility Essentials and wait for the pods to become ready.
    For Synergy (32 GB RAM machines), please replace keycloak.url= IPADDRESS/DNS/FQDN with IP Adress or FQDN or DNS name for Keycloak in formats like below
    https://192.168.10.1 or https://gv.domain.local or https://gv.getvisibility.com

    Code Block
    languagebash
    helm upgrade --install gv-gatekeeperessentials gv_stable/gv-gatekeeperessentials --wait \
    --namespacetimeout=gatekeeper-system10m0s --create-namespace \
    --kubeconfig /etc/rancher/k3s/k3s.yaml
    

    Install chart GetVisibility Essentials and wait for the pods to become ready.
    If you are installing Focus or Enterprise append --set eck-operator.enabled=true to the upgrade command in order to enable ElasticSearch.

    Code Block
    $  \
    --set eck-operator.enabled=true --set eck-operator.settings.cpu=1 \
    --set eck-operator.settings.memory=1 --set eck-operator.settings.storage=40 \
    --set updateclusterid.enabled=false --set keycloak.url=IPADDRESS/DNS/FQDN
    
    kubectl get deploy --output name | xargs -n1 -t kubectl rollout status

    For Focus and Enterprise (48+ GB RAM machines), please replace keycloak.url= IPADDRESS/DNS/FQDN with IP Adress or FQDN or DNS name for Keycloak in formats like below
    https://192.168.10.1 or https://gv.domain.local or https://gv.getvisibility.com

    Code Block
    helm upgrade --install gv-essentials gv_stable/gv-essentials --wait \
    --timeout=10m0s --kubeconfig /etc/rancher/k3s/k3s.yaml
    $ \
    --set eck-operator.enabled=true --set eck-operator.settings.cpu=8 \
    --set eck-operator.settings.memory=20 --set eck-operator.settings.storage=160 \
    --set updateclusterid.enabled=false --set keycloak.url= IPADDRESS/DNS/FQDN
    
    kubectl get deploy --output name | xargs -n1 -t kubectl rollout status
  6. Depending on the theme you want to use, run one of the commands below to install the chart GV Platform (don’t forget to replace $PRODUCT with either synergy or focus or enterprise):

    1. GetVisibility theme:

      Code Block
      languagebash
      $ helm upgrade --install gv-platform gv_stable/gv-platform --wait \
      --timeout=10m0s --kubeconfig /etc/rancher/k3s/k3s.yaml \
      --set-string clusterLabels.environment=prod \
      --set-string clusterLabels.cluster_reseller=getvisibility \
      --set-string clusterLabels.cluster_name=mycluster \
      --set-string clusterLabels.product=$PRODUCT
    2. Forcepoint theme:

      $
      Code Block
      language
      bash
      helm upgrade --install gv-platform gv_stable/gv-platform --wait \
      --timeout=10m0s --kubeconfig /etc/rancher/k3s/k3s.yaml \
      --set-string clusterLabels.environment=prod \
      --set-string clusterLabels.cluster_reseller=forcepoint \
      --set-string clusterLabels.cluster_name=mycluster \
      --set-string clusterLabels.product=$PRODUCT

...

In order to upgrade the essential services (e.g. Postgres, Kafka, MongoDB, Consul) run helm repo update and then the same command you used in step 65.

Synergy/Focus/Enterprise

In order to upgrade Synergy/Focus/Enterprise run helm repo update and then the same command you used in step 76.

Monitoring

You can optionally also install monitoring tools to collect metrics and logs of all services that are running inside the cluster:

  1. Install the CRDs:

    $
    Code Block
    language
    bash
    helm upgrade --install rancher-monitoring-crd gv_stable/rancher-monitoring-crd --wait \
    --kubeconfig /etc/rancher/k3s/k3s.yaml \
    --namespace=cattle-monitoring-system \
    --version=100.16.26+up19.0.518 \
    --create-namespace
    
  2. Install the monitoring tools:

    Code Block
    languagebash
    $ helm upgrade --install rancher-monitoring gv_stable/rancher-monitoring --wait \
    --kubeconfig /etc/rancher/k3s/k3s.yaml \
    --namespace=cattle-monitoring-system \
    --version=100.16.26+up19.0.518 \
    --set k3sServer.enabled=true \
    --set k3sControllerManager.enabled=true \
    --set k3sScheduler.enabled=true \
    --set k3sProxy.enabled=true
    --set prometheus.retention=5

To access the Grafana dashboard run the command kubectl port-forward svc/rancher-monitoring-grafana -n cattle-monitoring-system 3001:80 --address='0.0.0.0' and in your browser type the address http://$SERVER_IP:3001.

To access Prometheus dashboard run the command kubectl port-forward svc/rancher-monitoring-prometheus -n cattle-monitoring-system 3001:9090 --address='0.0.0.0' and in your browser type the address http://$SERVER_IP:3001.

Info

To expose Grafana via an ingress on the path /grafana (allowing access through https://IPADDRESS_or_DNSNAME/grafana), add the following flag to the monitoring installation command:

Code Block
--set global.grafana_ingress.enabled=true

Info

Add --debug to any helm upgrade command to show exactly what it’s waiting for. This is particularly useful to troubleshoot timeout limit exceeded errors.