Talos OS¶
Այս հոդվածում
Տեղեկատվություն
Talos OS-ը ժամանակակից օպերացիոն համակարգ է, որը հատուկ մշակվել է Kubernetes-ի աշխատանքի համար: Այն օգտագործում է անփոփոխ (immutable) ֆայլային համակարգ և կոնտեյներային ճարտարահงրում՝ ապահովելով բարձր անվտանգություն, հարձակումների նվազագույն մակերես և Kubernetes կլաստերների օպտիմալացված արտադրողականություն:
Talos OS. Հիմնական հնարավորություններ¶
- Նվազեցնում է հարձակումների հավանականությունը: shell-ի, փաթեթների կառավարիչի (package manager) և այլ ստանդարտ Linux բաղադրիչների բացակայությունը նվազեցնում է անվտանգության սպառնալիքները:
- Անփոփոխ ենթակառուցվածք (Immutable infrastructure): հիմնված է անփոփոխության հայեցակարգի վրա, որտեղ թարմացումները կիրဆောင်վում են ատոմիկ ձևով, այլ ոչ թե գործող համակարգի փոփոխման միջոցով:
- Embedded Kubernetes: ինտեգրված Kubernetes, որը օպտիմալացված է առավելագույն արտադրողականության համար և տեղադրված է համակարգի վրա:
- API-centric կառավարում: ամբողջական կառավարում API-ի միջոցով՝ առանց SSH-ի կամ shell-ում հրամաններ գործարկելու անհրաժեշտության:
- Բարձր ավտոմատացում: կլաստերի բաղադրիչների ավտոմատացված կոնֆիգուրացիա և վերականգնում՝ առանց ձեռքով միջամտության:
- Պարզեցված թարմացումներ: OS-ի և Kubernetes-ի հուսալի թարմացում՝ սխալների դեպքում ավտոմատ հետադարձման (rollback) հնարավորությամբ:
- Կոնտեյներային աջակցություն: օպտիմալացված է կոնտեյներացված հավելվածների աշխատանքի համար:
- Խիստ անվտանգություն: համապատասխանություն անվտանգության լավագույն պրակտիկաներին, ներառյալ պարտադատիրվող шиფրավորում և ստորագրության ստուգում:
- Ռեսուրսների արդյունավետ օգտագործում: համակարգային ռեսուրսների նվազագույն սպառում՝ աշխատանքային բեռին (workloads) առավելագույն բաշխում ապահովելու համար:
- Բարձր դիմացկունություն: նախագծված է բաշտված և սխալահանդուր մակրոմակարդակի միջավայրերում աշխատելու համար:
Տեղակայման հնարավորություններ¶
| ID | OS Name | Alias | Active | BM | GPU | VPS | VDS | Family | OS Group | CloudInit | Avilible |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 322 | Talos 1.12.2 | - | Yes | + | + | + | - | Talos | Others | No | ORDER |
| 329 | Talos 1.14.2 | - | Yes | + | + | + | - | Talos | Others | No | ORDER |
Զգուշացում: Ժամանակավոր բեռնում՝ առանց տեղադրման
Talos OS-ով սերվեր պատվիրելիս համակարգը նախնական շրջանում բեռնվում է RAM-ի մեջ և ոչ թե տեղադրվում սկավառակի վրա: Եթե սերվերը վերագործարկվի (reboot) նախքան կոնֆիգուրացիայի և տեղադրման գործընթացի ավարտը, համակարգը կկորի և կպահանջի նոր պատվեր:
Talos OS-ով սերվեր պատվիրելիս դուք ստանում եք՝
- Սերվեր՝ Talos OS-ով ժամանակավոր բեռնված՝ maintenance mode ռեժիմում,
- Հասանելիություն սերվերի կոնսոլին՝ control panel-ի միջոցով,
- Համակարգը սկավառակի վրա կոնֆիգուրացնելու և տեղադրելու հնարավորություն՝ օգտագործելով Talos գործիքները:
Talos OS-ի տեղադրումը տրամադրված սերվերի վրա¶
Ստանալով Talos OS-ով սերվերը, անհրաժեշտ է անցնել սերվերների և API կառավարման պանել — Invapi գնալ սերվերի քարտ և բացել Native Console: Դուք կտեսնեք համակարգը maintenance mode ռեժիմում (Maintenance)՝ Ready: True նշումով control panel-ի կոնսոլի միջոցով: Սա ժամանակավոր վիճակ է, որը պահանջում է հետագա կոնֆիգուրացիա՝ մշտական տեղադրման համար.

