Nextc­loudi Ku­ber­ne­te­sesse sea­dis­ta­miseks soovitame kasutada sal­ves­tus­la­hen­dus­ena S3-d ja and­me­baasina MariaDB-d. Mõne kon­fi­gu­rat­sioo­ni­muu­da­tu­sega on võimalik jõudlust suu­ren­dada.

Nextcloud ja Ku­ber­ne­tes on suu­re­pä­rane kom­bi­nat­sioon

Nextc­loudi ja Ku­ber­ne­tesi kom­bi­nat­sioon koos S3-ga and­me­sal­ves­tuseks on pal­ju­lu­bav lahendus nii eraisi­ku­tele kui ka et­te­võ­te­tele. See mit­te­kau­ban­dus­lik pil­ve­tark­vara sobib ka­su­ta­miseks nii kohalike serverite kui ka väliste hostidega ning pakub võrreldes paljude Nextc­loudi al­ter­na­tiivi­dega suu­re­pä­rast tur­va­li­suse ar­hi­tek­tuuri. Ku­ber­ne­tes on avatud läh­te­koo­diga hal­dus­süs­teem kon­tei­ner­ra­ken­duste jaoks, mida saab lisaks ko­ha­li­kule ka­su­ta­misele rakendada ka pil­ve­ar­vu­tuses. Süsteemi peetakse paind­likuks, väga ska­lee­ri­ta­vaks ja tõrgeteta töötavaks. Loe edasi, et teada saada, kuidas Nextc­loudi Ku­ber­ne­te­sele sea­dis­tada.

Millised tin­gi­mu­sed peavad olema täidetud?

Enne kui saate alustada Nextc­loudi sea­dis­ta­mist Ku­ber­ne­te­ses, peavad olema täidetud mõned tin­gi­mu­sed. Teil peab olema piisavalt sal­ves­tus­ruumi ja Ku­ber­ne­tes-klaster peaks olema juba loodud. Sõltuvalt teie kasutada olevast mahust võite selle luua oma ko­ha­li­kule arvutile või kasutada pil­ve­sal­ves­tust. Veenduge lisaks, et Helm-pa­ke­ti­hal­dur on Ku­ber­ne­te­seks sea­dis­ta­tud. Kui kõik on valmis, võite jätkata järgmiste sammude juurde.

Kuidas sea­dis­tada Nextcloud Ku­ber­ne­te­sel samm-sammult

Kui vajalik alus on loodud, võite alustada Nextc­loudi sea­dis­ta­mist Ku­ber­ne­te­ses. Olu­li­se­mad sammud on kokku võetud järg­mis­tes jaotistes.

DNS-i sea­dis­ta­mine

Esimene samm on luua alam­do­mee­nile A-kirje, mis suunab soovitud IP-aad­res­sile. Kui kasutate kohalikku lahendust, on õige sihtkoht teie avalik IP-aadress; muul juhul sisestage pil­ve­tee­nuse poolt antud IP-aadress. Sõltuvalt DNS-tee­nu­se­pak­ku­jast võivad selleks vajalikud sammud veidi erineda.

Helm’i lisamine ja uuen­da­mine

Ku­ber­ne­tes võetakse ka­su­tusele Helm-pa­ket­ti­hal­duri abil, mis peaks olema teie arvutisse ins­tal­li­tud. Veenduge ka, et teil on ühendus oma Ku­ber­ne­tes-klastriga. Kui see on nii, lisage Helm-hoidla ja värs­ken­dage seda järgmiste käskudega:

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

Loo fail values.yaml

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

nano values.yaml
shell

Seejärel lisage sellesse faili järgmised spet­si­fi­kat­sioo­nid.

Cron-üles­an­nete sea­dis­ta­mine

Määrake kõi­ge­pealt cron-üles­an­nete aja­piirang. Unix-laadsetes ope­rat­sioo­ni­süs­teemi­des on cron-ülesanded ülesanded, mis käi­vi­tu­vad au­to­maat­selt taustal kindlate aja­va­he­mike järel. Ku­ber­ne­te­sel töötava Nextc­loudi puhul on tegemist peamiselt hool­dus­üles­an­ne­tega. Selles näites sea­dis­tame cron-ülesande käivituma iga viie minuti järel. Suuremate and­me­mah­tude puhul võib olla soo­vi­ta­tav sagedasem hooldus. Kasutage järgmist koodi:

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

HPA ak­ti­vee­ri­mine

