LogoLogo
Go to Syntho.AI
Dutch (AI Translated)
Dutch (AI Translated)
  • Welcome to Syntho
  • Overzicht
    • About Syntho
    • Get started
      • Introduction to data generation methods
      • Use Case: AI-generated synthetic data
      • Use Case: AI-generated synthetic time series data
      • Use Case: Database de-identification
    • Frequently asked questions
  • Werkruimten instellen
    • View workspaces
    • Create a workspace
      • Connect to a database
        • PostgreSQL
        • MySQL / MariaDB
        • Oracle
        • Microsoft SQL Server
        • DB2
        • Databricks
        • Hive
        • SAP Sybase
        • Azure Data Lake Storage (ADLS)
        • Amazon Simple Storage Service (S3)
    • Edit a workspace
    • Delete a workspace
    • Share a workspace
    • Transfer workspace ownership
  • Een gegevensgeneratietaak configureren
    • Configure table settings
    • Configure column settings
      • AI-powered generation
        • Sequence model
          • Prepare your sequence data
      • Mockers
        • Consistent mapping
        • Supported languages
      • Duplicate
      • Exclude
      • Hashing
      • Calculated columns
      • Primary Key / Foreign Key
    • Manage personally identifiable information (PII)
      • Discover and de-identify PII columns
        • Identify PII columns manually
        • Automatic PII discovery with PII scanner
      • Remove columns from PII list
      • Automatic PII discovery and de-identification in free text columns
      • Supported PII & PHI entities
    • Manage foreign keys
      • Foreign key inheritance
      • Add virtual foreign keys
        • Add virtual foreign keys
        • Use foreign key scanner
        • Import foreign keys via JSON
        • Export foreign keys via JSON
      • Delete foreign keys
      • Circular foreign key references
    • Validate and Synchronize workspace
    • View and adjust generation settings
    • Table relationships
      • Verify foreign keys
      • Synthesize individual tables with automatic key matching
      • De-identify PII columns
  • Syntho implementeren
    • Introduction
      • Syntho architecture
      • Requirements
        • Requirements for Docker deployments
        • Requirements for Kubernetes deployments
      • Access Docker images
        • Using internet
        • Without internet
    • Deploy Syntho using Docker
      • Preparations
      • Deploy using Docker Compose
      • Run the application
      • Manually saving logs
    • Deploy Syntho using Kubernetes
      • Preparations
      • Deploy Ray using Helm
        • Troubleshooting
      • Deploy Syntho using Helm
      • Validate the deployment
      • Troubleshooting
      • Upgrading the applications
    • Manage users and access
      • Single Sign-On (SSO) in Azure
      • Manage admin users
      • Manage non-admin users
    • Logs and monitoring
  • Subsetting
    • What is subsetting
    • Verify foreign keys
    • Configure subsetting
  • Syntho API
    • Syntho REST API
Powered by GitBook
On this page
  • De UI configureren
  • De backend configureren
  • Backend Database en Backend Redis
  • Backend Ingress
  • Admin user credentials
  • Geheime sleutel
  • De Core API configureren
  • Uitrollen

Was this helpful?

  1. Syntho implementeren
  2. Deploy Syntho using Kubernetes

Deploy Syntho using Helm

PreviousTroubleshootingNextValidate the deployment

Last updated 11 months ago

Was this helpful?

Om de Syntho Applicatie te implementeren, gebruiken we de Helm kaart in dezelfde repository als . De kaart kan worden gevonden in de Releases van de deployment-tools repo of het kan direct worden gekloond van de Github repo, waardoor het pad naar de kaart helm/syntho-ui wordt.

Om de UI te configureren kan het values.yaml bestand in helm/syntho-ui gebruikt worden. De volgende secties beschrijven de verschillende velden die kunnen worden ingesteld.

De UI configureren

Voor de UI moeten we eerst de image repository en tag instellen:

image:
  repository: synthoregistry.azurecr.io/syntho-core-frontend
  tag: nieuwste

We moeten ook de domeinnaam voor de UI instellen.

frontend_url: <hostnaam-of-ip>
frontend_protocol: https # http of https afhankelijk van de beschikbaarheid van een SSL-certificaat

Een ingress is nodig voor de UI en is onderdeel van de Helm chart, we kunnen de ingress configuratie als volgt instellen voor de UI:

ingress:
    ingeschakeld: waar
    naam: frontend-ingress
    className: nginx # Stel de klassenaam in van de ingress controller die je gebruikt
    annotaties: {
      cert-manager.io/cluster-issuer: "", # In het geval dat cert-manager wordt gebruikt voor SSL
      nginx.ingress.kubernetes.io/proxy-buffer-size: "32k",
      nginx.ingress.kubernetes.io/affinity: "cookie",
      nginx.ingress.kubernetes.io/use-regex: "true",
      nginx.ingress.kubernetes.io/proxy-connect-timeout: "600",
      nginx.ingress.kubernetes.io/proxy-leestime-out: "600",
      nginx.ingress.kubernetes.io/proxy-send-timeout: "600",
      nginx.ingress.kubernetes.io/proxy-body-size: "512m",
    }
    hosts:
      - host: <hostnaam>
        paden:
          - path: /
            pathType: Prefix
    
    tls:  # Als SSL niet wordt gebruikt, kan de tls-sectie worden verwijderd
      - hosts:
        - <hostname>
        secretName: frontend-tls # Stel in op een bestaand geheim of wanneer je cert-manager gebruikt om certificaten te beheren

Dit maakt een Ingress definitie aan voor zowel de UI als de backend applicatie. Een deel van het verkeer zal naar de backend gerouteerd worden om al het verkeer van dezelfde domeinnaam te kunnen bedienen.

