Անցնել պարունակությանը

Talos OS

Այս հոդվածում

Տեղեկատվություն

Talos OS-ը ժամանակակից օպերացիոն համակարգ է, որը հատուկ մշակված է Kubernetes-ը գործարկելու համար: Այն օգտագործում է անփոփոխ ֆայլային համակարգ և կոնտեյներային ճարտարապետություն՝ ապահովելով բարձր անվտանգություն, նվազագույն հարձակումների մակերես և Kubernetes կլաստերների օպտիմալացված արդյունավետություն:

Talos OS. Հիմնական հնարավորություններ

  • Նվազեցնում է հարձակումների հավանականությունը. shell-ի, փաթեթների կառավարիչի և այլ ստանդարտ Linux բաղադրիչների բացակայությունը նվազեցնում է անվտանգության սպառնալիքները:
  • Անփոփոխ ենթակառուցվածք. հիմնված է անփոփոխության հայեցակարգի վրա, որտեղ թարմացումները կիրառվում են ատոմային կերպով՝ փոխարենը փոփոխելու գոյություն ունեցող համակարգը:
  • Ներկառուցված Kubernetes. ինտեգրված Kubernetes-ը օպտիմալացված է առավելագույն արդյունավետության համար, այն չի տեղադրվում համակարգի վրա:
  • API-կենտրոնացված կառավարում. լիարժեք կառավարում API-ի միջոցով՝ առանց SSH-ի կամ shell-ում հրամանների կատարման անհրաժեշտության:
  • Բարձր ավտոմատացում. կլաստերի բաղադրիչների ավտոմատ կոնֆիգուրացիա և վերականգնում՝ առանց ձեռքի միջամտության:
  • Պարզեցված թարմացումներ. հուսալի OS և Kubernetes թարմացում՝ սխալների դեպքում ավտոմատ rollback-ով:
  • Ներկառուցված կոնտեյներների աջակցություն. օպտիմալացված է կոնտեյներային հավելվածները գործարկելու համար:
  • Խիստ անվտանգություն. համապատասխանություն անվտանգության լավագույն պրակտիկաներին, ներառյալ ստիպողական շիֆրազում և ստորագրության ստուգում:
  • Արդյունավետ ռեսուրսների օգտագործում. համակարգի ռեսուրսների նվազագույն սպառում՝ աշխատանքային բեռնվածությանը առավելագույն հատկացում ապահովելու համար:
  • Բարձր դիմացկունություն. նախագծված է աշխատելու բաշխված և սխալների նկատմամբ դիմացկուն միջավայրերում:

Տեղակայման հնարավորություններ

ID OS Name Alias Active BM GPU VPS VDS Family OS Group CloudInit Avilible
268 Talos 1.9.5 - Yes + + + - Talos Others No ORDER

Կարևոր. ժամանակավոր բեռնում առանց տեղադրման

Talos OS-ով սերվեր պատվիրելիս համակարգը սկզբնապես բեռնվում է RAM-ի մեջ և չի տեղադրվում սկավառակի վրա: Եթե սերվերը վերագործարկվի կոնֆիգուրացիայի և տեղադրման գործընթացը ավարտելուց առաջ, համակարգը կկորչի և կպահանջվի նորից պատվիրել:

Talos OS-ով սերվեր պատվիրելիս դուք ստանում եք.

  • Սերվեր՝ ժամանակավորապես բեռնված Talos OS-ով սպասարկման ռեժիմով;
  • Սերվերի կոնսոլի հասանելիություն կառավարման վահանակի միջոցով;
  • Համակարգը սկավառակի վրա կոնֆիգուրացնելու և տեղադրելու հնարավորություն՝ օգտագործելով Talos գործիքները:

Talos OS-ի տեղադրում տրամադրված սերվերի վրա

Talos OS-ով սերվեր ստանալուց հետո, ձեզ անհրաժեշտ է անցնել սերվերների և API-ի կառավարման վահանակInvapi անցեք սերվերի քարտի և բացեք Native Console: Կառավարման վահանակի կոնսոլի միջոցով դուք կտեսնեք համակարգը սպասարկման ռեժիմում (Maintenance) Ready: True նշումով: Սա ժամանակավոր վիճակ է, որը պահանջում է հետագա կոնֆիգուրացիա մշտական տեղադրման համար.

