Customize your deployment

How to further customise your UltiHash Self-Hosted deployment via Kubernetes and Helm

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:

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.

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.


You also might need to adjust Kubernetes-specific settings to optimize the UltiHash deployment:

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.

  • Recommendation: Use affinity rules to optimize performance and ensure critical services run on appropriate nodes.


Secret management

  • Purpose: Securely manage and rotate Kubernetes secrets used by the UltiHash cluster.

  • Example: Rotate a Kubernetes secret without causing downtime:

  • Recommendation: Rotate secrets periodically and implement alerts for expired or compromised secrets.

Last updated

Was this helpful?