Ubuntu operatsioonisüsteemi ettevalmistamine
Sissejuhatus
Käesolevas tekstis kirjeldatud viisil ettevalmistatakse kõigi labori k8s klastrite aluseks olevad node'id. St nad on tavalised Ubuntu v. 22.04 operatsioonisüsteemid.
Ubuntu operatsioonisüsteemi ettevalmistamine
Ubuntu operatsioonisüsteem paigaldatakse tavalise Ubuntu installeri abil. Praktiliselt võiks teha ühe arvuti valmis ning seejärel teda nö paljundada. Seejuures võiks igaks juhuks machine-id muuta unikaalseks
# rm /etc/machine-id /var/lib/dbus/machine-id # dbus-uuidgen --ensure # cp /etc/machine-id /var/lib/dbus/machine-id # reboot
- tekitada laborit teenindavasse dns serverisse dns nimed node'ide kohta
- Paigaldada tavaline Ubuntu pigem minimaalsete valikutega (st mitte desktop tüüpi)
- Lisaks peab olema paigaldatud tarkvara: apparmor, iptables ja open-iscsi
- Arvutitel peab olema kellaaeg õige (tänu ntp kliendi seadistustele)
Tulemuse kontrollimine
- node'id peavad üksteist oma privaatses subnetis nägema
- node'id peavad nägema internetti
- dns nimelahendus töötab
- arvuti kellaaeg on õige
Misc
SSH
Ubuntu 26.04 kuulab võimalusel (st kui nt PVE virtuaalse arvuti jaoks on vsock sisse lülitatud) kolme protokolli peal ssh kliente
root@ubuntu-2604-01:~# systemctl list-sockets | grep ssh 0.0.0.0:22 ssh.socket ssh.service [::]:22 ssh.socket ssh.service vsock::22 sshd-vsock.socket - /run/ssh-unix-local/socket sshd-unix-local.socket -
systemd-networkd
Tegelemise kaalutlus
- vähendada süsteemi ründepinda - suhteliselt tundlik protsess töötab ja ei ole sisuliselt vajalik
- nt vaevalt, et sobiks, et süsteemis töötab iscsi server target kuulab port 3260/tcp ilma sisaldamata reaalset lun'i vms
systemd-networkd on systemd service
root@zabbix-pub-01:~# systemctl status systemd-networkd
● systemd-networkd.service - Network Configuration
Loaded: loaded (/usr/lib/systemd/system/systemd-networkd.service; enabled; preset: enabled)
Active: active (running) since Tue 2026-06-02 11:52:17 EEST; 1h 45min ago
TriggeredBy: ● systemd-networkd.socket
Docs: man:systemd-networkd.service(8)
man:org.freedesktop.network1(5)
Main PID: 676 (systemd-network)
Status: "Processing requests..."
Tasks: 1 (limit: 2115)
FD Store: 1 (limit: 512)
Memory: 1.6M (peak: 1.9M)
CPU: 440ms
CGroup: /system.slice/systemd-networkd.service
└─676 /usr/lib/systemd/systemd-networkd
Jun 02 11:52:17 zabbix-pub-01 systemd-networkd[1744]: enp6s20: Link UP
Jun 02 11:52:17 zabbix-pub-01 systemd-networkd[1744]: enp6s20: Gained carrier
...
Osutub, et vaikimisi Ubuntu 24.04, 26.04 jt systemd-network kuulab af_packet kihis lldp sõnumeid
root@zabbix-pub-01:~# ss -lnp -A 'packet'
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
p_raw UNCONN 0 0 [35020]:enp6s18 * users:(("systemd-network",pid=676,fd=18))
p_raw UNCONN 0 0 [35020]:enp6s19 * users:(("systemd-network",pid=676,fd=19))
p_raw UNCONN 0 0 [35020]:enp6s20 * users:(("systemd-network",pid=676,fd=20))
kus
- systemd-network - protsessile vastav kasutajanimi
- pid - protsessid pid
- fd - asjasse puutuvad file descriptor väärtus (protsessi vaatest, st mitte süsteemi globaalsest vaatest)
ning küsides protsessi pid=676 käest, mis ta kuulab
root@zabbix-pub-01:~# lsof -n -P -p 676 | grep SOCK_R systemd-n 676 systemd-network 18u pack 52583 0t0 35020 type=SOCK_RAW systemd-n 676 systemd-network 19u pack 52592 0t0 35020 type=SOCK_RAW systemd-n 676 systemd-network 20u pack 52600 0t0 35020 type=SOCK_RAW
kusjuures seda 676 protsessi omajagu nö laiendatakse capablities abil (protsess kuulub kasutajale systemd-network, st mitte root)
root@zabbix-pub-01:~# pscap -p 676 ppid pid uid command capabilities 1 676 systemd-network systemd-network net_bind_service, net_broadcast, net_admin, net_raw @ + root@zabbix-pub-01:~# ps -u systemd-network -f UID PID PPID C STIME TTY TIME CMD systemd+ 1744 1 0 11:52 ? 00:00:00 /usr/lib/systemd/systemd-networkd
tulemusena saab systemd-network arvu ethernetis olevate switchide jutust, nt (eeldusel, et on switche mis räägivad)
root@zabbix-pub-01:~# networkctl lldp LINK CHASSIS-ID SYSTEM-NAME CAPS PORT-ID PORT-DESCRIPTION enp6s18 16:18:9c:2d:31:86 - ..b........ tap50194i0 - Capability Flags: b - Bridge 1 neighbors listed.
Välja lülitamiseks sobib kasutada sellist seadistust (emitlldp on väidetavalt niikuinii 'no' vaikimisi)
root@zabbix-pub-01:~# mkdir /etc/systemd/network/10-netplan-enp6s18.network.d root@zabbix-pub-01:~# cat /etc/systemd/network/10-netplan-enp6s18.network.d/override.conf [Network] LLDP=no EmitLLDP=no
Teoreetiliselt võiks töötada
root@zabbix-pub-01:~# networkctl edit --drop-in=override.conf @enp6s18
Tööpõhimõte
- kernel ja udev avastavad võrguseadme ja teevad esmased seadistused (seade saab nime jms)
- netplan genereerib /etc/netplan/50-cloud-init.yaml alusel systemd-network jaoks seadistuse - /run/systemd/network/10-netplan-enp6s18.network
- inimene on veel lisanud seadistuse täpsustusi - /etc/systemd/network/10-netplan-enp6s18.network.d/override.conf
- systemd (st systemd-network) hakkab rakendama seadistust kasutades kõiki asjasse puutuvaid nö fragmente
Muudatuse kehtestamiseks
root@zabbix-pub-01:~# systemctl restart systemd-networkd
root@zabbix-pub-01:~# ss -lnp -A 'packet'
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
p_raw UNCONN 0 0 [35020]:enp6s19 * users:(("systemd-network",pid=676,fd=19))
p_raw UNCONN 0 0 [35020]:enp6s20 * users:(("systemd-network",pid=676,fd=20))
Misc
- systemd-networkd on Ubuntu spetsiifika
- Debian kasutab nn ifupdown2 põhist 'root@zabbix-01:~# systemctl status networking' lahendust
- NetworkManager teeb kogu selle loo veel segasemaks, aga tavaliselt server lahenduse puhul NetworkManager'i ei kasutata (desktop fookus)