Lxc: Difference between revisions
Line 115: | Line 115: | ||
==Võrgu seadistamine== | ==Võrgu seadistamine== | ||
Vaikimis tehakse uus sild nimega lxcbr0, kuhu külge tulevad konteinerite liidesed. Kus töötab oma dhcp server ja dns kirjed saadakse host masinast. | Vaikimis tehakse uus sild nimega lxcbr0, kuhu külge tulevad konteinerite liidesed. Kus töötab oma dhcp server ja dns kirjed saadakse host masinast. | ||
Dhcp spooli fail asub | |||
/etc/default/lxc-net | |||
Siin on vaikimisi faili sisu, kui tahtae muuta spooli suurust siis siit saab muuta. | |||
# This file is auto-generated by lxc.postinst if it does not | |||
# exist. Customizations will not be overridden. | |||
# Leave USE_LXC_BRIDGE as "true" if you want to use lxcbr0 for your | |||
# containers. Set to "false" if you'll use virbr0 or another existing | |||
# bridge, or mavlan to your host's NIC. | |||
USE_LXC_BRIDGE="true" | |||
# If you change the LXC_BRIDGE to something other than lxcbr0, then | |||
# you will also need to update your /etc/lxc/default.conf as well as the | |||
# configuration (/var/lib/lxc/<container>/config) for any containers | |||
# already created using the default config to reflect the new bridge | |||
# name. | |||
# If you have the dnsmasq daemon installed, you'll also have to update | |||
# /etc/dnsmasq.d/lxc and restart the system wide dnsmasq daemon. | |||
LXC_BRIDGE="lxcbr0" | |||
LXC_ADDR="10.0.3.1" | |||
LXC_NETMASK="255.255.255.0" | |||
LXC_NETWORK="10.0.3.0/24" | |||
LXC_DHCP_RANGE="10.0.3.2,10.0.3.254" | |||
LXC_DHCP_MAX="253" | |||
=Turvalisus= | =Turvalisus= | ||
Väga oluline on meeles pidada, et konteineri turvalisusele peab sama palju tähelepanu pöörama, kui eraldiseisvale füüsilisele masinale. Konteineris olevat tarkvara peab ka uuendama, suhtumine et mul asjad jooksevad konteineris las murravad sisse on väga vale suhtumine. | Väga oluline on meeles pidada, et konteineri turvalisusele peab sama palju tähelepanu pöörama, kui eraldiseisvale füüsilisele masinale. Konteineris olevat tarkvara peab ka uuendama, suhtumine et mul asjad jooksevad konteineris las murravad sisse on väga vale suhtumine. |
Revision as of 20:13, 18 December 2016
Sissejuhatus
Linuxi konteinerid ehk LXC on tehnoloogia mis kasutab Linuxi tuuma control groups funktsionaalsust, mis võimaldab jooksutada mitut isoleeritut Linuxi oeratsioonisüsteemi, host masinas ühe jagatud kerneli peal. Lihtsamalt seletades jagab ühe arvuti resursse mitme konteineri vahel ja kasutatakse ühist kernelit. Resursside jagamise eest vastutabki control groupsi funktsionaalsus kernelis. Namespace selle eest, et konteinerid oleksid ükteisest eraldatud, ühe konteineri seest ei saaks ligi teise teenustele. LXC on kasutatav alates kernelist 2.6.24
Taust
Näide, kus masinas jookseb mitu konteinerit ja neis on erinevad teenused. Teenused on ära jagatud konteinerite peale nt: wiki, git, pastebin, proxy server.
|-lvmetad |-lxc-autostart---systemd-+-5*[agetty] | |-cron | |-dhclient | |-mysqld---27*[{mysqld}] | |-rsyslogd-+-{in:imklog} | | |-{in:imuxsock} | | `-{rs:main Q:Reg} | `-systemd-journal |-lxc-autostart---systemd-+-5*[agetty] | |-cron | |-dbus-daemon | |-dhclient | |-gogs---9*[{gogs}] | |-nginx---2*[nginx] | |-postgres---7*[postgres] | |-rsyslogd-+-{in:imklog} | | |-{in:imuxsock} | | |-{rs:action 10 qu} | | `-{rs:main Q:Reg} | |-sshd---sshd---sshd | |-systemd-journal | `-systemd-logind |-lxc-autostart---systemd-+-5*[agetty] | |-apache2---6*[apache2] | |-cron | |-dbus-daemon | |-dhclient | |-mysqld---34*[{mysqld}] | |-php-fpm7.0---2*[php-fpm7.0] | |-rsyslogd-+-{in:imklog} | | |-{in:imuxsock} | | |-{rs:action 10 qu} | | `-{rs:main Q:Reg} | |-sshd | |-systemd-journal | `-systemd-logind |-lxc-autostart---systemd-+-5*[agetty] | |-apache2---5*[apache2] | |-cron | |-dbus-daemon | |-dhclient | |-logger | |-mysqld_safe-+-logger | | `-mysqld---23*[{mysqld}] | |-rsyslogd-+-{in:imklog} | | |-{in:imuxsock} | | |-{rs:action 10 qu} | | `-{rs:main Q:Reg} | |-sshd | |-systemd-journal | `-systemd-logind |-lxc-autostart---systemd-+-5*[agetty] | |-cron | |-dbus-daemon | |-dhclient | |-gunicorn---gunicorn | |-nginx---2*[nginx] | |-nrpe | |-rsyslogd-+-{in:imklog} | | |-{in:imuxsock} | | |-{rs:action 10 qu} | | `-{rs:main Q:Reg} | |-sshd | |-systemd-journal | `-systemd-logind |-lxc-autostart---systemd-+-5*[agetty] | |-cron | |-dbus-daemon | |-dhclient | |-nginx---2*[nginx] | |-rsyslogd-+-{in:imklog} | | |-{in:imuxsock} | | |-{rs:action 0 que} | | `-{rs:main Q:Reg} | |-systemd-journal | `-systemd-logind |-lxcfs---10*[{lxcfs}] |-mdadm
Masinate failisüsteem asub kaustas.
/var/lib/lxc/
Installitud masinate chace asub kaustas. Seda kasutatakse siis, kui installitakse sama versiooniga masinaid, siis pole vaja uut alla tõmmata.
/var/chace/lxc/
Vajalikumad käsud
lxc-create - tehakse uus konteiner lxc-start - käivitatakse konteiner lxc-console - ühendab konteineris oleva masina terminaliga. lxc-attach - alustab protsessi konteiner masinas, kui ühtegi parameetrit juurde ei anta, siis võetakse host masin konsool ja ühendatakse see konteineriga. Näiteks oled host masinas root kasutajaga sisse logitud, siis tuleb ette root konsool ka konteineris. lxc-stop - sulgeb masina
Seadistamine
Paigaldamine
Installine linux konteineri ja mallid milleg teha konteinereid.
apt-get install lxc lxc-templates bridge-utils
Konteinerite tegemine
lxc-create -n test -t ubuntu -- -r xenial
Haldamine ja seadistamine
Konteineri kävitaimnine
lxc-start -n test -d
Konteineriga ühendamine
lxc-attach -n test
Võrgu seadistamine
Vaikimis tehakse uus sild nimega lxcbr0, kuhu külge tulevad konteinerite liidesed. Kus töötab oma dhcp server ja dns kirjed saadakse host masinast.
Dhcp spooli fail asub
/etc/default/lxc-net
Siin on vaikimisi faili sisu, kui tahtae muuta spooli suurust siis siit saab muuta.
# This file is auto-generated by lxc.postinst if it does not # exist. Customizations will not be overridden. # Leave USE_LXC_BRIDGE as "true" if you want to use lxcbr0 for your # containers. Set to "false" if you'll use virbr0 or another existing # bridge, or mavlan to your host's NIC. USE_LXC_BRIDGE="true"
# If you change the LXC_BRIDGE to something other than lxcbr0, then # you will also need to update your /etc/lxc/default.conf as well as the # configuration (/var/lib/lxc/<container>/config) for any containers # already created using the default config to reflect the new bridge # name. # If you have the dnsmasq daemon installed, you'll also have to update # /etc/dnsmasq.d/lxc and restart the system wide dnsmasq daemon. LXC_BRIDGE="lxcbr0" LXC_ADDR="10.0.3.1" LXC_NETMASK="255.255.255.0" LXC_NETWORK="10.0.3.0/24" LXC_DHCP_RANGE="10.0.3.2,10.0.3.254" LXC_DHCP_MAX="253"
Turvalisus
Väga oluline on meeles pidada, et konteineri turvalisusele peab sama palju tähelepanu pöörama, kui eraldiseisvale füüsilisele masinale. Konteineris olevat tarkvara peab ka uuendama, suhtumine et mul asjad jooksevad konteineris las murravad sisse on väga vale suhtumine.