Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
Obě strany předchozí revize Předchozí verze Následující verze | Předchozí verze | ||
navody:vps:vpsadminos [2018/07/11 07:59] rene.la [Features] |
navody:vps:vpsadminos [2020/10/15 12:19] (aktuální) martyet [Migrace VPS z OpenVZ na vpsAdminOS] |
||
---|---|---|---|
Řádek 27: | Řádek 27: | ||
- Vývoj vpsAdminOS do použitelné podoby | - Vývoj vpsAdminOS do použitelné podoby | ||
- Integrace s vpsAdminem | - Integrace s vpsAdminem | ||
- | - Spuštění testovacího prostředí s vpsAdminOS (:!: zde se nacházíme :!:) | + | - Spuštění testovacího prostředí s vpsAdminOS |
- Testování, opravy chyb, doplnění chybějících funkcí, připrava na produkci | - Testování, opravy chyb, doplnění chybějících funkcí, připrava na produkci | ||
- | - Nové produkční nody používají vpsAdminOS, nové VPS lze vytvářet jen na nich | + | - Nové produkční nody používají vpsAdminOS |
+ | - vpsAdminOS je dostupný pro nové VPS v Praze. V Brně zatím k dispozici není. (:!: zde se nacházíme :!:) | ||
- Postupná migrace všech VPS z OpenVZ nodů na vpsAdminOS nody, jeden node po druhém | - Postupná migrace všech VPS z OpenVZ nodů na vpsAdminOS nody, jeden node po druhém | ||
- Pohádky je konec | - Pohádky je konec | ||
Řádek 45: | Řádek 46: | ||
===== Změny v chování VPS ===== | ===== Změny v chování VPS ===== | ||
- | ==== Nastavení sítě ==== | ||
- | Linux kernel nemá nic jako venet z OpenVZ, takže jsme si museli pomoci jinak. | ||
- | Síťování je řešeno přes dvojici rozhraní veth: jeden na nodu a druhý ve VPS. | ||
- | IP adresy VPS jsou routovány přes spojovací síť, která je každému VPS | ||
- | přidělena. | ||
- | |||
- | Například, přidělená spojovací síť pro IPv4 je ''10.100.10.0/30''. Veth rozhraní | ||
- | na nodu bude mít adresu ''10.100.10.1'', veth rozhraní ve VPS pak | ||
- | ''10.100.10.2''. Veřejné IP adresy VPS jsou routovány přes ''10.100.10.2'', | ||
- | např. veřejná IPv4 ''1.2.3.4'' by byla routována jako | ||
- | ''1.2.3.4/32 via 10.100.10.2''. Výchozí routa pro VPS je pak nastavena jako | ||
- | ''default via 10.100.10.1 src 1.2.3.4''. Rozhraní na nodu se konfiguruje | ||
- | automaticky, ve VPS se pak automaticky generují konfigurační soubory, které | ||
- | váš init systém používá k nastavení sítě, takže nic řešit nemusíte. První | ||
- | adresa na síťovém rozhraní ve VPS je však adresa spojovací, nikoli veřejná, | ||
- | jako tomu bylo doposud. Pokud si konfiguraci sítě upravujete, musíte se tomuto | ||
- | nastavení přizpůsobit. | ||
- | |||
- | ==== User namespaces ==== | ||
- | VPS ve vpsAdminOS využívají //user namespace//, tzn. //root// ve VPS má | ||
- | UID 0, ale z pohledu hostitelského systému na nodu je to nějaké jiné číslo, | ||
- | např. 666000. Každý člen má pak přidělen svůj user namespace, což zvyšuje úroveň | ||
- | izolace -- v případě nějaké chyby se útočník ani po úniku z kontejneru na node | ||
- | nedostane k datům jiných členů. | ||
- | |||
- | Každý člen má přidělen user namespace o velikosti 524288 uživatelských ID. | ||
- | Tzn. ve VPS můžete využít UID/GID od 0 do 524287. Všechny VPS daného člena jsou | ||
- | umístěny do tohoto user namespace. V budoucnu přibyde možnost si user namespace | ||
- | spravovat a nastavovat si vlastní mapování UID/GID, což umožní izolovat od sebe | ||
- | i VPS patřící jednomu členovi, případně vybrané UID/GID sdílet. | ||
- | |||
- | User namespace podstatně ovlivňují sdílení dat mezi VPS a NASem. Aktuálně | ||
- | **není možné** připojit NAS do VPS běžící na vpsAdminOS tak, aby měl VPS | ||
- | k datům přístup. Řešit se to bude tak, že u každého NAS datasetu budete mít | ||
- | na výběr, jaké mapování UID/GID má používat. Data pak budou přistupná | ||
- | jen z VPS, které mají nastaveno příslušné mapování. | ||
- | |||
==== Obecné ==== | ==== Obecné ==== | ||
Změny týkající se VPS nezávisle na distribuci: | Změny týkající se VPS nezávisle na distribuci: | ||
- | * ''/proc/cpuinfo'' a ''/proc/stat'' zobrazují všechny CPU, které má node k dispozici, využít však lze max 8 z nich (800% CPU) | ||
* ''/proc/stat'' u CPU aktuálně reportuje jen ''user'' (včetně ''system'') a ''idle'' ((https://lists.vpsfree.cz/pipermail/community-list/2018-May/009666.html)) | * ''/proc/stat'' u CPU aktuálně reportuje jen ''user'' (včetně ''system'') a ''idle'' ((https://lists.vpsfree.cz/pipermail/community-list/2018-May/009666.html)) | ||
* Nastavený swap se nezobrazuje v ''/proc/meminfo'' ((mělo by stačit upravit ''proc_meminfo_read()'' z LXCFS: https://github.com/lxc/lxcfs/blob/master/bindings.c#L3174)) | * Nastavený swap se nezobrazuje v ''/proc/meminfo'' ((mělo by stačit upravit ''proc_meminfo_read()'' z LXCFS: https://github.com/lxc/lxcfs/blob/master/bindings.c#L3174)) | ||
- | * ''dmesg'' je zakázán, neboť není virtualizován | ||
==== Debian/Ubuntu/Alpine ==== | ==== Debian/Ubuntu/Alpine ==== | ||
* Pro nastavení sítě při startu už není potřeba mít nainstalovaný ''ifconfig'' z ''net-tools'', používá se ''ip'' z ''iproute2''. | * Pro nastavení sítě při startu už není potřeba mít nainstalovaný ''ifconfig'' z ''net-tools'', používá se ''ip'' z ''iproute2''. | ||
- | * ''/etc/network/interfaces.{head,tail}'' nejsou vkládány přímo do ''/etc/network/interfaces'', ale načteny přes ''source'', tzn. už neovlivňují podobu ''/etc/network/interfaces'' tak jako s vzctl. | ||
* Pokud existuje adresář ''/etc/network/interfaces.d'', jeho obsah je načten před ''/etc/network/interfaces.tail''. | * Pokud existuje adresář ''/etc/network/interfaces.d'', jeho obsah je načten před ''/etc/network/interfaces.tail''. | ||
===== Změny chování vpsAdminu ===== | ===== Změny chování vpsAdminu ===== | ||
+ | * Pro připojení NASu a snapshotů se ve vpsAdminu [[navody:vps:vpsadminos:storage|nepoužívají mounty, ale NFS exporty]] | ||
+ | * [[navody:vps:vpsadminos:ip_adresy|Správa IP adres]] je rozdělena na routy a adresy na rozhraní | ||
* Reinstalace VPS na vpsAdminOS **nemaže** subdatasety ani nevrací konfiguraci VPS do výchozího stavu, tzn. např. nastavení VPS features zůstavá zachováno. | * Reinstalace VPS na vpsAdminOS **nemaže** subdatasety ani nevrací konfiguraci VPS do výchozího stavu, tzn. např. nastavení VPS features zůstavá zachováno. | ||
* V detailech VPS je možné změnit název síťového rozhraní, výchozí název zůstává ''venet0''. | * V detailech VPS je možné změnit název síťového rozhraní, výchozí název zůstává ''venet0''. | ||
Řádek 105: | Řádek 68: | ||
k dispozicí je testovací prostředí, tzn. takový druhý playground node, na kterém | k dispozicí je testovací prostředí, tzn. takový druhý playground node, na kterém | ||
si každý může vytvořit VPS. Ve formuláři na vytváření VPS stačí vybrat lokaci | si každý může vytvořit VPS. Ve formuláři na vytváření VPS stačí vybrat lokaci | ||
- | **Staging**. | + | **Staging** a odškrtnout (zrušit) **Keep platform**. |
Podmínky provozu jsou podobné jako pro [[navody:vps:playgroundvps|playground VPS]], | Podmínky provozu jsou podobné jako pro [[navody:vps:playgroundvps|playground VPS]], | ||
Řádek 113: | Řádek 76: | ||
rozdělit mezi 4 VPS. | rozdělit mezi 4 VPS. | ||
- | V současné době není možné klonovat/swapovat produkční VPS s testovacími VPS | + | Vytvořit můžete buď nové VPS, nebo si vyzkoušet naklonovat produkční VPS. Při |
- | na vpsAdminOS. Proces migrace VPS z OpenVZ na vpsAdminOS ještě není dořešen. | + | klonování dojde k odstranění mountů, místo kterých je nutné použít |
- | Omezen je také přístup k NASu, viz [[#user_namespaces|user namespaces]]. | + | [[navody:vps:vpsadminos:storage|exporty]]. |
- | + | ||
- | ==== Podporované distribuce ==== | + | |
- | + | ||
- | * Alpine 3.6, 3.7 | + | |
- | * Arch | + | |
- | * CentOS 7.5 | + | |
- | * Debian 8, 9 | + | |
- | * Fedora 27, 28 | + | |
- | * Gentoo | + | |
- | * NixOS | + | |
- | * Ubuntu 16.04, 18.04 | + | |
- | + | ||
- | ==== Ostatní distribuce ==== | + | |
- | + | ||
- | Pokud tvoje distribuce zatím není mezi podporovanými, můžeš nám pomoct | + | |
- | ji zprovoznit, nebo nezbývá než počkat, až to za tebe udělá někdo jiný, | + | |
- | viz [[https://github.com/vpsfreecz/vpsadminos/issues|otevřené požadavky]]. | + | |
==== Features ==== | ==== Features ==== | ||
Řádek 139: | Řádek 85: | ||
restartu VPS. | restartu VPS. | ||
- | {{ :navody:vps:features.png?300 |}} | + | {{ :navody:vps:155390153881360889.png?300 |}} |
- | * Docker (experimental) - Povolí zkušební podporu pro Docker. | + | * Docker (experimental) - Povolí podporu pro Docker. |
* FUSE - "Filesystem in Userspace" Povolí modul jádra, umožňující neprivilegovaným uživatelům vytvářet si vlastní souborové systémy. | * FUSE - "Filesystem in Userspace" Povolí modul jádra, umožňující neprivilegovaným uživatelům vytvářet si vlastní souborové systémy. | ||
* KVM - "Kernel-based Virtual Machine" Povolí použití KVM, pro HW podporu virtualizace. | * KVM - "Kernel-based Virtual Machine" Povolí použití KVM, pro HW podporu virtualizace. | ||
Řádek 149: | Řádek 95: | ||
Doporučujeme nastavit jen features, které opravdu potřebujete. | Doporučujeme nastavit jen features, které opravdu potřebujete. | ||
- | |||
- | Šablony distribucí se vytvářejí skripty ve | ||
- | [[https://github.com/vpsfreecz/build-vpsfree-templates/tree/vpsadminos|vpsadminos-templates]]. | ||
- | Pokud tam tvá distribuce není, je potřeba ji zde přidat. | ||
- | |||
- | Dále je nutné vyřešit podporu dané distribuce ve vpsAdminOS tak, aby byl | ||
- | ''osctl'' schopen zvenku nastavovat síť a IP adresy. Stačí postupovat | ||
- | podle [[https://vpsadminos.org/osctld/distributions/|návodu]]. Je potřeba | ||
- | implementovat podporu jak pro bridged veth, tak routed veth, viz | ||
- | [[https://vpsadminos.org/user-guide/networking/|dokumentace vpsAdminOS]] | ||
- | a [[https://github.com/vpsfreecz/vpsadminos/tree/master/osctld/lib/osctld/dist_config|zdrojové kódy]]. | ||
==== Více o vpsAdminOS ==== | ==== Více o vpsAdminOS ==== | ||
Řádek 170: | Řádek 105: | ||
Podle vlastního uvážení: | Podle vlastního uvážení: | ||
- | * [[informace:chat]]: #vpsfree a #vpsadminos na chat.freenode.net | ||
* podpora@vpsfree.cz | * podpora@vpsfree.cz | ||
* vpsAdminOS issues: https://github.com/vpsfreecz/vpsadminos/issues | * vpsAdminOS issues: https://github.com/vpsfreecz/vpsadminos/issues | ||
- | * vpsAdmin issues: https://github.com/vpsfreecz/vpsadmin/issues | + | * vpsAdmin (web UI, CLI, API) issues: https://github.com/vpsfreecz/vpsadmin/issues |
+ | * [[informace:chat]]: #vpsfree a #vpsadminos na chat.freenode.net | ||