Քայլ 1: Talos CLI գործիքի բեռնում¶
Նախ, տեղադրեք talosctl օգտակրոցը ձեր տեղական մեքենայի վրա.
Linux/MacOS-ի համար:
Windows-ի համար:
- Ստեղծեք թղթապանակ
talosctl-ի համար (եթե դեռ չկա) - Ներբեռնեք
talosctl-ի Windows-ի համար նախատեսված վերջին տարբերակը - Ավելացրեք
talosctl-ի ուղին PATH շրջանակային փոփոխականին (environment variable)
Տեղադրումից հետո բացեք տերմինալի նոր պատուհան և ստուգեք ֆունկցիոնալությունը.
Քայլ 2: Կոնֆիգուրացիոն ֆայլերի պատրաստում¶
Secrets-ների գեներացում:
Հիմնական կոնֆիգուրացիայի գեներացում:
Փոխարինեք [SERVER-IP] ձեր սերվերի իրական IP հասցեով:
Քայլ 3: Patch ֆայլի ստեղծում¶
Կոնֆիգուրացիայի մեջ disk և interface պարամետրերը պետք է համապատասխանեն ձեր սերվերի սարքավորումներին: Այդ արժեքները որոշելու համար գործարկեք հետևյալ հրամանները.
-
Պարզեք առկա սկավառակները (disks)
2. Պարզեք ցանցային ինտերֆեյսերը (network interfaces)
Հրամանի արդյունքում գտեք՝
- Ձեր հիմնական սկավառակի անունը (սովորաբար
/dev/sda,/dev/vdaկամ/dev/nvme0n1): - Ձեր ցանցային ինտերֆեյսի անունը (սովորաբար
eth0,ens3,enp0s3և այլն):
Ստեղծեք patch.controlplane.yaml անունով ֆայլ՝ հետևյալ պարունակությամբ.
cluster:
apiServer:
certSANs:
- [SERVER-IP]
- 127.0.0.1
- localhost
- kubernetes
- kubernetes.default
- kubernetes.default.svc
- kubernetes.default.svc.cluster.local
- kubernetes.default.svc.cluster.local
machine:
install:
disk: /dev/sda
image: factory.talos.dev/installer/376567988ad370138ad8b2698212367b8edcb69b5fd68c80be1f2ec7d603b4ba:v1.9.5
wipe: true
extraKernelArgs:
- talos.platform=metal
features:
hostDNS:
enabled: false
forwardKubeDNSToHost: false
kubelet:
clusterDNS:
- [SERVER-IP]
network:
hostname: node-talos
interfaces:
- interface: eth0
dhcp: true
nameservers:
- 8.8.8.8
- 8.8.4.4
time:
disabled: false
servers:
- ntp.ix.com
bootTimeout: 2m0s
Փոխարինեք ֆայլի մի քանի տեղերում [SERVER-IP] ձեր սերվերի IP հասցեով:
Նշում
Static IP-ներով աշխատելու համար օգտագործեք հետևյալ patch-ը.
cluster:
apiServer:
certSANs:
- 127.0.0.1
- localhost
- kubernetes
- kubernetes.default
- kubernetes.default.svc
- kubernetes.default.svc.cluster.local
- [SERVER-IP-ADDRESS]
machine:
install:
disk: /dev/sda
image: factory.talos.dev/installer/376567988ad370138ad8b2698212367b8edcb69b5fd68c80be1f2ec7d603b4ba:v1.9.5
wipe: true
extraKernelArgs:
- talos.platform=metal
features:
hostDNS:
enabled: false
forwardKubeDNSToHost: false
kubelet:
clusterDNS:
- [SERVER-IP-ADDRESS]
network:
hostname: node-talos
interfaces:
- interface: [INTERFACE NAME]
addresses:
- [YOUR SERVER'S API]/[SUBNET MASK]
mtu: 8765
routes:
- network: 0.0.0.0/0
gateway: [YOUR SERVER's GATEWAY]
nameservers:
- 8.8.8.8
- 8.8.4.4
time:
disabled: false
servers:
- pool.ntp.org
bootTimeout: 2m0s
Քայլ 4: Talos Client-ի կոնֆիգուրացիա¶
talosctl --talosconfig talosconfig config endpoint [SERVER-IP]
talosctl --talosconfig talosconfig config node [SERVER-IP]
Քայլ 5: Patch-ի կիրարկում կոնֆիգուրացիային¶
Linux/macOS-ի համար:
talosctl machineconfig patch controlplane.yaml --patch @patch.controlplane.yaml -o controlplane_patched.yaml
Windows-ի համար (PowerShell):
talosctl machineconfig patch controlplane.yaml --patch "`@patch.controlplane.yaml" -o controlplane_patched.yaml
Քայլ 6: Կոնֆիգուրացիայի կիրտարկում սերվերի վրա¶
talosctl --talosconfig ./talosconfig apply-config --insecure -n [SERVER-IP] -e [SERVER-IP] --file ./controlplane_patched.yaml
Այս հրամանը գործարկելուց հետո սերվերի վրա կսկսվի տեղադրման գործընթացը: Դուք կարող եք մոնիթորինգ անել այս գործընթացը control panel-ի կոնսոլի միջոցով:
Քայլ 7: Տեղադրման ավարտին սպասել¶
Սպասեք, մինչև սերվերի կոնսոլի կարգավիճակը փոխվի.
Stage: Booting>Stage: Running;Ready: Trueպետք է մնա ակտիվ:

Կոնսոլում պետք է հայտնվի հաղակարգում.
[talos] etcd is waiting to join the cluster. If this node is the first node in the cluster, please run 'talosctl bootstrap'
Քայլ 8: Կլաստերի ինիցիալիզացիա¶
Երբ սերվերը հաղակարգում է կլաստերին միանալու մասին, գործարկեք.
Քայլ 9: Kubernetes կոնֆիգուրացիայի ստացում¶
Սպասեք կոնսոլում հայտնվող [talos] machine is running and ready հաղակարգմանը, ապա գործարկեք.
Այս հրամանը կստեղծի kubeconf ֆայլը, որը կարող է օգտագործվել Kubernetes կլաստերը կառավարելու համար:
Կարևոր նշումներ
- Պահպանեք
secrets.yamlևtalosconfigֆայլերը անվտանգ վայրում - դրանք անհրաժեշտ են կլաստերին հետագայում հասանելիություն ստանալու համար. - Հաջող տեղադրումից հետո համակարգը կպահպանվի սկավառակի վրա և չի կորի վերագործարկման ժամանակ:
- Ձեր կոնֆիգուրացիոն ֆայլերի և հրամանների միջև host name-ը պետք է լինի նույնը:
Կոնֆիգուրացիա և կառավարում¶
Հաջող տեղադրումից հետո դուք կարող եք կառավարել ձեր սերվերը՝ օգտագործելով talosctl.
- Ստանալ node-ի կարգավիճակը.
- Դիտել համակարգային ռեսուրսները.
- Ցուցակագրել գործող ծառայությունները.
- Վերագործարկել node-ը.
Kubernetes կլաստերի ստեղծում¶
Ձեր Kubernetes կլաստերը պետք է արդեն ինիցիալիզացված լինի bootstrap հրամանից հետո: Այնով աշխատելու համար՝
- Տեղադրեք
kubectlձեր տեղական մեքենայի վրա.
Linux-ի համար:
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x kubectl
sudo mv kubectl /usr/local/bin/
Windows-ի համար:
- Կոնֆիգուրացրեք հասանելիությունը կլաստերին.
for Linux/macOS:
for Windows PowerShell:- Ստուգեք կլաստերի ֆունկցիոնալությունը.
Multi-Node կլաստերի ստեղծում¶
Կլաստերին լրացուցիչ node-եր ավելացնելու համար՝
-
Նոր control plane node-ի համար.
-
Worker node-ի համար.
Նշում
Bootstrap-ը կատարվում է միայն մեկ անգամ՝ առաջին node-ի վրա: Հաջորդ node-երը ավտոմատ կերպով կմիանան գոյություն ունեցող կլաստերին:
Կլաստերի կառավարման ինտերֆեյս¶
Կլաստեր ստեղծելուց հետո հասանելի են տարբեր գործիքներ կառավարման համար.
- talosctl: Talos OS node-երի կառավարման համար;
- kubectl: Kubernetes ռեսուրսների կառավարման համար;
- Web panels: հավելյալ կառավարման պանելներ կարող են տեղադրվել Kubernetes-ի միջոցով:
Համակարգի թարմացում և մոնիթորինգ¶
Talos OS-ի թարմացում¶
Talos OS-ը ստամատիկ թարմացումներ է ապահովում՝ առանց կլաստերի դադարի (downtime):
-
Ստուգել հասանելի տարբերակները.
-
Կատարել node-ի թարմացում.
Համակարգի մոնիթորինգ¶
Talos OS-ը տրամադրում է մոնիթորինգի մի քանի մեթոդ.
-
Ներկառուցված գործիքներ.
-
Տեղադրել մոնիթորինգի լուծումներ Kubernetes-ի միջոցով.
Նշում
Talos OS-ի լրացուցիչ կոնֆիգուրացիաների վերաբերյալ մանրամասն տեղեկատվությունը հասանելի է մշակողների փաստաթղթերում.
Օգտակար հոդվածներ թեմայի վերաբերյալ¶
Պատվիրել Talos OS API-ի միջոցով¶
Այս ծրագրի տեղադրման համար օգտագործեք API՝ հետևելով այս հրահանգներին.