NaplóindexDockup / terepjegyzet
Note / self-host-qdrant

A Qdrant saját üzemeltetése 2026-ban: tárhely, API-kulcsok és biztonsági mentések

Gyakorlati útmutató a Qdrant saját üzemeltetéséhez Dockerrel, portokkal, tartós adatokkal, TLS-sel, biztonsággal, biztonsági mentésekkel és a production használatot akadályozó hibákkal. Lépésről lépésre.

A Qdrant saját üzemeltetése az első újratelepítésnél válik igazán érdekessé, nem az első docker run parancsnál. Ha a tárhely jogosultságai hibásak, vagy a kliens a 6334-es portot használja, miközben csak a 6333-as van továbbítva, a Docker ettől még tökéletesen egészséges folyamatot jelezhet. Az alábbi telepítés a megfigyelhető működés köré épül: hozz létre egy collectiont a tervezett vektormérettel, szúrj be payloadot tartalmazó pontokat, futtass szűrt nearest-neighbor lekérdezést, majd állíts vissza egy collection snapshotot.

A Qdrant rendeltetése egyértelmű: vektor-adatbázis embeddingekhez és retrieval rendszerekhez. Ez a leírás megmutatja, minek kell nyilvánosnak maradnia, minek kell privátnak lennie, és mit kell helyreállítania egy biztonsági mentésnek.

Térképezd fel a Qdrantot a Docker használata előtt

Ne hagyd, hogy a Qdrant image véletlenül meghatározza a production architektúrát. Az image egy 6333-as porton futó folyamatot biztosít; a tárhely, a routing és a külső követelmények továbbra is tudatosan kialakított lifecycle-t igényelnek. A lokális runtime-követelmény a vektordimenziókhoz, payloadokhoz és indexekhez elegendő RAM és lemezterület. Az elvárt kapacitást, tulajdonjogot és hibamódot dokumentáld ahelyett, hogy image-defaultként hagynád őket.

A telepítés akkor áll készen az alaposabb tesztelésre, amikor létre tud hozni egy collectiont a tervezett vektormérettel, be tud szúrni payloadot tartalmazó pontokat, le tud futtatni egy szűrt nearest-neighbor lekérdezést, és vissza tud állítani egy collection snapshotot. Kövesd a tranzakciót a logokban, és figyeld a vektordimenziókat, a HNSW felépítését, a payload-indexeket, a collection-replikákat, valamint a memory-mapped adatok és a rendelkezésre álló RAM közötti különbséget. Ezek a megfigyelések megmutatják, hogy a jelenlegi topológia a megfelelő komponenst szigeteli-e el.

Irányítsd a Qdrantot anélkül, hogy HTTPS-ről félrevezető képet adnál

Válaszd ki a végleges Qdrant-hostnevet még azelőtt, hogy a felhasználók callbackeket vagy kliensbeállításokat mentenének, majd csak akkor tartsd nyilvánosan elérhetően a REST-et, ha a klienseknek valóban szükségük van rá, a gRPC-t pedig tartsd privátan. A platform route-ja egyszer terminálja a TLS-t, majd a privát 6333-as portra továbbít.

Futtasd le az acceptance tranzakciót kívülről. Ha a kliens egyáltalán nem éri el a Qdrantot, használd az SSL-ellenőrzési ellenőrzőlistát a DNS- és tanúsítványellenőrzésekhez. Ha a kérés eléri a Qdrantot, de a tárhely jogosultságai hibásak, vagy a kliens a 6334-es portot használja, miközben csak a 6333-as van továbbítva, ne a proxy redirectjeit módosítgasd tovább, hanem vizsgáld meg az alkalmazásspecifikus határfelületet.

Alakítsd át a lokális parancsot jól vizsgálható szolgáltatássá

Olyan parancsot használj, amely minden fontos döntést láthatóvá tesz. Ez az alapkonfiguráció a Qdrantot a host loopback interfészéhez köti, hozzáadja az ismert adatmountokat, és megadja az első szükséges beállítást. A publikálás előtt ellenőrizd a lokális követelményt: legyen elegendő RAM és lemezterület a vektordimenziókhoz, payloadokhoz és indexekhez.

docker run -d \
  --name qdrant \
  --restart unless-stopped \
  -p 127.0.0.1:6333:6333 \
  -v qdrant-data:/qdrant/storage \
  -e QDRANT__SERVICE__API_KEY=replace-with-a-long-random-value \
  qdrant/qdrant:latest

A floating tageket cseréld tesztelt verzióra vagy digestre. Indítás után vizsgáld meg a docker logs --tail 200 qdrant kimenetét, és erősítsd meg, hogy a folyamat a 6333-as porton figyel. Ezután hajtsd végre a Qdrant acceptance műveletét; a root oldal válasza nem bizonyítja, hogy a teljes forgatókönyv sikeres: hozz létre egy collectiont a tervezett vektormérettel, szúrj be payloadot tartalmazó pontokat, futtass szűrt nearest-neighbor lekérdezést, majd állíts vissza egy collection snapshotot.

