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 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.
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:
helm repo add nextcloud https://nextcloud.github.io/helm/
helm repo updateshellLoo fail values.yaml
Looge nüüd järgmise käsuga uus Helm-diagramm:
nano values.yamlshellSeejä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:
cronjob:
annotations: {}
curlInsecure: false
enabled: true
failedJobsHistoryLimit: 5
image: {}
schedule: '*/5* *** '
successfulJobsHistoryLimit: 2shellHPA 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:
hpa:
cputhreshold: 60
enabled: false
maxPods: 10
minPods: 1shellPildi sildi ülekirjutamine
Et tagada Helm’i praeguse versiooni arvessevõtmine, kirjutage pildi silt üle. Kasutage selleks järgmist koodi:
image:
repositor: nextcloud
tag: 28.0.2-apache
pullPolicy: IfNotPresentshellNüü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:
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: falseshellMõõdikute jälgimine
Prometheuse või Grafana abil seiret teostamiseks sisesta järgmine kood. See on vabatahtlik.
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: 5sshellLuba 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:
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'
]
);shellAsenda 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:
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')
)
);shellSalvestusbackendi konfigureerimine
Viimane konfiguratsioonifail on lisatud salvestusbackendi S3 jaoks. See on koodis salvestatud järgmiselt:
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
)
)
);shellLü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:
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: trueshellMäära server, administraator ja parool
Sisestage nüüd Kuberneteses Nextcloudi kasutamiseks serveri nimi, administraatori nimi ja vastav parool. Kasutage selleks järgmist koodi:
host: drive.example.com
password: your-password
username: name-of-adminshellAsenda paigutusmärgid oma andmetega.
E-posti teavituste seadistamine
Soovi korral võid seadistada SMTP-teenuse (Simple Mail Transfer Protocol), et saada teateid Nextcloudist:
mail:
domain: example.com
enabled: false
fromAddress: user
smtp:
authtype: LOGIN
host: example.com
name: username
password: your-password
port: 465
secure: sslshellPü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:
persistence:
accessMode: ReadWriteOnce
annotations: {}
enabled: true
size: 8GishellRedis parooliga kaitsta
Soovitav on Redis parooliga kaitsta. See aitab vältida autentimise vigu. Kasutage selleks järgmist koodi, asendades vajaduse korral oma parooli:
redis:
enabled: true
password: 'your-password-for-redis'
usePassword: trueshellPiirata kordamisi
Kuna olete HPA juba välja lülitanud, peaksite piirama võimalike replikatsioonide arvu ühega:
replicaCount: 1shellNextcloudi installimine Kubernetesesse
Lõpuks installi Nexcloud Kubernetesesse ning lisa ka MariaDB ja Redis:
kubectl create ns nextcloud
helm upgrade --install --namespace nextcloud -f your-values.yaml nextcloud nextcloud/nextcloudshell