Քայլ 1. Talos CLI գործիքի բեռնում

Նախ, տեղադրեք talosctl օգնականը ձեր տեղական մեքենայում.

Linux/MacOS-ի համար.

curl -sL https://talos.dev/install | sh

Windows-ի համար.

  1. Ստեղծեք թղթապանակ talosctl-ի համար (եթե դեռ չկա)
    mkdir -Force $env:USERPROFILE\.talos
    
  2. Ներբեռնեք talosctl-ի վերջին տարբերակը Windows-ի համար
    Invoke-WebRequest -Uri "https://github.com/siderolabs/talos/releases/latest/download/talosctl-windows-amd64.exe" -OutFile "$env:USERPROFILE\.talos\talosctl.exe"
    
  3. Ավելացրեք talosctl-ի ճանապարհը PATH միջավայրի փոփոխականին
    $path = [Environment]::GetEnvironmentVariable("Path", "User")
    if ($path -notlike "*$env:USERPROFILE\.talos*") {
        [Environment]::SetEnvironmentVariable("Path", "$path;$env:USERPROFILE\.talos", "User")
    }
    

Տեղեկատվություն

Դուք նաև կարող եք տեղադրել talosctl-ը՝ առանց հրամանի տողի օգտագործման.

  1. Ներբեռնեք talosctl-ի վերջին տարբերակը Windows-ի համար ուղղակիորեն GitHub-ից;
  2. Վերանվանեք ներբեռնված ֆայլը talosctl.exe անունով;
  3. Պատճենեք ֆայլը C:\Windows\System32\ թղթապանակի մեջ (պահանջվում են վարչի իրավունքներ):

Տեղադրումից հետո բացեք նոր տերմինալի պատուհան և ստուգեք ֆունկցիոնալությունը.

talosctl version

Քայլ 2. Կոնֆիգուրացիոն ֆայլերի պատրաստում

Գաղտնիքների գեներացում.

talosctl gen secrets

Հիմնական կոնֆիգուրացիայի գեներացում.

talosctl gen config --with-secrets secrets.yaml node-talos https://[SERVER-IP]:6443

Փոխարինեք [SERVER-IP]-ն ձեր սերվերի իրական IP հասցեով:

Քայլ 3. Patch ֆայլի ստեղծում

Կոնֆիգուրացիայում disk և interface պարամետրերը պետք է համապատասխանեն ձեր սերվերի սարքավորումներին: Այս արժեքները որոշելու համար կատարեք հետևյալ հրամանները.

  1. Որոշեք հասանելի սկավառակները

    talosctl -n [SERVER-IP] -e [SERVER-IP] get disks --insecure
    
    2. Որոշեք ցանցային ինտերֆեյսները

    talosctl -n [SERVER-IP] -e [SERVER-IP] get links --insecure
    