Frissítsd a Qdrantot találgatás nélkül

A kapacitásteszteknek a vektordimenziókat, a HNSW felépítését, a payload-indexeket, a collection-replikákat, valamint a memory-mapped adatok és a rendelkezésre álló RAM közötti különbséget kell vizsgálniuk, nem pedig egy ismételt / kérésből állniuk. Futtasd le a „hozz létre egy collectiont a tervezett vektormérettel, szúrj be payloadot tartalmazó pontokat, futtass szűrt nearest-neighbor lekérdezést, majd állíts vissza egy collection snapshotot” forgatókönyvet reális concurrency mellett, és rögzítsd a latencyt, a hibaarányt és a tárhely növekedését.

A frissítés megtervezésekor számolj ezzel a kockázattal: a collection snapshotok, a storage format kompatibilitása és a klienskönyvtár viselkedése tesztelést igényelnek a szerververzió váltása előtt. Teszteld az új kiadást reprezentatív bemenettel, majd ismételd meg az acceptance tranzakciót, és hasonlítsd össze az eredményét. Ha a tárhely jogosultságai hibásak, vagy a kliens a 6334-es portot használja, miközben csak a 6333-as van továbbítva, rögzítsd a hibás tranzakciót, és ahelyett, hogy automatikusan az ingresst tennéd felelőssé, vizsgáld meg az első érintett határfelületet.

Alakítsd a Qdrant smoke tesztjét release-ellenőrzéssé

A Qdrant release candidate-je akkor kaphat forgalmat, ha teljesít egy rögzített forgatókönyvet: hozz létre egy collectiont a tervezett vektormérettel, szúrj be payloadot tartalmazó pontokat, futtass szűrt nearest-neighbor lekérdezést, majd állíts vissza egy collection snapshotot. Rögzítsd a forgatókönyvhöz tartozó image digestet, a tényleges nem titkos konfigurációt, a nyilvános origint és az időbélyegeket. A tesztadatok legyenek eldobhatók, de annyira reálisak, hogy ugyanazt az útvonalat teszteljék, mint amelyet a felhasználók használnak.

Futtasd le a runtime cseréje után, majd építsd újra a szolgáltatást a Qdrant snapshotjaiból és a tartós storage könyvtárból. A recovery akkor sikeres, ha egy snapshot ugyanazzal a pontszámmal, vektorkonfigurációval és reprezentatív lekérdezési eredményekkel hozza létre újra a collectiont. Hasonlítsd össze a vektordimenziók, a HNSW felépítése, a payload-indexek, a collection-replikák, valamint a memory-mapped adatok és a rendelkezésre álló RAM közötti különbség erőforrásméréseit az előző kiadással, és a promotion előtt vizsgáld ki az érdemi eltéréseket.

Végül teszteld ezt a kontrollált hibát: küldj ártalmatlan bemenetet az ehhez a határfelülethez kapcsolódó erőforrás- vagy formátumlimit közelében: a tárhely jogosultságai hibásak, vagy a kliens a 6334-es portot használja, miközben csak a 6333-as van továbbítva. Ellenőrizd, hogy a Qdrant megmagyarázza a hibát, nem károsítja a meglévő állapotot, és a helyes feltétel visszaállása után folytatja a működést. Ments el egy redaktált logrészletet és a helyreállítási időt. Ezek az ellenőrzések együtt a viselkedést, a tartósságot és az üzemeltethetőséget fedik le, nem csupán a folyamat uptime-ját.

Bizonyítsd, hogy a Qdrant túléli a cserét

A Qdrant esetében a redeploy biztonsága a Qdrant snapshotjaival és a tartós storage könyvtárral kezdődik. A bootstrap előtt mountold a /qdrant/storage útvonalat, írj bele ártalmatlan mintaadatokat, majd cseréld le a containert annak bizonyítására, hogy az útvonal valóban tartós. Az útvonalat úgy teszteld, hogy a container cseréjét akkor hajtod végre, amikor az ártalmatlan mintaadatok még léteznek; ez feltárja azokat a mountokat, amelyek egy könyvtárszinttel túl magasra vagy túl alacsonyra mutatnak.

Ezután teszteld a disaster recovery folyamatát egy üres hoston. Szükség esetén használj alkalmazáskonzisztens adatbázis-exportot, és ellenőrizd, hogy egy snapshot ugyanazzal a pontszámmal, vektorkonfigurációval és reprezentatív lekérdezési eredményekkel hozza létre újra a collectiont. A visszaállítással tesztelt adatbázis-biztonsági mentési útmutató erősebb célt ad annál, mint pusztán annak ellenőrzése, hogy létrejött-e egy archívumfájl.

Hitelesítő adatok, szerepkörök és publikált felületek

