Installing Agents via Kubernetes

To ensure a smooth and standardized deployment of Connectware agents on your Kubernetes cluster, we recommend that you use the connectware-agent Helm chart. This approach streamlines the installation process and provides a more robust and maintainable solution compared to manual deployment.

Deploying Agents Using the connectware-agent Helm Chart

The connectware-agent Helm chart simplifies the deployment of Connectware agents on Kubernetes. Here is an overview of the steps:

  1. Add the Cybus Helm repository to your local Helm installation.

  2. Update your local Helm chart repository.

  3. Install the connectware-agent chart via Helm commands.

For detailed instructions on how to install agents via the connectware-agent Helm chart, see the Cybus Learn article.

Deploying Agents Manually

While manual deployment offers more control, it requires a deeper understanding of Kubernetes concepts and involves more steps than using the Helm chart.

To manually deploy agents on a Kubernetes cluster:

  1. Prepare a YAML manifest file with the necessary configurations. You'll need to set the same parameters as in other deployment methods.

  2. Create a Kubernetes secret containing the Cybus registry credentials. This is required for pulling Connectware container images from the registry.

  3. Deploy the manifest, which typically uses an emptyDir volume for storing agent data. However, for production environments, we recommend replacing this with a persistent volume to ensure data durability.

  • Use the following command to create a secret named cybus-docker-registry:

kubectl create secret docker-registry cybus-docker-registry \
--docker-server=registry.cybus.io \
--docker-username=john.doe \
--docker-password=abcd123 \
--docker-email=john.doe@example.org

Depending on your setup, use one of the following sets of credentials:

If you have a Cybus Portal account:

  • docker-username: Your Cybus Portal username

  • docker-password: Your Cybus Portal password

If you're using a Connectware license key:

  • docker-username: license

  • docker-password: Your Connectware license key

Example for Manual Agent Deployment

The following code example allows you to manually create an example manifest file:

apiVersion: apps/v1
kind: Deployment
metadata:
    # The id for this kubernetes object
    name: connectware-agent-deployment
    labels:
        # Attach labels for easy group selection
        app: protocol-mapper-agent
spec:
    replicas: 1
    selector:
        matchLabels:
            app: protocol-mapper-agent
    template:
        metadata:
            labels:
                app: protocol-mapper-agent
        spec:
            # Configure volumes used by the agent to store data across restarts
            volumes:
                - name: agent-data-volume
                  emptyDir: {}
            containers:
                - name: protocol-mapper-agent
                  # Container image. Watch out: Must use identical version tag to current Connectware version!
                  image: registry.cybus.io/cybus/protocol-mapper:1.0.32
                  env:
                      # Make the protocol-mapper runs as an agent
                      - name: CYBUS_AGENT_MODE
                        value: 'distributed'
                        # Set the name of the agent. This must match the agentName used in the commissioning file.
                      - name: CYBUS_AGENT_NAME
                        value: 'myAgent'
                        # The IP address or hostname where the Connectware is running
                      - name: CYBUS_MQTT_HOST
                        value: '10.11.12.13'
                  ports:
                      # Expose the ports used by the agent.
                      - containerPort: 443
                  # Configure mount points
                  volumeMounts:
                      - mountPath: /data
                        name: agent-data-volume
                  # Configure resource limits
                  resources:
                      limits:
                          cpu: 4000m
                          memory: 4Gi
            # Kubernetes secret used to pull the images from the Cybus registry
            imagePullSecrets:
                - name: cybus-docker-registry

Last updated

Logo

© Copyright 2024, Cybus GmbH