# Kuidas installida Nextcloud Kubernetesesse

Nextcloudi Kubernetesesse seadistamiseks soovitame kasutada salvestuslahendusena S3-d ja andmebaasina MariaDB-d. Mõne konfiguratsioonimuudatusega on võimalik jõudlust suurendada.

## Nextcloud ja Kubernetes on suurepärane kombinatsioon

[Nextcloudi](https://www.ionos.com/et-ee/digitalguide/server/toeoeriistad/mis-on-nextcloud/) ja Kubernetesi kombinatsioon koos S3-ga andmesalvestuseks on paljulubav lahendus nii eraisikutele kui ka ettevõtetele. See **mittekaubanduslik pilvetarkvara** sobib kasutamiseks nii kohalike serverite kui ka väliste hostidega ning pakub võrreldes paljude Nextcloudi alternatiividega suurepärast turvalisuse arhitektuuri. Kubernetes on avatud lähtekoodiga haldussüsteem konteinerrakenduste jaoks, mida saab lisaks kohalikule kasutamisele rakendada ka pilvearvutuses. Süsteemi peetakse **paindlikuks, väga skaleeritavaks ja tõrgeteta töötavaks**. Loe edasi, et teada saada, kuidas Nextcloudi Kubernetesele seadistada.

Tip Kui soovid kasutada Nextcloudi koos Dockeriga, vaata meie digitaaljuhendis olevaid põhjalikke juhiseid. Oleme kirjeldanud ka [Nextcloudi paigaldamise](https://www.ionos.com/et-ee/digitalguide/server/seadistused/nextcloud-ubuntu-2204/) samme [Ubuntu 22.04-le.](https://www.ionos.com/et-ee/digitalguide/server/seadistused/nextcloud-ubuntu-2204/)

## Millised tingimused peavad olema täidetud?

Enne kui saate alustada Nextcloudi seadistamist Kuberneteses, peavad olema täidetud mõned tingimused. Teil peab olema piisavalt salvestusruumi ja Kubernetes-klaster peaks olema juba loodud. Sõltuvalt teie kasutada olevast mahust võite selle luua oma kohalikule arvutile või kasutada pilvesalvestust. Veenduge lisaks, et **Helm-paketihaldur** on Kuberneteseks seadistatud. Kui kõik on valmis, võite jätkata järgmiste sammude juurde.

## Kuidas seadistada Nextcloud Kubernetesel samm-sammult

Kui vajalik alus on loodud, võite alustada Nextcloudi seadistamist Kuberneteses. Olulisemad sammud on kokku võetud järgmistes jaotistes.

### DNS-i seadistamine

Esimene samm on luua alamdomeenile A-kirje, mis suunab soovitud IP-aadressile. Kui kasutate kohalikku lahendust, on õige sihtkoht teie avalik IP-aadress; muul juhul sisestage pilveteenuse poolt antud IP-aadress. Sõltuvalt DNS-teenusepakkujast võivad selleks vajalikud sammud veidi erineda.

### Helm’i lisamine ja uuendamine

Kubernetes võetakse kasutusele Helm-pakettihalduri abil, mis peaks olema teie arvutisse installitud. Veenduge ka, et teil on ühendus oma Kubernetes-klastriga. Kui see on nii, lisage Helm-hoidla ja värskendage seda järgmiste käskudega:

```shell
helm repo add nextcloud https://nextcloud.github.io/helm/
helm repo update
```

### Loo fail values.yaml

Looge nüüd järgmise käsuga uus Helm-diagramm:

```shell
nano values.yaml
```

Seejärel lisage sellesse faili järgmised spetsifikatsioonid.

### Cron-ülesannete seadistamine

Määrake kõigepealt **cron-ülesannete ajapiirang**. Unix-laadsetes operatsioonisüsteemides on cron-ülesanded ülesanded, mis käivituvad automaatselt taustal kindlate ajavahemike järel. Kubernetesel töötava Nextcloudi puhul on tegemist peamiselt hooldusülesannetega. Selles näites seadistame cron-ülesande käivituma iga viie minuti järel. Suuremate andmemahtude puhul võib olla soovitatav sagedasem hooldus. Kasutage järgmist koodi:

```shell
cronjob:
    annotations: {}
    curlInsecure: false
    enabled: true
    failedJobsHistoryLimit: 5
    image: {}
    schedule: '*/5*     *** '
    successfulJobsHistoryLimit: 2
```

### HPA aktiveerimine

Nüüd lülita välja horisontaalne podide automaatne skaleerija (HPA), mis skaleerib podide arvu automaatselt. Kui kasutad Nextcloudi jaoks ReadWriteOnce’i ja soovid skaleerimist käsitsi juhtida, peaksid HPA välja lülitama ja keskenduma ühele podile. See lähenemisviis on mugavam, kui juurdepääsu vajab vaid mõni kasutaja. Sobiv kood on:

```shell
hpa:
    cputhreshold: 60
    enabled: false
    maxPods: 10
    minPods: 1
```

### Pildi sildi ülekirjutamine

Et tagada Helm’i praeguse versiooni arvessevõtmine, kirjutage pildi silt üle. Kasutage selleks järgmist koodi:

```shell
image:
    repositor: nextcloud
    tag: 28.0.2-apache
    pullPolicy: IfNotPresent
```

Nüüd on valitud versioon 28.0.2 või uuem versioon.

### Vali andmebaas

Andmebaasi valimisel on teil kolm võimalust: MariaDB, PostgreSQL või SQLite. Meie näite puhul valime MariaDB. Konfigureerige see andmebaas järgmiselt ja lülitage teised kaks süsteemi välja:

```shell
internalDatabase:
    enabled: false
mariadb:
    db:
        name: nextcloud
        password: db-password
        user: nextcloud
    enabled: true
    master:
        persistence:
            accessMode: ReadWriteOnce
            enabled: true
            size: 8Gi
    replication:
        enabled: false
    rootUser:
        password: root-db-password
        forcePassword: true
postgresql:
    enabled: false
```

### Mõõdikute jälgimine

Prometheuse või Grafana abil seiret teostamiseks sisesta järgmine kood. See on vabatahtlik.

```shell
metrics:
    enabled: true
    https: false
    image:
        pullPolicy: IfNotPresent
        repository: xperimental/nextcloud-exporter
        tag: v0.3.0
    replicaCount: 1
    service:
        annotations:
            prometheus.io/port: '9205'
            prometheus.io/scrape: 'true'
        labels: {}
        type: ClusterIP
    timeout: 5s
```

### Luba oma konfiguratsioonifailide kasutamine

Vaikimisi kasutab Nextcloud Kubernetesis seadistamiseks ka faili nimega config.php. Selle protsessi lihtsustamiseks või paindlikumaks muutmiseks saate lisada oma seadistusfailid järgmise koodi abil:

```shell
nextcloud:
    configs:
        custom.config.php: |-
            <?php
            $CONFIG = array (
                'overwriteprotocol' => 'https',
                'overwrite.cli.url' => 'https://drive.example.com',
                'filelocking.enabled' => 'true',
                'loglevel' => '2',
                'enable_previews' => true,
                'trusted_domains' =>
                     [
                        'nextcloud',
                        'drive.example.com'
                     ]
            );
```

Asenda paigutusmärk „example.com“ oma domeeniga.

### Redis’i seadistamine

Redisega vahemällu salvestamise parandamiseks ja üldise jõudluse suurendamiseks võid lisada kohandatud konfiguratsioonifaili. Vaikimisi installitakse Helm Redis ilma paroolikaitsega, kuid soovitav on lisada täiendav turvatase. Kasuta järgmist koodi, et seadistada Redis paroolikaitsega ja integreerida see Nextcloudiga:

```shell
redis.config.php: |-
    <?php
    $CONFIG = array (
      'memcache.local' => '\\OC\\Memcache\\Redis',
      'memcache.distributed' => '\OC\Memcache\Redis',
      'memcache.locking' => '\OC\Memcache\Redis',
      'redis' => array(
        'host' => getenv('REDIS_HOST'),
        'port' => getenv('REDIS_HOST_PORT') ?: 6379,
        'password' => getenv('your-password-for-redis')
      )
    );
```

### Salvestusbackendi konfigureerimine

Viimane konfiguratsioonifail on lisatud salvestusbackendi S3 jaoks. See on koodis salvestatud järgmiselt:

```shell
s3.config.php: |-
    <?php
    $CONFIG = array (
      'objectstore' => array(
        'class' => '\\OC\\Files\\ObjectStore\\S3',
        'arguments' => array(
        'bucket'     => 'bucket-name',
        'autocreate' => true,
        'key'      => 's3-access-key',
        'secret'     => 's3-secret-key',
        'region'     => 's3-region',
        'hostname'   => 's3-endpoint',
        'use_ssl'    => true,
        'use_path_style' => true
        )
      )
    );
```

### Lülita Redis välja

Kuna olete eespool kirjeldatud viisil Redise vaikimisi seadistused ümber kirjutanud, tuleb need nüüd veadest hoidumiseks järgmise koodiga kehtetuks muuta:

```shell
defaultConfigs:
    .htaccess: true
    apache-pretty-urls.config.php: true
    apcu.config.php: true
    apps.config.php: true
    autoconfig.php: false
    redis.config.php: false
    smtp.config.php: true
```

### Määra server, administraator ja parool

Sisestage nüüd Kuberneteses Nextcloudi kasutamiseks serveri nimi, administraatori nimi ja vastav parool. Kasutage selleks järgmist koodi:

```shell
host: drive.example.com
password: your-password
username: name-of-admin
```

Asenda paigutusmärgid oma andmetega.

### E-posti teavituste seadistamine

Soovi korral võid seadistada SMTP-teenuse (Simple Mail Transfer Protocol), et saada teateid Nextcloudist:

```shell
mail:
    domain: example.com
    enabled: false
    fromAddress: user
    smtp:
      authtype: LOGIN
      host: example.com
      name: username
      password: your-password 
      port: 465
      secure: ssl
```

### Püsivusdraivi seadistamine

Järgnev püsivuse konfiguratsioon on mõeldud andmetele, mida Nextcloud salvestab vastavale andmekandjale. See ei mõjuta teie kasutajaandmeid, mida salvestatakse S3-s vastavalt ajakavale:

```shell
persistence:
    accessMode: ReadWriteOnce
    annotations: {}
    enabled: true
    size: 8Gi
```

### Redis parooliga kaitsta

Soovitav on Redis parooliga kaitsta. See aitab vältida autentimise vigu. Kasutage selleks järgmist koodi, asendades vajaduse korral oma parooli:

```shell
redis:
    enabled: true
    password: 'your-password-for-redis'
    usePassword: true
```

### Piirata kordamisi

Kuna olete HPA juba välja lülitanud, peaksite piirama võimalike replikatsioonide arvu ühega:

```shell
replicaCount: 1
```

### Nextcloudi installimine Kubernetesesse

Lõpuks installi Nexcloud Kubernetesesse ning lisa ka MariaDB ja Redis:

```shell
kubectl create ns nextcloud
helm upgrade --install --namespace nextcloud -f your-values.yaml nextcloud nextcloud/nextcloud
```


This is a markdown version of: [https://www.ionos.com/et-ee/digitalguide/server/seadistused/nextcloud-kubernetes/](https://www.ionos.com/et-ee/digitalguide/server/seadistused/nextcloud-kubernetes/) for AI/LLM consumption.