Cześć! W tym poradniku pokażę jak podzielić VPS KVM na mniejsze VPS'y (kontenery) z wirtualizacją LXC. Każdy kontener będzie miał przydzielone inne porty, więc wystarczy nam tylko jeden adres IP. Całością będziemy zarządzać przez darmowy panel ProxmoX który sami zainstalujemy 😄
1. Co będzie nam potrzebne?
- Dowolny VPS z aktualnej oferty LVL UP (oprócz KVM PL 1GB)
- Trochę czasu
2. Pobieranie obrazu ISO ProxmoX'a
Przechodzimy na oficjalną stronę ProxmoX'a oraz kilkamy zakładkę Downloads
. W kategorii Download Proxmox software, datasheets and documentation Files
klikamy przycisk Download
w pierwszej pozycji.
Po chwili rozpocznie się pobieranie pliku ISO - ma ono około 600MB więc musimy chwilę poczekać :slight_smile:
3. Przesyłanie pliku .iso do panelu ProxmoX
Może to trochę dziwnie zabrzmi, ale musimy teraz przesłać pobrane ISO panelu ProxmoX do panelu ProxmoX gdzie możemy zarządzać serwerem VPS. Aby to zrobić, musimy się najpierw zalogować - w panelu klienta przechodzimy do zakładki z serwerem VPS oraz klikamy przycisk:
Po chwili zobaczymy dane logowania do panelu ProxmoX naszego serwera VPS. Przechodzimy pod podany adres. Dla ułatwienia wybieramy język polski z rozwijanej listy. Po zalogowaniu z lewej strony przeglądarki wybieramy ostatni element.
Obok zaznaczamy
Teraz klikamy przycisk w górnej części panelu oraz wybieramy i przesyłamy pobrany wcześniej obraz ISO. Ponownie musimy chwilę poczekać. Po poprawnym przesłaniu obrazu zobaczymy go na liście.
4. Instalacja panelu ProxmoX
Teraz klikamy na i przechodzimy do zakładki po czym dwukrotnie klikamy . Teraz wybieramy przesłany obraz ISO:
Zatwierdzamy przyciskiem OK i przechodzimy do zakładki . Teraz musimy działać szybko - z rozwijanej listy wybieramy Restart:
Odrazu po kliknięciu klikamy również na obszar gdzie widzimy konsolę serwera w celu ukatywnienia okna. Zanim napis ProxmoX
zniknie musimy wcisnąć na naszej klawaiaturze przycisk ESC
. Jeżeli zobaczysz napisy podobne do tych
to znaczy że się udało. Teraz już nie musimy się śpieszyć. Jeżeli jednak uruchamia się system operacyjny z dysku to oznacza to, że robisz coś nieprawidłowo lub zbyt wolno. Teraz zgodnie z widocznymi napisami chcemy uruchomić instalator ProxmoX'a z napędu DVD na ata1 a więc wciskamy na klawiaturze przycisk 3
. Po chwili powinien być widoczny taki ekran:
Teraz zatwierdzamy pierwsza opcję wciskając przycisk enter. Po chwili instalator załaduje się. Prawdopodobnie zobaczysz taki komunikat:
Należy go zignorować wciskając przycisk OK. Teraz czytamy (:kappa:) i akceptujemy EULA przyciskiem . Kolejny ekran dotyczy konfiguracji dysków - zostawiamy domyślne ustawienia i klikamy przycisk . Upewnij się, że na dysku nie ma żadnych potrzebnych ci danych, ponieważ wszystko zostanie usunięte. W następnym kroku wpisujemy Poland
w pierwszym polu tekstowym i ponownie klikamy przycisk .
W kolejnym etapie dwukrotnie wpisujemy hasło którym chcemy się logować do panelu ProxmoX oraz nasz adres e-mail na który otrzymamy powiadomienie jeżeli któryś z kontenerów z jakiegoś powodu nie będzie działał prawidłowo. Klikamy przycisk .
Teraz w polu Hostname
wpisujemy nazwę hosta - może być to np. p1.example.com
.
Resztę ustawień zostawiamy domyślnie - powinny one zostać wykryte automatycznie dzięki serwerowi DHCP. Teraz klikamy przycisk i czekamy aż instalacja zakończy się. Powinno to zająć mniej niż 5 minut :slight_smile:. Po zakończeniu instalacji zobaczymy
Teraz klikamy i czekamy aż serwer uruchomi się ponownie. Tym razem nie musimy nic wciskać.
Po ponownym uruchomieniu powinniśmy zobaczyć taki ekran:
5. Konfiguracja ProxmoX'a
Wchodzimy w przeglądarce pod adres https://xxx.xxx.xxx.xxx:8006
zastępując xxx.xxx.xxx.xxx
adresem IP naszego VPS'a.
Uwaga! Koniecznie trzeba użyć protokołu https ponieważ ProxmoX wymusza jego użycie.
Pewnie zobaczysz taki komunikat:
Klikamy przycisk oraz napis Otwórz stronę xxx.xxx.xxx.xxx (niebezpieczną)
Teraz na ekranie logowania wprowadź nazwę użytkownika root
, podane przy instalacji hasło oraz wybierz język polski. Pozostaw domyślnie wybraną autoryzację Linux
. Kliknij przycisk .
Zobaczysz taki komunikat:
Jest to tylko zachęta do kupna lepszej wersji - kliknij przycisk
Jak widać panel wygląda identycznie tak jak ten od zarządzania serwerem VPS:
Zanim zaczniemy tworzyć kontenery LXC, musimy edytować jeszcze plik /etc/network/interfaces
na serwerze gdzie zainstalowany jest panel ProxmoX. Łączymy się z SFTP używając programu np. WinSCP używając adresu IP serwera VPS, nazwy użytkownika root
oraz hasła podanego przy instalacji. Otwórz wspomniany wyżej plik przy użyciu programu np. Notepad++.
Aktualnie plik powinien wyglądać podobnie do tego:
auto lo
iface lo inet loopback
iface ens18 inet manual
auto vmbr0
iface vmbr0 inet static
address xxx.xxx.xxx.xxx
netmask 255.255.255.255
gateway 51.68.154.254
bridge_ports ens18
bridge_stp off
bridge_fd 0
Należy na jego końcu dokleić poniższy tekst:
auto vmbr2
iface vmbr2 inet static
address 192.168.100.1
netmask 255.255.255.0
bridge_ports none
bridge_stp off
bridge_fd 0
post-up echo 1 > /proc/sys/net/ipv4/ip_forward
post-up iptables -t nat -A POSTROUTING -s '192.168.100.0/24' -o vmbr0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '192.168.100.0/24' -o vmbr0 -j MASQUERADE
Ostatecznie plik powinien wyglądać tak:
auto lo
iface lo inet loopback
iface ens18 inet manual
auto vmbr0
iface vmbr0 inet static
address xxx.xxx.xxx.xxx
netmask 255.255.255.255
gateway 51.68.154.254
bridge_ports ens18
bridge_stp off
bridge_fd 0
auto vmbr2
iface vmbr2 inet static
address 192.168.100.1
netmask 255.255.255.0
bridge_ports none
bridge_stp off
bridge_fd 0
post-up echo 1 > /proc/sys/net/ipv4/ip_forward
post-up iptables -t nat -A POSTROUTING -s '192.168.100.0/24' -o vmbr0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '192.168.100.0/24' -o vmbr0 -j MASQUERADE
Teraz zapisujemy plik i łączymy się z SSH tymi samymi danymi co do SFTP. Wpisujemy komendę reboot
i czekamy aż panel uruchomi się ponownie. Przechodzimy ponownie pod adres panelu i logujemy się.
6. Pobieranie szablonów LXC
Musimy teraz pobrać szablony systemów operacyjnych. Po lewej stronie wybieramy . Teraz u góry klikamy przycisk . Wybieramy interesujący nas system operacyjny z listy:
Ja wybiorę Debiana 8. Klikamy przycisk i czekamy aż szablon pobierze się. Gdy zobaczysz możesz zamknąć okno przyciskiem . Szablon jest już pobrany. Możesz pobrać ich więcej, ale nam na potrzeby poradnika wystarczy tylko Debian 8 😉.
7. Tworzenie kontenerów LXC
Po prawej stronie w górnej części panelu klikamy przycisk . Teraz wpisujemy nazwę naszego kontenera oraz dwukrotnie wpisujemy hasło którym chcemy logować się do konta root. Klikamy przycisk .
Teraz wybieramy jeden z pobranych wcześniej szablonów i znów klikamy przycisk
Wybieramy rozmiar dysku dla naszego kontenera - nam wystarczy 5GB, klikamy przycisk
Wybieramy ilość rdzeni dla naszego kontenera i klikamy przycisk
Wybieramy ilo ść ramu oraz swapu dla naszego kontenera i klikamy przycisk
Uwaga! Pamiętaj aby zostawić przynajmniej 512MB ramu dla hosta!
W kolejnym kroku zmieniamy Bridge na vmbr2
W polu IPv4/CIDR
wpisujemy 192.168.100.x/24
gdzie x
to liczba 3 lub większa - każdy kontener musi mieć inną liczbę, zapamiętaj ją ponieważ będzie potrzeba do przydzielania portów 😄
W polu Gateway (IPv4)
wpisujemy 192.168.100.1
Resztę ustawień zostawiamy domyślnie i klikamy przycisk
W kolejnym kroku nic nie wpisujemy - klikamy przycisk
Teraz widzimy podsumowanie informacji o naszym kontenerze - jeżeli wszystko się zgadza to zaznaczamy checkboxa i klikamy przycisk
Widzimy napis czyli wszystko poszło OK 😄 Zamykamy okienko klikając przycisk
Teraz w zakładce sprawdzamy czy nasz kontener działa
Jeżeli widzisz napis running
to jest uruchomiony :slight_smile:
8. Przydzielanie portów
Teraz ponownie logujemy się na SSH hosta używając danych logowania do panelu
Aktualizujemy repozytoria:
apt-get update
(Jeżeli zobaczysz w konsoli takie napisy: E: Failed to fetch https://enterprise.proxmox.com/debian/pve/dists/stretch/pve-enterprise/binary-amd64/Packages 401 Unauthorized
to możesz je zignorować)
Instalujemy narzędzie pozwalające zachować reguły iptables nawet po restarcie serwera:
apt-get -y install iptables-persistent
Wybieramy Yes
i potwierdzamy enterem
Wybieramy No
i potweirdzamy enterem
Dodajemy reguły umożliwiające komunikację z kontenerami:
iptables -A POSTROUTING -s 192.168.100.0/24 -o vmbr0 -j MASQUERADE -t nat
iptables -A POSTROUTING -s 192.168.100.0/24 -o vmbr0 -j SNAT --to-source X -t nat
W drugiej komendzie należy wpisać adres IP serwera VPS w miejsciu X
Komenda umożliwiająca przydzielenie portu:
iptables -A PREROUTING -i vmbr0 -p X1 -m X2 --dport X3 -j DNAT --to-destination 192.168.100.X4:X5 -t nat
X1 = udp lub tcp małymi literami X2 = to samo co X1 X3 = port który chcemy przydzielić X4 = liczba podana przy konfiguracji sieci podczas tworzenia kontenera X5 = port który chcemy przekierować
Przykład:
iptables -A PREROUTING -i vmbr0 -p tcp -m tcp --dport 44 -j DNAT --to-destination 192.168.100.3:22 -t nat
Ta komenda przekieruje serwer SSH z portu 22 na port 44 😄
Po ustawieniu wszystkiego zapisujemy reguły tak aby nie zresetowały się po restarcie:
iptables-save > /etc/iptables/rules.v4
9. Automatyczne uruchamianie kontenerów po restarcie hosta
Przechodzimy do zakładki i klikamy dwukrotnie na . Zaznaczamy ptaszka i klikamy przycisk
Klikamy dwukrotnie na . W polu Start/Shutdown order
wpisujemy jako który w kolejności ma uruchomić się kontener. Pole Startup delay
przy pierwszym kontenerze zostawiamy puste, ale przy następnych zawsze wpisujemy liczbę o 15 większą, czyli przy drugim będzie to 15 a przy trzecim 30. Pole Shutdown timeout
zawsze zostawiamy puste.
10. Podsumowanie
Dziękuję @liamdj23 za pożyczenie serwera VPS do napisania poradnika ❤️ Miłego korzystania z kontenerów! 😄 Użyte strony: