Ana içeriğe geç

Talos OS

Bu makalede

Bilgi

Talos OS, özellikle Kubernetes çalıştırmak için özel olarak geliştirilmiş modern bir işletim sistemidir. Değiştirilemez (immutable) bir dosya sistemi ve konteyner mimarisi kullanarak yüksek güvenlik, minimum saldırı yüzeyi ve optimize edilmiş Kubernetes kümeleri performansı sağlar.

Talos OS. Temel Özellikler

  • Saldırı olasılığını en aza indirir: Kabuk (shell), paket yöneticisi ve diğer standart Linux bileşenlerinin eksikliği güvenlik tehditlerini azaltır.
  • Değiştirilemez altyapı: Güncellemelerin mevcut sistemi değiştirmek yerine atomik olarak uygulandığı değiştirilemezlik kavramına dayanır.
  • Gömülü Kubernetes: Sistemin üzerine kurulmak yerine, maksimum performans için optimize edilmiş, entegre Kubernetes.
  • API merkezli yönetim: SSH'a veya bir kabukta komut çalıştırmaya gerek duymadan API üzerinden tam yönetim.
  • Yüksek otomasyon: Manuel müdahale olmadan küme bileşenlerinin otomatik yapılandırılması ve kurtarılması.
  • Basitleştirilmiş güncellemeler: Hatalarda otomatik geri alma (rollback) özelliği ile güvenilir OS ve Kubernetes güncellemesi.
  • Yerleşik konteyner desteği: Konteynerlaştırılmış uygulamaları çalıştırmak için optimize edilmiştir.
  • Sıkı güvenlik: Zorunlu şifreleme ve imza doğrulaması dahil olmak üzere en iyi güvenlik uygulamalarına uyum.
  • Verimli kaynak kullanımı: İş yüklerine ayrılan payı maksimize etmek için sistem kaynaklarının minimum tüketimi.
  • Yüksek dayanıklılık: Dağıtık ve hata toleranslı ortamlarda çalışacak şekilde tasarlanmıştır.

Çalıştırma Özellikleri

ID OS Adı Takma Ad Aktif BM GPU VPS VDS Aile OS Grubu CloudInit Mevcut
322 Talos 1.12.2 - Yes + + + - Talos Others No ORDER
329 Talos 1.14.2 - Yes + + + - Talos Others No ORDER

Dikkat: Kurulum Olmadan Geçici Yükleme

Talos OS yüklü bir sunucu sipariş ettiğinizde, sistem başlangıçta RAM'e yüklenir ve diske kurulmaz. Yapılandırma ve kurulum süreci tamamlanmadan sunucu yeniden başlatılırsa, sistem silinecek ve yeniden sipariş verilmesi gerekecektir.

Talos OS yüklü bir sunucu sipariş ettiğinizde şunları alırsınız:

  • Bakım modunda geçici olarak yüklenmiş Talos OS yüklü bir sunucu;
  • Kontrol paneli üzerinden sunucu konsoluna erişim;
  • Talos araçlarını kullanarak sistemi diske yapılandırma ve kurma yeteneği.

Sağlanan Sunucuya Talos OS Kurulumu

Talos OS yüklü bir sunucu aldıktan sonra sunucular ve API yönetim paneline gitmeniz gerekir — Invapi üzerinden sunucu kartına gidin ve Native Console öğesini açın. Kontrol paneli konsolu üzerinden sistemi bakım modunda (Maintenance) ve Ready: True notuyla göreceksiniz. Bu, kalıcı kurulum için daha fazla yapılandırma gerektiren geçici bir durumdur:

Adım 1: Talos CLI Aracını Yükleme

Öncelikle yerel makinenize talosctl aracını yükleyin:

Linux/MacOS için:

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

Windows için:

  1. talosctl için bir klasör oluşturun (henüz yoksa)
    mkdir -Force $env:USERPROFILE\.talos
    
  2. Windows için talosctl'in en son sürümünü indirin
    Invoke-WebRequest -Uri "https://github.com/siderolabs/talos/releases/latest/download/talosctl-windows-amd64.exe" -OutFile "$env:USERPROFILE\.talos\talosctl.exe"
    
  3. talosctl yolunu PATH ortam değişkenine ekleyin
    $path = [Environment]::GetEnvironmentVariable("Path", "User")
    if ($path -notlike "*$env:USERPROFILE\.talos*") {
        [Environment]::SetEnvironmentVariable("Path", "$path;$env:USERPROFILE\.talos", "User")
    }
    

Yüklemeden sonra yeni bir terminal penceresi açın ve işlevselliği kontrol edin:

talosctl version

Adım 2: Yapılandırma Dosyalarını Hazırlama

Secret (Sırlar) oluşturma:

talosctl gen secrets

Temel yapılandırma oluşturma:

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

[SERVER-IP] kısmını sunucunuzun gerçek IP adresiyle değiştirin.

Adım 3: Yama (Patch) Dosyası Oluşturma

Yapılandırmadaki disk ve interface parametreleri sunucunuzun donanımıyla eşleşmelidir. Bu değerleri belirlemek için aşağıdaki komutları çalıştırın:

  1. Mevcut diskleri belirleyin

    talosctl -n [SERVER-IP] -e [SERVER-IP] get disks --insecure
    
    2. Ağ arayüzlerini belirleyin

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

Komut çıktısında şunları bulun:

  • Ana diskinizin adı (genellikle /dev/sda, /dev/vda veya /dev/nvme0n1);
  • Ağ arayüzünüzün adı (genellikle eth0, ens3, enp0s3 vb.).

