Zelf hosten met Helm
Dit artikel leidt je door de procedure om Bitwarden te installeren en te implementeren in verschillende Kubernetes-implementaties met behulp van een Helm-kaart.
Dit artikel beschrijft de algemene stappen voor het hosten van Bitwarden op Kubernetes. Er zijn aanbiedersspecifieke gidsen beschikbaar om te bekijken hoe je een implementatie kunt aanpassen op basis van het specifieke aanbod van elke aanbieder:
Vereisten
Controleer voordat u verdergaat met de installatie of aan de volgende vereisten is voldaan:
- kubectlis geïnstalleerd.
- Helm 3is geïnstalleerd.
Je hebt een SSL-certificaat en -sleutel of toegang om er een te maken via een certificaatprovider.
Je hebt een SMTP-server of toegang tot een cloud SMTP-provider.
Een
opslagklassedie ReadWriteMany ondersteunt.U hebt een installatie-id en -sleutel die u hebt opgehaald van
https://bitwarden.com/host.
De kaart voorbereiden
De repo toevoegen aan Helm
Voeg de repo toe aan Helm met de volgende commando's:
Bashhelm repo add bitwarden https://charts.bitwarden.com/ helm repo update
Een naamruimte maken
Maak een naamruimte om Bitwarden in te implementeren. Onze documentatie gaat uit van een namespace met de naam bitwarden, dus pas de commando's aan als je een andere naam kiest.
Bashkubectl create namespace bitwarden
Een configuratie maken
Maak een my-values.yaml configuratiebestand, dat je zult gebruiken om je implementatie aan te passen, met het volgende commando:
Bashhelm show values bitwarden/self-host > my-values.yaml
Je moet op zijn minst de volgende waarden configureren in je my-values.yaml bestand:
Waarde | Beschrijving |
|---|---|
| Het domein dat zal verwijzen naar het openbare IP-adres van je cluster. |
| Of de nginx ingress controller gedefinieerd in de grafiek gebruikt moet worden |
| Bijvoorbeeld |
| Annotaties om toe te voegen aan de ingangscontroller. Als je de meegeleverde nginx controller gebruikt, zijn er standaardinstellingen die je moet uncommenten en naar behoefte kunt aanpassen. |
| Als je de standaard nginx controller gebruikt, zijn er standaardinstellingen die je naar behoefte kunt aanpassen. |
| De naam van uw TLS-certificaat. We zullen later |
| De naam van de uitgever van uw TLS-certificaat. We zullen later |
| E-mailadres dat wordt gebruikt voor uitnodigingen, meestal |
| De hostnaam of het IP-adres van uw SMTP-server. |
| De SMTP-poort die wordt gebruikt door de SMTP-server. |
| Of uw SMTP-server een coderingsprotocol gebruikt |
| Stel in op |
| Standaard |
| De naam van de gedeelde opslagklasse, die je moet opgeven en |
| De naam van je |
| Of de SQL-pod in de grafiek moet worden gebruikt. Alleen op |
| De SCIM pod is standaard uitgeschakeld. Stel waarde |
| Hoewel dit niet vereist is, raden we aan dit op |
Een geheim object maken
Maak een
Waarde | Beschrijving |
|---|---|
| Een geldig installatie-id opgehaald van |
| Een geldige installatiesleutel die is opgehaald van |
| Een geldige gebruikersnaam voor uw SMTP-server. |
| Een geldig wachtwoord voor de ingevoerde gebruikersnaam van de SMTP-server. |
| Client-ID voor YubiCloud Validation Service of zelf gehoste Yubico Validation Server. Als u YubiCloud gebruikt, kunt u |
| Geheime sleutel voor YubiCloud Validation Service of zelf gehoste Yubico Validation Server. Als u YubiCloud gebruikt, kunt u |
| Je HaveIBeenPwned (HIBP) API-sleutel, |
Als u de Bitwarden SQL-pod gebruikt, is Als je je eigen SQL-server gebruikt, moet | Credentials voor de database die is verbonden met uw Bitwarden-instantie. Wat nodig is, hangt af van of u de meegeleverde SQL-pod of een externe SQL-server gebruikt. |
Als je bijvoorbeeld het commando kubectl create secret gebruikt om deze waarden in te stellen, zou het er als volgt uitzien:
warning
Dit voorbeeld zal commando's opnemen in je shell geschiedenis. Er kunnen andere methoden worden overwogen om een geheim veilig in te stellen.
Bashkubectl create secret generic custom-secret -n bitwarden \
--from-literal=globalSettings__installation__id="REPLACE" \
--from-literal=globalSettings__installation__key="REPLACE" \
--from-literal=globalSettings__mail__smtp__username="REPLACE" \
--from-literal=globalSettings__mail__smtp__password="REPLACE" \
--from-literal=globalSettings__yubico__clientId="REPLACE" \
--from-literal=globalSettings__yubico__key="REPLACE" \
--from-literal=globalSettings__hibpApiKey="REPLACE" \
--from-literal=SA_PASSWORD="REPLACE"Vergeet niet om de secrets.secretName: waarde in my-values.yaml in te stellen op de naam van het aangemaakte geheim, in dit geval custom-secret.
Voorbeeld certificaat instellen
Implementatie vereist een TLS-certificaat en -sleutel, of toegang tot het aanmaken ervan via een certificaatprovider. Het volgende voorbeeld leidt je door het gebruik van
Installeer cert-manager op het cluster met het volgende commando:
Bashkubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.11.0/cert-manager.yamlEen uitgever van certificaten definiëren. Bitwarden raadt aan om de Staging-configuratie in dit voorbeeld te gebruiken totdat uw DNS-records naar uw cluster zijn verwezen. Zorg ervoor dat u de placeholder
e-mail:vervangt door een geldige waarde:Bashcat <<EOF | kubectl apply -n bitwarden -f - apiVersion: cert-manager.io/v1 kind: ClusterIssuer metadata: name: letsencrypt-staging spec: acme: server: https://acme-staging-v02.api.letsencrypt.org/directory email: me@example.com privateKeySecretRef: name: tls-secret solvers: - http01: ingress: class: nginx #use "azure/application-gateway" for Application Gateway ingress EOFAls je dit nog niet hebt gedaan, zorg er dan voor dat je de waarden
general.ingress.cert.tls.name:engeneral.ingress.cert.tls.clusterIssuer:instelt inmy-values.yaml. In dit voorbeeld stel je in:general.ingress.cert.tls.name: tls-secretgeneral.ingress.cert.tls.clusterIssuer: letsencrypt-staging
RawManifest bestanden toevoegen
Met de Bitwarden self-host Helm Chart kun je andere Kubernetes manifest-bestanden voor of na de installatie toevoegen. Om dit te doen, moet je de rawManifests sectie van de kaart bijwerken
Installeer de kaart
Voer het volgende commando uit om Bitwarden te installeren met de configuratie in my-values.yaml:
Bashhelm upgrade bitwarden bitwarden/self-host --install --namespace bitwarden --values my-values.yaml
Gefeliciteerd! Bitwarden is nu actief op https://your.domain.com, zoals gedefinieerd in my-values.yaml. Bezoek de webkluis in je webbrowser om te controleren of deze werkt. Je kunt nu een nieuwe account registreren en inloggen.
Je moet een SMTP-configuratie en bijbehorende geheimen hebben ingesteld om de e-mail voor je nieuwe account te kunnen verifiëren.
Volgende stappen
Back-up en herstel van database
In
Database back-ups en back-up beleid zijn uiteindelijk aan de uitvoerder. De back-up kan buiten het cluster worden ingepland om op regelmatige intervallen te worden uitgevoerd, of het kan worden aangepast om een CronJob-object binnen Kubernetes te maken voor planningsdoeleinden.
De back-uptaak maakt tijdstempelversies van de vorige back-ups. De huidige back-up heet gewoon vault.bak. Deze bestanden worden in het persistente volume van MS SQL-back-ups geplaatst. De hersteltaak zoekt naar vault.bak in hetzelfde permanente volume.