This guide provides step-by-step instructions for setting up AkôFlow using Docker Desktop with Kubernetes. This is one of several deployment options for AkôFlow, specifically tailored for developers and users who prefer using Docker Desktop’s built-in Kubernetes for local development and testing.
Note: This guide focuses solely on the Docker Desktop with Kubernetes setup option. AkôFlow supports multiple runtime environments, including SDumont Supercomputer, Singularity, and other Kubernetes distributions. For those alternative deployment options, please refer to the appropriate documentation.
Requirements
- Docker Desktop:
- Download and install Docker Desktop from Docker’s official website.
- Ensure Kubernetes is enabled in Docker Desktop (instructions provided below).
- kubectl CLI:
- Install
kubectl
to interact with the Kubernetes cluster. - Installation guide: Kubernetes CLI installation.
- Install
- AkôFlow Release Client:
- Download the AkôFlow client from the official GitHub releases: AkôFlow Releases.
- System Resources:
- Minimum 4 CPUs and 4GB RAM allocated to Docker Desktop for Kubernetes.
- Storage requirements depend on the workflows you plan to execute.
Step 1: Enable Docker Desktop and Kubernetes
- Install Docker Desktop:
- Download and install Docker Desktop from the official website.
- Launch Docker Desktop and sign in with your Docker Hub account if prompted.
- Enable Kubernetes:
- Open Docker Desktop settings.
- Navigate to Settings > Kubernetes.
- Check Enable Kubernetes and click Apply & Restart.
- Verify Kubernetes is Running:
- Open a terminal and check the status of Kubernetes:
kubectl get nodes
- Ensure the node status is
Ready
.
- Open a terminal and check the status of Kubernetes:
Step 2: Deploy AkôFlow Resources
- Apply the Resource File:
- Deploy the AkôFlow service to the Docker Desktop Kubernetes cluster:
kubectl apply -f https://raw.githubusercontent.com/UFFeScience/akoflow/refs/heads/main/pkg/server/resource/akoflow-dev-dockerdesktop-with-server.yaml
- Deploy the AkôFlow service to the Docker Desktop Kubernetes cluster:
- Verify Deployment:
- Check the status of the pods:
kubectl get pods
- Ensure all pods are in the
Running
state.
- Check the status of the pods:
- Expose the AkôFlow Service:
- The AkôFlow web interface will be available on port 8080. Use the following command to verify:
kubectl get services
- Confirm that the service is mapped to port
8080
.
- The AkôFlow web interface will be available on port 8080. Use the following command to verify:
Step 3: Configure and Use the AkôFlow Client
- Download the AkôFlow Client:
- Go to the AkôFlow Releases page and download the appropriate version for your system.
- Run the AkôFlow Client:
- Use the AkôFlow client to interact with the AkôFlow server:
akfclient --host localhost --port 8080 --file <workflow-file.yaml>
- Replace
<workflow-file.yaml>
with the path to your workflow specification file.
- Use the AkôFlow client to interact with the AkôFlow server:
Step 4: Access the AkôFlow Web Interface
- Access via Browser:
- Open your web browser and navigate to:
http://localhost:8080
- Open your web browser and navigate to:
- Monitor Workflows:
- Use the web interface to view the status of running workflows, logs, and results.
Example Workflow Execution
- Prepare a Workflow Specification:
- Create a YAML file for your workflow (e.g.,
example-workflow.yaml
).
- Create a YAML file for your workflow (e.g.,
- Submit the Workflow:
- Run the AkôFlow client to submit the workflow:
akfclient --host localhost --port 8080 --file example-workflow.yaml
- Run the AkôFlow client to submit the workflow:
- Monitor Workflow Execution:
- Use the web interface to monitor progress or check logs using
kubectl
:kubectl logs -f <workflow-pod-name>
- Use the web interface to monitor progress or check logs using
Troubleshooting
- Kubernetes Not Ready:
- Ensure Docker Desktop has sufficient resources allocated under Settings > Resources.
- Service Not Accessible:
- Verify the service is exposed on port
8080
using:kubectl get services
- Verify the service is exposed on port
- Workflow Errors:
- Check the logs of the workflow pod:
kubectl logs <workflow-pod-name>
- Check the logs of the workflow pod:
For more information about other deployment options and advanced configurations, please refer to the AkôFlow documentation.