Local Weka Home deployment
This topic provides procedures for deploying the Local Weka Home on a Minikube infrastructure, upgrading, modifying the configuration, and troubleshooting.
This implementation runs on Minikube (a lightweight Kubernetes implementation) installed on a single Docker container. You specify the configuration parameters in the config.yaml file as part of the deployment workflow.
Workflow: Local Weka Home deployment
1. Verify prerequisites
Verify that the following requirement are met:
A dedicated management server (or VM) for the installation.
The user account used for the installation has root privileges. Ensure that the
sudoers
file includes the root user.Server minimum requirements for up to 1000 Weka containers:
4 cores
32 GiB RAM
500 GiB disk space in /opt/local-path-provisioner (local storage of the collected data)
1 Gbps network
Docker version 20 or higher.
To scale up the Local Weka Home server, for each additional 1000 WEKA containers, add the following:
4 cores
10 GiB RAM
150 GiB disk space in /opt/local-path-provisioner (for every 14 days of data retention).
Supported operating systems:
Centos 7.9
Amazon Linux 2
Rocky 8.6
RHEL 8.2+
For using other operating systems, contact the Customer Success Team.
2. Prepare the management server
Disable the SELinux.
Disable the iptables, UFW, or firewalld.
Ensure the following ports are open and not used by any other process. Each port will be used for the process specified in the brackets.
6443
(kube-apiserver)10259
(kube-scheduler)10257
(kube-controller-manager)10250
(kubelet)2379
(etcd)2380
(etcd)80
(wekahome)443
(wekahome)Install the Docker Engine version 20 or higher on the management server according to the Docker documentation. To install the Docker on RHEL, see Install Docker Engine on Centos (the instructions in Install Docker Engine on RHEL do not work).
Run the following to verify that the required docker version is installed:
docker --version.
Run the following to start the docker and enable it:
systemctl start docker && systemctl enable docker
Run the following to set the iptables and pre-load it:
echo net.bridge.bridge-nf-call-iptables=1 >> /etc/sysctl.conf; sysctl -p
Run the following to install the rule tables manager, connection tracking, and multi-purpose relay tool:
yum install -y ebtables conntrack socat
Run the following to install the Traffic Control tool (tc):
yum install -y tc
(Depending on the Linux distribution,
tc
may already be installed. Or it is called iproute-tc. If it is, run:yum install -y iproute-tc
.)Verify that the HugePages is disabled (
HugePages_Total: 0
). Run the following command:grep HugePages_Total /proc/meminfo
If the returned value of the HugePages_Total is higher than 0, run the following to disable the HugePages:echo 0 > /proc/sys/vm/nr_hugepages
3. Download the Local Weka Home and Minikube packages
Download the latest wekahome-vm-docker-images and weka_minikube packages to the dedicated management server.
Minikube for Local Weka Home download current location and version:
curl -OL https://home-weka-io-offline-packages-dev.s3.eu-west-1.amazonaws.com/weka_minikube.tar.gz
Local Weka Home download current location and version:
curl -OL https://home-weka-io-offline-packages-dev.s3.eu-west-1.amazonaws.com/wekahome-vm-docker-images.tar.gz
4. Install the Minikube
Unpack the Minikube package:
tar xvf <file name>
From the
minikube_offline
directory, run the install script:./minikube-offline_install.sh
The installation takes about 3 minutes.Verify the minikube is installed successfully:
minikube status
If the minikube installation fails, run the command minikube logs
. A log file is created in /tmp
directory. Open the log file and search for the reason.
5. Install and configure Local Weka Home
Unpack the Local Weka Home package:
tar xvf <file name>
From the
wekahome_offline
directory, run:./update_config.sh
Open the
/root/.config/wekahome/config.yaml
file and set the following:
Run
./wekahome-install.sh
. For new installation, it takes about 5 minutes.Run
kubectl get pods
and verify in the results that all pods have the status Running or Completed. (To wait for the pods statuses, runwatch kubectl get pods
.)Verify the Local Weka Home is installed successfully. Run the following command line:
helm status homewekaio -n home-weka-io
6. Access the Local Weka Home portal and Grafana
The Local Weka Home URL is
https://<your_domain>
The Grafana URL of the Local Weka Home is
https://<your_domain>/stats/
The Weka Home REST API URL is
https://<your_domain>/api/
The user name for accessing the portals is
admin
.To obtain the password for accessing the Local Weka Home portal, run the following command:
kubectl get secret -n home-weka-io weka-home-admin-credentials -o jsonpath='{.data.admin_password}' | base64 -d
To obtain the password for accessing the Local Weka Home grafana portal, run the following command:
kubectl get secret -n home-weka-io weka-home-grafana-credentials -o jsonpath='{.data.password}' | base64 -d
To obtain the secret key of the Local Weka Home portal, run the following command:
kubectl get secret -n home-weka-io weka-home-encryption -o jsonpath='{.data.encryption_secret_key}' | base64 -d
7. Enable the WEKA cluster to send information to the Local Weka Home
By default, the WEKA cluster is set to send information to the public instance of Weka Home. To get the information in the Local Weka Home, set in the Weka cluster the URL of the Local Weka Home.
Connect to the WEKA cluster and run the following command:
weka cloud enable --cloud-url https://<ip or hostname of the Local Weka Home server>
8. Test the deployment
The Weka cluster uploads data to the Local Weka Home periodically and on-demand according to its information type (see the Which information is uploaded to the Weka Home section).
Access the Weka Home portal and verify that the test data appears.
To trigger a test event, run weka events trigger-event test
and verify the test event is received in the Local Weka Home portal under the Events section.
Upgrade the Local Weka Home
The Local Weka Home upgrade workflow is similar to the deployment workflow (but without reinstalling the Minikube).
Procedure:
Download the latest Local Weka Home package (wekahome-vm-docker-images). See the location in Download the Local Weka Home and Minikube packages.
Unpack the Local Weka Home package to the same directory used for installing the LWH.
tar xvf <file name> -C <path>
From the
wekahome_offline
directory, run./update_config.sh
If you want to modify the existing configuration, open the
/root/.config/wekahome/config.yaml
file and modify the settings (as described in Install and configure Local Weka Home).Run
./wekahome-install.sh
. For an upgrade, it takes about 2 minutes.Run
kubectl get pods
and verify in the results that all pods have the status Running or Completed. (To wait for the pods statuses, runwatch kubectl get pods
.)Verify the Local Weka Home is upgraded successfully. Run the following command line:
helm status homewekaio -n home-weka-io
Modify the Local Weka Home configuration
Suppose there is a change in the SMTP server in your environment, or you need to change the events retention period or any other settings in the Local Weka Home configuration, you can modify the existing config.yaml
with your new settings and apply them.
Procedure:
Open the
/root/.config/wekahome/config.yaml
file and do the following:Modify the settings (as described in Install and configure Local Weka Home).
If you update the following sections: TLS, admin credentials, encryption, and Grafana, add the line
force_update: true
to the end of the updated section in theconfig.yaml
file. For example:
Run
./wekahome-install.sh
Run
kubectl get pods
and verify in the results that all pods have the status Running or Completed. (To wait for the pods statuses, runwatch kubectl get pods
.)Verify the Local Weka Home is updated successfully. Run the following command line:
helm status homewekaio -n home-weka-io
If any changes made to the config.yaml required setting
force_update: true
, change it back tofalse
.
Troubleshoot the Local Weka Home deployment
Symptom: browsing to the Local Weka Home returns an error
The probable cause can be, for example, a communication problem.
Resolution
Retrieve the ingress pod (controller) of the Local Weka Home.
kubectl get pods -n ingress-nginx -o name|grep controller
Retrieve the logs and look for the error.
kubectl logs <pod name from previous command> -n ingress-nginx > nginx.out
Symptom: when executing any command on the Local Weka Home, the error “no space left” is displayed
The probable cause for this issue is that the docker root dir (/var/lib/docker) consumes disk space.
Resolution
Do one of the following:
Resize the disk and reinstall the Local Weka Home.
Relocate the docker root directory path to a new path on a larger device (if it exists) and copy the content from the old path to the new path.
Symptom: when testing the integration, the email is not received
The probable cause can be issues related to the SMTP server, such as wrong credentials or recipient email address.
Resolution
On the Integration page, select Test Integration. Wait until an error appears.
Retrieve the logs and search for the error. On the Local Weka Home terminal, run the following command:
for dep in `kubectl get deployment -n home-weka-io -o name`; do echo -----$dep-----; kubectl logs $dep --all-containers=true --timestamps=true --since=5m ; done
Last updated