Nüüd lülita välja ho­ri­son­taalne podide au­to­maatne ska­lee­rija (HPA), mis skaleerib podide arvu au­to­maat­selt. Kui kasutad Nextc­loudi jaoks Rea­dW­ri­teOnce’i ja soovid ska­lee­ri­mist käsitsi juhtida, peaksid HPA välja lülitama ja kes­ken­duma ühele podile. See lä­he­ne­mis­viis on mugavam, kui juur­de­pääsu vajab vaid mõni kasutaja. Sobiv kood on:

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

Pildi sildi üle­kir­ju­ta­mine

Et tagada Helm’i praeguse versiooni ar­ves­se­võt­mine, kirjutage pildi silt üle. Kasutage selleks järgmist koodi:

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

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

Vali andmebaas

And­me­ba­asi valimisel on teil kolm võimalust: MariaDB, PostgreSQL või SQLite. Meie näite puhul valime MariaDB. Kon­fi­gu­ree­rige see andmebaas järg­mi­selt ja lülitage teised kaks süsteemi välja:

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
shell

Mõõdikute jälgimine

Pro­met­heuse või Grafana abil seiret teos­ta­miseks sisesta järgmine kood. See on va­ba­taht­lik.

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
shell

Luba oma kon­fi­gu­rat­sioo­ni­fai­lide ka­su­ta­mine

Vaikimisi kasutab Nextcloud Ku­ber­ne­te­sis sea­dis­ta­miseks ka faili nimega config.php. Selle protsessi liht­sus­ta­miseks või paind­li­ku­maks muut­miseks saate lisada oma sea­dis­tus­fai­lid järgmise koodi abil:

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'
                     ]
            );
shell

Asenda pai­gu­tus­märk „example.com“ oma domeeniga.

Redis’i sea­dis­ta­mine

Redisega vahemällu sal­ves­ta­mise pa­ran­da­miseks ja üldise jõudluse suu­ren­da­miseks võid lisada ko­han­da­tud kon­fi­gu­rat­sioo­ni­faili. Vaikimisi ins­tal­li­takse Helm Redis ilma pa­roo­li­kait­sega, kuid soovitav on lisada täiendav turvatase. Kasuta järgmist koodi, et sea­dis­tada Redis pa­roo­li­kait­sega ja in­teg­ree­rida see Nextc­lou­diga:

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')
      )
    );
shell

Sal­ves­tus­bac­kendi kon­fi­gu­ree­ri­mine

Viimane kon­fi­gu­rat­sioo­ni­fail on lisatud sal­ves­tus­bac­kendi S3 jaoks. See on koodis sal­ves­ta­tud järg­mi­selt:

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
        )
      )
    );
shell

Lülita Redis välja

Kuna olete eespool kir­jel­da­tud viisil Redise vaikimisi sea­dis­tused ümber kir­ju­ta­nud, tuleb need nüüd veadest hoi­du­miseks järgmise koodiga kehtetuks muuta:

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
shell

Määra server, ad­mi­nist­raa­tor ja parool

Sisestage nüüd Ku­ber­ne­te­ses Nextc­loudi ka­su­ta­miseks serveri nimi, ad­mi­nist­raa­tori nimi ja vastav parool. Kasutage selleks järgmist koodi:

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

Asenda pai­gu­tus­mär­gid oma andmetega.

E-posti tea­vi­tuste sea­dis­ta­mine

Soovi korral võid sea­dis­tada SMTP-teenuse (Simple Mail Transfer Protocol), et saada teateid Nextc­lou­dist:

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

Pü­si­vus­draivi sea­dis­ta­mine

Järgnev püsivuse kon­fi­gu­rat­sioon on mõeldud andmetele, mida Nextcloud salvestab vastavale and­me­kand­jale. See ei mõjuta teie ka­su­ta­ja­and­meid, mida sal­ves­ta­takse S3-s vastavalt ajakavale:

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

Redis parooliga kaitsta

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

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

Piirata kordamisi

Kuna olete HPA juba välja lülitanud, peaksite piirama võimalike rep­li­kat­sioo­nide arvu ühega:

replicaCount: 1
shell

Nextc­loudi ins­tal­li­mine Ku­ber­ne­te­sesse

Lõpuks installi Nexcloud Ku­ber­ne­te­sesse ning lisa ka MariaDB ja Redis:

kubectl create ns nextcloud
helm upgrade --install --namespace nextcloud -f your-values.yaml nextcloud nextcloud/nextcloud
shell
Go to Main Menu