Aşağıdaki içeriğe sahip patch.controlplane.yaml adlı bir dosya oluşturun:

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

Dosyadaki birkaç yerde [SERVER-IP] kısmını sunucunuzun IP adresiyle değiştirin.

Not

Statik IP'lerle çalışmak için aşağıdaki yamayı kullanın:

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

Adım 4: Talos İstemcisini Yapılandırma

talosctl --talosconfig talosconfig config endpoint [SERVER-IP]
talosctl --talosconfig talosconfig config node [SERVER-IP]

Adım 5: Yamayı Yapılandırmaya Uygulama

Linux/macOS için:

talosctl machineconfig patch controlplane.yaml --patch @patch.controlplane.yaml -o controlplane_patched.yaml

Windows (PowerShell) için:

talosctl machineconfig patch controlplane.yaml --patch "`@patch.controlplane.yaml" -o controlplane_patched.yaml

Adım 6: Yapılandırmayı Sunucuya Uygulama

talosctl --talosconfig ./talosconfig apply-config --insecure -n [SERVER-IP] -e [SERVER-IP] --file ./controlplane_patched.yaml

Bu komutu çalıştırdıktan sonra sunucuda kurulum süreci başlayacaktır. Bu süreci kontrol paneli konsolu üzerinden izleyebilirsiniz.

Adım 7: Kurulumun Tamamlanmasını Bekleme

Sunucunun konsol durumu değişene kadar bekleyin:

  • Stage: Booting > Stage: Running;
  • Ready: True aktif kalmalıdır:

Konsolda şu mesaj görünmelidir:

[talos] etcd is waiting to join the cluster. If this node is the first node in the cluster, please run 'talosctl bootstrap'

Adım 8: Küme Başlatma (Initialization)

Sunucu kümeye katılmayı beklediğine dair bir mesaj gösterdikten sonra şunu çalıştırın:

talosctl --talosconfig ./talosconfig bootstrap

Adım 9: Kubernetes Yapılandırmasını Alma

Konsolda [talos] machine is running and ready mesajını bekleyin, ardından şunu yürütün:

talosctl --talosconfig ./talosconfig kubeconfig kubeconf

Bu komut, Kubernetes kümesini yönetmek için kullanılabilecek bir kubeconf dosyası oluşturacaktır.

Önemli Notlar

  • secrets.yaml ve talosconfig dosyalarını güvenli bir yerde saklayın - bunlar kümeye gelecekteki erişimler için gereklidir;
  • Başarılı kurulumdan sonra sistem diske kaydedilir ve yeniden başlatmada kaybolmaz;
  • Sunucu adı, yapılandırma dosyalarınız ve komutlarınız arasında tam olarak eşleşmelidir.

Yapılandırma ve Yönetim

Talos OS diske başarıyla kurulduktan sonra, sunucunuzu talosctl kullanarak yönetebilirsiniz:

  1. Düğüm (node) durumunu al:
talosctl --talosconfig ./talosconfig dmesg
  1. Sistem kaynaklarını görüntüle:
talosctl --talosconfig ./talosconfig dashboard
  1. Çalışan servisleri listele:
talosctl --talosconfig ./talosconfig services
  1. Düğümü yeniden başlat:
talosctl --talosconfig ./talosconfig reboot

Bir Kubernetes Kümesi Oluşturma

bootstrap komutu çalıştırıldıktan sonra Kubernetes kümeniz zaten başlatılmış olmalıdır. Çalışmaya başlamak için:

  1. Yerel makinenize kubectl yükleyin:

Linux için:

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 için:

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

  1. Küme erişimini yapılandırın:

Linux/macOS için:

export KUBECONFIG=./kubeconf
Windows PowerShell için:

$env:KUBECONFIG=".\kubeconf"
  1. Küme işlevselliğini doğrulayın:
    .\kubectl get nodes
    

Çok Düğümlü (Multi-Node) Küme Oluşturma

Küme'ye ek düğümler eklemek için:

  1. Yeni bir kontrol düzlemi (control plane) düğümü için:

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

  2. Bir işçi (worker) düğümü için:

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

Not

Bootstrap işlemi yalnızca ilk düğüm üzerinde bir kez gerçekleştirilir. Ek düğümler mevcut kümeye otomatik olarak katılır.

Küme Yönetim Arayüzü

Küme oluşturulduktan sonra yönetim için çeşitli araçlar mevcuttur:

  • talosctl: Talos OS düğümlerini yönetmek için;
  • kubectl: Kubernetes kaynaklarını yönetmek için;
  • Web panelleri: Kubernetes üzerinden ek kontrol panelleri kurulabilir.

Sistem Güncelleme ve İzleme

Talos OS Güncelleme

Talos OS, küme kesintisi olmadan atomik güncellemeleri destekler:

  1. Mevcut sürümleri kontrol edin:

    talosctl --talosconfig ./talosconfig version --client
    

  2. Düğüm güncellemesini gerçekleştirin:

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

Sistem İzleme

Talos OS birkaç izleme yöntemi sunar:

  1. Yerleşik araçlar:

    talosctl --talosconfig ./talosconfig dashboard
    

  2. Kubernetes üzerinden izleme çözümleri kurun:

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

Not

Ek Talos OS yapılandırmaları hakkında ayrıntılı bilgi geliştiricilerin dokümantasyonunda mevcuttur.

Konuyla İlgili Yararlı Makaleler

API Kullanarak Talos OS Siparişi Verme

Bu yazılımı API kullanarak yüklemek için bu talimatları izleyin.