3. Advanced configuration

This section outlines how to configure the UltiHash cluster after the initial installation. It covers advanced customization options, including Helm chart adjustments, Kubernetes configurations, and integration settings.

Helm chart customization

The Helm chart used during installation is flexible and allows for various configurations to fine-tune the UltiHash setup according to your specific needs. Below are key areas where you might want to make changes:

1. Ingress configuration

  • Purpose: Configure how the UltiHash cluster is accessed externally.

  • Example: Set up Ingress with specific annotations and TLS configuration.

    entrypoint:
      ingress:
        host: <your_domain_name>
        annotations:
          kubernetes.io/ingress.class: nginx
          nginx.ingress.kubernetes.io/proxy-body-size: "0"
        tls:
         - hosts:
            - <your_domain_name>
           secretName: <tls_secret>
    
  • Recommendation: Ensure the ingress controller is configured for your environment (e.g., Nginx) and that TLS is used for secure communication.

2. Resource allocation

  • Purpose: Adjust the resource allocations for service replicas.

  • Example: Customize resource requests and limits for critical services.

    etcd:
      resources:
        limits:
          memory: "2Gi"
          cpu: "500m"
    
    entrypoint:
      resources:
        limits:
          memory: "16Gi"
          cpu: "8"
          
    database:
      primary:
        resources:
          limits:
            memory: "16Gi"
            cpu: "8"
          
    deduplicator:
      resources:
        limits:
          memory: "64Gi"
          cpu: "16"
    
    storage:
      resources:
        limits:
          memory: "32Gi"
          cpu: "16"
    
  • Recommendation: Adjust resources to balance performance with cost.

Kubernetes configuration

Beyond the Helm chart, you might need to adjust Kubernetes-specific settings to optimize the UltiHash deployment:

1. Node affinity and tolerations

  • Purpose: Control where pods are scheduled within your Kubernetes cluster.

  • Example: Use node affinity to keep storage pods on different nodes.

    storage:
      affinity:
        podAntiAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
          - labelSelector:
              matchExpressions:
              - key: role
                operator: In
                values:
                - storage
            topologyKey: kubernetes.io/hostname
    
  • Recommendation: Use affinity rules to optimize performance and ensure critical services run on appropriate nodes.

Integration configuration

UltiHash can be integrated with various monitoring, logging, and analytics tools. Below are key integrations you may want to configure:

1. Telemetry and monitoring

  • Purpose: Export metrics and logs to external systems like Prometheus and Loki.

  • Example: Configure the OpenTelemetry Collector to export data to Prometheus. Please refer to the Open Telemetry documentation.

    collector:
      config:
        exporters:
          prometheus/mycompany:
            endpoint: "1.2.3.4:1234"
        service:
          pipelines:
            metrics:
              receivers:
               - otlp
               - prometheus/mycompany
    
  • Recommendation: Set up monitoring early to ensure you can track system performance and diagnose issues as they arise.

Last updated