Note: in het geval dat het SSL-certificaat een zelfondertekend certificaat is of een certificaat dat niet binnen de container kan worden geverifieerd, moeten we enkele extra variabelen instellen als de instantie het certificaat niet kan verifiëren.

Zie het volgende codeblok:

voorkant:
  env:
    _JAVA_OPTIONS: "-Dio.swagger.parser.util.RemoteUrl.trustAll=true -Dio.swagger.v3.parser.util.RemoteUrl.trustAll=true"

De backend configureren

De backend is verantwoordelijk voor het gebruikersbeheer en het beheer van de werkruimte. We moeten een paar variabelen correct instellen. Om te beginnen moeten we de image instellen:

backend:
  image:
    repository: synthoregistry.azurecr.io/syntho-core-backend
    tag: nieuwste

Backend Database en Backend Redis

Vervolgens moeten we de database en Redis referenties instellen. Als de instanties gedefinieerd in de Helm grafiek worden gebruikt, zijn er geen wijzigingen nodig. Anders moet het volgende veranderd worden:

backend:
  db:
    host: <hostnaam>
    poort: <poort>
    gebruiker: <gebruikersnaam>
    wachtwoord: <wachtwoord>
    naam: <database>
  redis:
    host: redis-svc
    poort: 6379
    db: 0

De Redis-sectie kan worden ingesteld zoals hierboven gedefinieerd als de Redis-instantie wordt gebruikt vanuit de Helm grafiek. Standaard wordt de Redis-instantie gebruikt die in de kaart is gedefinieerd. Als een andere Redis-instantie wordt gebruikt, moeten host, port en db mogelijk worden gewijzigd.

De database sectie moet worden aangepast als een andere database wordt gebruikt. Standaard wordt de database-instantie gebruikt die in de kaart is gedefinieerd. Als een andere database buiten de Helm grafiek wordt gebruikt, moeten de host, poort, gebruiker, wachtwoord en databasenaam worden gewijzigd. Om het gebruik en de inzet van de database-instantie gedefinieerd in de kaart uit te schakelen, kan het volgende worden ingesteld:

backend:
  database_enabled: false

Als de database wordt gebruikt vanuit de Helm grafiek, kan de waarde host worden ingesteld op database en port op 5432. De andere waarden kunnen worden gewijzigd als een andere gebruikersnaam, wachtwoord of databasenaam de voorkeur heeft. Dit past automatisch de database-instantie aan die is gedefinieerd in de Helm-kaart.

Backend Ingress

De backend ingress is geïmplementeerd als onderdeel van de ingress die is gedefinieerd voor de UI. We gebruiken padgebaseerde routering in de ingress om een deel van het verkeer naar de backend te routeren (specifiek alles wat naar /api/* gaat). Er is geen extra ingress nodig voor de backend.

Admin user credentials

Het is ook nodig om de referenties voor de eerste administratieve gebruiker in te stellen. We kunnen deze gebruiker op de volgende manier definiëren:

backend:
  gebruiker:
    gebruikersnaam: admin
    wachtwoord: wachtwoord
    e-mail: admin@company.com

Deze gebruiker kan worden gebruikt om in te loggen in de UI en andere gebruikers aan te maken.

Geheime sleutel

Tot slot moeten we een extra variabele instellen, zoals gedefinieerd in het onderstaande blok:

secret_key: (^ky&f)l&$3sqf2tctv-(pgzvh!+9$j%b5xe2y@&%p2ay*h$$a # Willekeurige tekenreeks om als geheime sleutel te gebruiken

De Core API configureren

Om de Core API te configureren, moeten we eerst de juiste image instellen. Om de afbeelding in te stellen gebruiken we het image veld in de core sectie.

image:
  repository: synthoregistry.azurecr.io/syntho-core-api
  tag: nieuwste

Verder moeten we de database hostnaam en credentials instellen:

core:
  db:
    gebruikersnaam: <database-gebruikersnaam>
    wachtwoord: <database-wachtwoord>
    naam: <database-naam>
    host: <database-host>
    poort: <database-poort>

De deployment kan eventueel de database-instantie zelf aanmaken. In dat geval moet het veld database_enabled worden ingesteld op true:

core:
  database_enabled: true

Dit maakt een database aan met de opgegeven gebruikersnaam, wachtwoord en databasenaam. De host voor deze database is backend en de poort is 5432 omdat dit een Postgres database is.

Tot slot moeten we een geheime sleutel instellen voor encryptie, de referenties voor een Redis-instantie en het IP-adres of de hostnaam van de Ray head waarmee we verbinding moeten maken. De hostnaam van het Ray hoofd is degene die genoemd wordt in de sectie [Ray implementeren met Helm] (deploy-ray-using-helm/).

geheime sleutel: UNIbrRR0CnhPEB0BXKQSDASaNzT1IYgQWWaLyQ1W1iPg= # Fernet Key: genereren door python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())" uit te voeren.
redis:
    host: redis-svc
    poort: 6379
    db: 1
ray_adres: <ray-head-ip-of-hostname>

De fernet sleutel kan gegenereerd worden met de cryptography bibliotheek in Python. Het uitvoeren van het volgende commando resulteert in een willekeurig gegenereerde fernet-sleutel in je CLI:

python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"

De Redis-instantie kan worden ingesteld door de redis: sectie aan te passen. De standaardwaarden wijzen naar de Redis-instantie die is geïmplementeerd als onderdeel van de Helm chart.

Uitrollen

Om de Syntho Applicatie te implementeren, gebruiken we de Helm grafiek van het Syntho team. De kaart kan gevonden worden in de helm/syntho map.

helm install syntho-ui ./helm/syntho-ui --values values.yaml --namespace syntho
eerder genoemd