Before you begin your Flow Enterprise Server 2021.1.1 installation, make sure to carefully read through the system requirements.
This article covers installing Flow Enterprise for the first time. Read more about upgrading Flow if you want to upgrade to 2021.1.1 from a previous version of Flow Enterprise.
In this article
Preinstallation instructions
- If you're using an external database, have your database administrator complete the necessary steps to prepare the database.
- Download the latest copy of the Flow Enterprise enterprise tools. This will be provided by your customer support representative.
- For the host server, copy
flow-enterprise-tools-<channel>[-airgap]-<version>.tar.gz
to the home directory of the user account used for the installation on the host server. - Extract the tools file using
tar xvf flow-enterprise-tools-<channel>[-airgap]-<version>.tar.gz
.Note: You can run any tool from the
bin
directory by runningcd /path/to/flow-enterprise-tools/bin ./[tool name]
. Install the tools package with theinstall-enterprise-tools.sh
scriptcd /path/to/flow-enterprise-tools ./install-enterprise-tools.sh
. The script will ask where to install the components. The default is/usr/local/share/flow-enterprise-tools
. - Create the following directories. These can all be bundled in a single volume
app directory (default: /opt/flow)
mkdir -p [app_directory]
chmod 755 [app_directory]
- If you're using an embedded database, make a database directory (default
/opt/flow/database
) on the primary host server onlymkdir -p [database_directory]
chmod 725 [database_directory]
Install Flow Enterprise
Now we are ready to reinstall Flow Enterprise 2021.1.1. For an online installation, run sudo flow-tools install
. For an airgapped installation, run sudo flow-tools install -a
. This only needs to be done on the primary node.
Important: A raw block device for each node is required for new Flow installations.
The device filter is in golang regular expression format. Device names vary between distributions. You can add multiple filters if the devices are named differently in worker nodes. An example of such a case may look like sd[b-z]|nvme[1-3]|xvd[b-c]
.
admin-user@primary-node:~$ sudo flow-tools install
[INFO] Verifying installation environment...
[INFO] HTTP command (curl): OK
[INFO] Archive command (tar): OK
[INFO] Swarm does not exist: OK
[INFO] Verifying system requirements...
[INFO] Checking networking...
[INFO] sysctl command : OK
[INFO] IPV6 Kernel module: LOADED
[INFO] IPV6 Check : OK
[INFO] IPv4 Forwarding: ENABLED
[INFO] Check IPtable Rules: OK
[INFO] Checking ufw firewall: INACTIVE
[INFO] Detecting proxy: NOT DETECTED
[INFO] https://replicated.app site check : OK
[INFO] Checking hardware...
[INFO] CPU: OK
[INFO] Memory: OK
[INFO] Space check in /var/lib/containerd: OK
[INFO] Space check in /var/lib/kubelet: OK
[INFO] Space check in /opt/replicated: OK
[INFO] Space for Repo cache in /opt/flow: 149 GB
[INFO] Disk Space Check: OK
[INFO] Non SSD Disks: NOT DETECTED
[INFO] Checking filesystem and permissions...
[INFO] Login restrictions check: OK
[INFO] bash Umask setting: OK
[INFO] /etc/profile Umask setting: OK
[INFO] Checking PATH for /usr/local/bin: OK
[INFO] Checking distro...
[INFO] No existing ceph raw disks detected
[INFO] Installation type is : NEW
=== Discovered Block Devices ===
/dev/nvme1n1
Above is the list of block devices found during valid device discovery
Please provide pattern to match devices that should be used for K8s volume storage: nvme[1-9]n1
[INFO] Validating block storage device filter...
Device match: /dev/nvme1n1
Device size: 500G
Device status: valid
[INFO] Total valid block storage: 500G
[INFO] Block storage: OK
[INFO] Adding patch to use raw ceph block devices for installation
[INFO] Installing KOTS application
[INFO] Saving environment
[INFO] Fetching kurl.sh installation script from: https://k8s.kurl.sh/flow-enterprise
[INFO] Fetching join script from: https://k8s.kurl.sh/flow-enterprise/join.sh
...
Installation
Complete ✔
The UIs of Prometheus, Grafana and Alertmanager have been exposed on NodePorts 30900, 30902 and 30903 respectively.
To access Grafana use the generated user:password of admin:yJ8faebKRe .
Kotsadm: http://192.168.0.180:8800
Login with password (will not be shown again): 3fwbTdGgj
To access the cluster with kubectl, reload your shell:
bash -l
[INFO] Loading environment
node/primary-node labeled
[INFO] Primary node has been labelled with
gui=true
worker=true
If adding an additional node, please run the following,
after adding a worker node:
kubectl label nodes worker- --selector='node-role.kubernetes.io/master'
[INFO] Existing ceph disk found : /dev/nvme1n1
Kubernetes connection credentials for worker node. Expires in 24 hours
Kubernetes Connection String : kubernetes-master-address=192.168.0.180:6443 kubeadm-token=e8sj6l.4h2oha16vr7zeths kubeadm-token-ca-hash=sha256:4373659bec1eafea7e91f13f75a91319dbdeeb6e52422e8af4caff4eab299f08 kubernetes-version=1.19.7 docker-registry-ip=10.96.1.73
You may add additional command line options to the flow-tools join command.
Run ./flow-tools join --help for all available flags and options like [ -a|-f|-k|-n|--proxy ] etc.
Node join command for this cluster is below:
sudo ./flow-tools join kubernetes-master-address=192.168.0.180:6443 kubeadm-token=e8sj6l.4h2oha16vr7zeths kubeadm-token-ca-hash=sha256:4373659bec1eafea7e91f13f75a91319dbdeeb6e52422e8af4caff4eab299f08 kubernetes-version=1.19.7 docker-registry-ip=10.96.1.73
[]
[INFO] To change the admin console password, run the following command:
kubectl kots reset-password -n default
[INFO] Setting up kubectl command for current user
[INFO] Processing home directory: /home/admin-user
[INFO] Setting up kube-config for user: admin-user
On a single node cluster, the installation will label the primary node appropriately by default. However in a multi-node installation, label the worker nodes as directed from the output of the installation command as seen above.
Reset the console password by running kubectl kots reset-password -n default
if desired.
Next, install Flow Enterprise on each of the worker nodes using the join command output at the end of the installation on the primary node. Read more about joining a node to the cluster.
Configure the KOTS app
Configure TLS
- Open your Chrome browser to the URL provided at the end of the installation on the primary node. It will look like
http://<ip address of server>:8800
.
Note: You will receive an error saying your connection is not private. Flow uses a self-signed SSL/TLS Certificate to secure the communication between your local machine and the admin console during setup. You can be confident that this is secure.
Click Advanced then click Proceed to continue to the admin console. - On the next screen, enter the following information from the Before you begin steps:
- Enter your hostname
- Upload your key and certificate
- Click Upload & Continue
Log in to the KOTS admin console
Note: The browser should redirect to the main KOTS admin console, where there is a prompt for login. If not, navigate to https://[hostname]:8800
.
- Enter the password provided during installation at the end of the installation script output.
- Upload the license file provided by your Flow representative.
- On the following screen, there are two options for installing Flow. If your server doesn't have internet access, choose the airgapped environment option and upload the pre-downloaded airgapped binary zip file. Otherwise, click on the download from the internet link to continue.
Set up Flow configurations
From your KOTS admin console, navigate to the Configs page.
The following configuration changes are recommended:
- The Flow URL must match the fully qualified domain name registered earlier.
- Provide a valid email address to receive email alerts.
- Click Email settings to provide the details of the SMTP/Email server port, credentials, protocol, and other details.
- If there is a proxy involved, check Use an outbound HTTP/HTTPS Proxy and add the details.
- Enter the details for your external Postgres database.
Once you've finished making your configuration changes, click Continue.
Deploy Flow
After saving your Flow configurations, you will then be brought back to the preflight check screen.
- Click Go to new version.
- Click Continue.
- To monitor the deployment process, run
kubectl get pods
to see each pod's status.
NAME READY STATUS RESTARTS AGE
flow-aod-repo-wkr-b4947d744-mqj56 0/1 ContainerCreating 0 10s
flow-bg-wkr-6896567898-t8vd5 0/1 ContainerCreating 0 9s
flow-db-0 0/1 ContainerCreating 0 5s
flow-helm-repo-784bd6d9c5-4kr26 0/1 ContainerCreating 0 9s
flow-inc-repo-wkr-6585444df-djphf 0/1 ContainerCreating 0 9s
flow-java-mgrt-mgr-6cb4666f98-qb5c6 1/1 ContainerCreating 0 8s
flow-java-prs-cdb9947c4-rr6p2 0/1 ContainerCreating 0 8s
flow-java-schedule-wkr-5ccfd4c4dc-xt4kq 0/1 ContainerCreating 0 8s
flow-java-tickets-5b549dc59b-hdgnb 0/1 ContainerCreating 0 7s
flow-mgrt-mgr-5cd4c54ffd-lwml8 1/1 ContainerCreating 0 7s
flow-new-repo-wkr-5fc5ff9d56-5hhgt 0/1 ContainerCreating 0 7s
flow-prj-wkr-58fbf699cb-p44rh 1/1 Running 0 6s
flow-redis-master-0 0/1 ContainerCreating 0 4s
flow-scheduler-6cf7f8f4fc-5qk6h 1/1 Running 0 6s
flow-syslog-575857b57b-6dpt6 1/1 Running 0 6s
flow-web-97ff99b4b-r22z5 0/1 ContainerCreating 0 5s
flow-web-proxy-65bfb69444-zzd6j 0/1 ContainerCreating 0 5s
helm-operator-5774fc8b5f-mt8rn 1/1 Running 0 25h
kotsadm-bdc7f8dbb-zrr4t 1/1 Running 0 25h
kotsadm-operator-6f47db555-cvw7k 1/1 Running 0 25h
kotsadm-postgres-0 1/1 Running 0 25h
kurl-proxy-kotsadm-7c5d9b7ddf-5hp7n 1/1 Running 0 25h
partition-table-1620060600-6mm6s 0/1 Error 0 25h
partition-table-1620139200-k8gjf 0/1 Error 0 3h32m
partition-table-1620151200-kxdvv 0/1 Completed 0 12m
Once all pods are running, you can start Flow.
[user@primary-node bin]$ kubectl get pods
NAME READY STATUS RESTARTS AGE
flow-aod-repo-wkr-b4947d744-zg4c4 1/1 Running 0 3h29m
flow-bg-wkr-6896567898-t98q7 1/1 Running 1 3h28m
flow-db-0 1/1 Running 0 3h28m
flow-helm-repo-784bd6d9c5-82rq2 1/1 Running 0 3h28m
flow-inc-repo-wkr-6585444df-c8rwz 1/1 Running 0 3h28m
flow-java-mgrt-mgr-6cb4666f98-h92mf 1/1 Running 0 3h28m
flow-java-prs-cdb9947c4-pgz82 1/1 Running 0 3h28m
flow-java-schedule-wkr-5ccfd4c4dc-blsr2 1/1 Running 0 3h28m
flow-java-tickets-5b549dc59b-l8rqz 1/1 Running 0 3h28m
flow-mgrt-mgr-5cd4c54ffd-kv4tr 1/1 Running 0 3h28m
flow-new-repo-wkr-5fc5ff9d56-b8b5r 1/1 Running 0 3h28m
flow-prj-wkr-58fbf699cb-t8lzv 1/1 Running 0 3h28m
flow-redis-master-0 1/1 Running 0 3h28m
flow-scheduler-6cf7f8f4fc-fb5h6 1/1 Running 0 3h28m
flow-syslog-575857b57b-rgfqt 1/1 Running 0 3h28m
flow-web-97ff99b4b-79gst 1/1 Running 0 3h28m
flow-web-proxy-65bfb69444-wbxxw 1/1 Running 0 3h28m
helm-operator-5774fc8b5f-mt8rn 1/1 Running 0 25h
kotsadm-bdc7f8dbb-zrr4t 1/1 Running 0 25h
kotsadm-operator-6f47db555-cvw7k 1/1 Running 0 25h
kotsadm-postgres-0 1/1 Running 0 25h
kurl-proxy-kotsadm-7c5d9b7ddf-5hp7n 1/1 Running 0 25h
partition-table-1620060600-6mm6s 0/1 Error 0 25h
partition-table-1620139200-k8gjf 0/1 Error 0 3h28m
partition-table-1620150600-5n2hn 0/1 Completed 0 18m
partition-table-1620151200-kxdvv 0/1 Completed 0 8m41s
run-unified-deduper-sync-1620144000-pp9pl 0/1 Completed 0 128m
run-unified-deduper-sync-1620151200-96545 0/1 Completed 0 8m41s
Log in to Flow
- Navigate to your Flow URL
- Enter your organization name and the primary email. Choose a password to log in.
This is a great time to connect with your Pluralsight Flow representative to talk about next steps for your trial or onboarding experience. For steps to get started with Flow, check out our Getting Started guide.