Հրամանի ելքում գտեք.

  • Ձեր հիմնական սկավառակի անունը (սովորաբար /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
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 հասցեով ֆայլի մի քանի վայրերում:

Նշում

Ստատիկ 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 հաշվեթելի կոնֆիգուրացում

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

Այս հրամանը կատարելուց հետո սերվերի վրա կսկսվի տեղադրման գործընթացը: Դուք կարող եք հետևել այս գործընթացին կառավարման վահանակի կոնսոլի միջոցով:

Քայլ 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. Կլաստերի ինիցիալիզացիա

Սերվերը կլաստերին միանալու սպասման մասին հաղորդագրություն ցուցադրելուց հետո, կատարեք.

talosctl --talosconfig ./talosconfig bootstrap

Քայլ 9. Kubernetes կոնֆիգուրացիայի ստացում

Սպասեք [talos] machine is running and ready հաղորդագրությանը կոնսոլում, այնուհետև կատարեք.

talosctl --talosconfig ./talosconfig kubeconfig kubeconf

Այս հրամանը կստեղծի kubeconf ֆայլ, որը կարող է օգտագործվել Kubernetes կլաստերը կառավարելու համար:

Կարևոր նշումներ

  • Պահպանեք secrets.yaml և talosconfig ֆայլերը անվտանգ վայրում - դրանք անհրաժեշտ են կլաստերին ապագա հասանելիության համար;
  • Հաջող տեղադրումից հետո համակարգը կպահպանվի սկավառակի վրա և չի կորչի վերագործարկման դեպքում;
  • Հյուրընկալի անունը պետք է ճշգրիտ համընկնի ձեր կոնֆիգուրացիոն ֆայլերի և հրամանների միջև:

Կոնֆիգուրացիա և կառավարում

Talos OS-ը սկավառակի վրա հաջողությամբ տեղադրելուց հետո, դուք կարող եք կառավարել ձեր սերվերը՝ օգտագործելով talosctl.

  1. Ստացեք հանգույցի կարգավիճակը.
talosctl --talosconfig ./talosconfig dmesg
  1. Դիտեք համակարգի ռեսուրսները.
talosctl --talosconfig ./talosconfig dashboard
  1. Ցուցադրեք աշխատող ծառայությունները.
talosctl --talosconfig ./talosconfig services
  1. Վերագործարկեք հանգույցը.
talosctl --talosconfig ./talosconfig reboot

Kubernetes կլաստերի ստեղծում

Ձեր Kubernetes կլաստերը պետք է արդեն ինիցիալիզացված լինի bootstrap հրամանը կատարելուց հետո: Այնով աշխատելու համար.

  1. Տեղադրեք 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-ի համար.

curl.exe -LO "https://dl.k8s.io/release/v1.29.0/bin/windows/amd64/kubectl.exe"

  1. Կոնֆիգուրացրեք կլաստերին հասանելիությունը.

Linux/macOS-ի համար.

export KUBECONFIG=./kubeconf
Windows PowerShell-ի համար.

$env:KUBECONFIG=".\kubeconf"
  1. Ստուգեք կլաստերի ֆունկցիոնալությունը.
    .\kubectl get nodes
    

Բազմահանգույց կլաստերի ստեղծում

Կլաստերին լրացուցիչ հանգույցներ ավելացնելու համար.

  1. Նոր control plane հանգույցի համար.

    talosctl apply-config --insecure --nodes <new-node-ip> --file controlplane.yaml
    

  2. worker հանգույցի համար.

    talosctl apply-config --insecure --nodes <new-node-ip> --file worker.yaml
    

Նշում

Bootstrap-ը կատարվում է միայն մեկ անգամ առաջին հանգույցի վրա: Լրացուցիչ հանգույցները ավտոմատ կերպով կմիանան գոյություն ունեցող կլաստերին:

Կլաստերի կառավարման ինտերֆեյս

Կլաստերը ստեղծելուց հետո կառավարման համար հասանելի են տարբեր գործիքներ.

  • talosctl. Talos OS հանգույցների կառավարում;
  • kubectl. Kubernetes ռեսուրսների կառավարում;
  • Վեբ վահանակներ. լրացուցիչ կառավարման վահանակներ կարելի է տեղադրել Kubernetes-ի միջոցով:

Համակարգի թարմացում և մոնիտորինգ

Talos OS-ի թարմացում

Talos OS-ը աջակցում է ատոմային թարմացումներ՝ առանց կլաստերի ընդհատումների.

  1. Ստուգեք հասանելի տարբերակները.

    talosctl --talosconfig ./talosconfig version --client
    

  2. Կատարեք հանգույցի թարմացում.

    talosctl --talosconfig ./talosconfig upgrade --nodes <node-ip> --image ghcr.io/siderolabs/installer:v1.9.5
    

Համակարգի մոնիտորինգ

Talos OS-ը ապահովում է մոնիտորինգի մի քանի մեթոդներ.

  1. Ներկառուցված գործիքներ.

    talosctl --talosconfig ./talosconfig dashboard
    

  2. Տեղադրեք մոնիտորինգի լուծումներ Kubernetes-ի միջոցով.

    kubectl apply -f https://github.com/prometheus-operator/kube-prometheus/releases/download/v0.12.0/manifests.yaml
    

Նշում

Լրացուցիչ Talos OS կոնֆիգուրացիաների մանրամասն տեղեկատվություն հասանելի է զարգացնողների փաստաթղթերում:

Օգտակար հոդվածներ թեմայի վերաբերյալ

Պատվիրեք Talos OS API-ի միջոցով

Այս ծրագրային ապահովումը API-ի միջոցով տեղադրելու համար, հետևեք այս հրահանգներին:

question_mark
Is there anything I can help you with?
question_mark
AI Assistant ×