A Qdrant esetében az értékes felület nem feltétlenül a landing page. A leggyakoribb hiba egy hitelesítés nélküli API internetre publikálása. Ezt tudatosan előzd meg: adj korlátozott hatókörű API-hozzáférést az ingestion szolgáltatásoknak, a teljes adminisztrációs API-t pedig tartsd privát route-on.

A QDRANT__SERVICE__API_KEY értékét a Qdrantban betöltött szerepe szerint kezeld: a bizalmas értékeket tartsd távol a Gittől, dokumentáld a rotáció hatásait, és production környezetben soha ne helyettesítsd őket nyilvános példával. Használj unprivileged container usert, amikor az image támogatja, és ne mountolj oda nem tartozó hitelesítő adatokat. Az ingressthen alkalmazz rate- vagy méretlimiteket ott, ahol a nem megbízható munka felhasználhatja a vektordimenziókhoz, a HNSW felépítéséhez, a payload-indexekhez, a collection-replikákhoz, valamint a memory-mapped adatok és a rendelkezésre álló RAM közötti különbséghez szükséges erőforrásokat.

Helyezd át az ismételhető infrastruktúramunkát a Dockupra

A Dockup kezelheti a cserélhető platformelemeket: a forgalmat a 6333-as portra irányíthatja, kiadhatja a domaint és a tanúsítványt, beinjektálhatja a secret értékeket, csatlakoztathatja a tartós storage-ot, valamint összekötheti a Qdrantot menedzselt vagy privát módon csatolt szolgáltatásokkal. Ezt Dockup-infrastruktúrán vagy az általad csatolt szerveren is megteheti.

A Qdrant acceptance feladatai továbbra is explicit módon maradnak. Az one-click deployment után csak akkor tartsd nyilvánosan elérhetően a REST-et, ha a klienseknek valóban szükségük van rá, a gRPC-t pedig tartsd privátan; erősítsd meg a lokális követelményt — legyen elegendő RAM és lemezterület a vektordimenziókhoz, payloadokhoz és indexekhez —, majd futtasd ezt a forgatókönyvet: hozz létre egy collectiont a tervezett vektormérettel, szúrj be payloadot tartalmazó pontokat, futtass szűrt nearest-neighbor lekérdezést, majd állíts vissza egy collection snapshotot. Ez a felosztás szándékos: a Dockup megszünteti az ismétlődő infrastruktúra-beállításokat anélkül, hogy úgy tenne, mintha az alkalmazásszerepkörök, a szolgáltatói hitelesítő adatok vagy a restore policy maguktól eldőlnének.

Gyakran ismételt kérdések

Mire van szüksége a Qdrantnak egy production telepítéshez?

Irányítsd a Qdrant containert a 6333-as porton egyetlen HTTPS originen keresztül. A lokális runtime-követelmény a vektordimenziókhoz, payloadokhoz és indexekhez elegendő RAM és lemezterület. Ne tekintsd késznek a Qdrantot addig, amíg nem tudsz létrehozni egy collectiont a tervezett vektormérettel, beilleszteni payloadot tartalmazó pontokat, lefuttatni egy szűrt nearest-neighbor lekérdezést, és visszaállítani egy collection snapshotot.

Mely Qdrant-adatoknak kell bekerülniük egy biztonsági mentésbe?

Tartsd tartósan a /qdrant/storage útvonalat, és ugyanabba a recovery manifestbe vedd fel a Qdrant snapshotjait és a tartós storage könyvtárat. A tiszta Qdrant-restore csak akkor sikeres, ha egy snapshot ugyanazzal a pontszámmal, vektorkonfigurációval és reprezentatív lekérdezési eredményekkel hozza létre újra a collectiont.

Szüksége van a Qdrantnak HTTPS-re reverse proxy mögött?

Használj HTTPS-t a nyilvános Qdrant originhez, a 6333-as portot pedig tartsd a belső route-on. Helyesen alkalmazd a Qdrant-beállítást: csak akkor tartsd nyilvánosan elérhetően a REST-et, ha a klienseknek valóban szükségük van rá, a gRPC-t pedig tartsd privátan. A Qdrant esetében a HTTPS védi a hitelesítő adatokat vagy a felhasználói tartalmakat az átvitel során, és konzisztensen tartja az origintől függő kliensviselkedést.

Hogyan kell tesztelni egy Qdrant-frissítést?

Állítsd vissza a jelenlegi Qdrant-állapotot egy izolált deploymentbe, alkalmazd a jelölt verziót, majd ismételd meg az acceptance tranzakciót. Különösen figyelj erre, mert a collection snapshotok, a storage format kompatibilitása és a klienskönyvtár viselkedése tesztelést igényel a szerververzió váltása előtt. Tartsd meg az előző Qdrant image-et mindaddig, amíg nem érted pontosan az adatmigráció és a rollback határát.