Ana içeriğe geç

Talos OS

Bu makalede

Bilgi

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

Talos OS. Temel Özellikler

  • Saldırı ihtimalini en aza indirir: Kabuk (shell), paket yöneticisi ve diğer standart Linux bileşenlerinin bulunmaması güvenlik tehditlerini azaltır.
  • Değiştirilemez altyapı: Güncellemelerin mevcut sistemi değiştirerek değil, 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 odaklı yönetim: SSH'ya veya kabukta komut çalıştırmaya gerek kalmadan, tamamen API aracılığıyla 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 alım ile güvenilir işletim sistemi ve Kubernetes güncellemesi.
  • Yerleşik konteyner desteği: Konteynerleştirilmiş uygulamaları çalıştırmak için optimize edilmiştir.
  • Katı güvenlik: Zorunlu şifreleme ve imza doğrulaması dahil olmak üzere en iyi güvenlik uygulamalarına uygunluk.
  • Verimli kaynak kullanımı: İş yüklerine tahsis edilen kaynakları maksimize etmek için minimum sistem kaynak tüketimi.
  • Yüksek dayanıklılık: Dağıtık ve hata toleranslı ortamlarda çalışmak üzere tasarlanmıştır.

Dağıtım Özellikleri

ID OS Adı Takma Ad Aktif BM GPU VPS VDS Aile OS Grubu CloudInit Mevcut
268 Talos 1.9.5 - Evet + + + - Talos Diğerleri Hayır ORDER

Önemli: Geçici Yükleme, Kurulum Yok

Talos OS ile bir sunucu sipariş ettiğinizde, sistem ilk olarak RAM'e yüklenir ve diske kurulmaz. Yapılandırma ve kurulum işlemi tamamlanmadan sunucu yeniden başlatılırsa, sistem kaybolur ve yeniden sipariş edilmesi gerekir.

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

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

Sağlanan Sunucuya Talos OS Kurulumu

Talos OS ile bir sunucu aldıktan sonra sunucu ve API yönetim panelineInvapi gidin, sunucu kartına geçin ve Native Console açın. Kontrol paneli konsolu üzerinden, Ready: True notuyla birlikte bakım modunda (Maintenance) olan sistemi 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'nin 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")
    }
    

Bilgi

talosctl'yi komut satırını kullanmadan da yükleyebilirsiniz:

  1. Windows için talosctl'nin en son sürümünü doğrudan GitHub adresinden indirin;
  2. İndirilen dosyanın adını talosctl.exe olarak değiştirin;
  3. Dosyayı C:\Windows\System32\ klasörüne kopyalayın (yönetici hakları gereklidir).

Kurulumdan 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

Gizli anahtarları (secrets) oluşturma:

talosctl gen secrets

Temel yapılandırmayı 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ırma dosyasındaki 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 belirleme

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

    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 adında 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: Yapılandırmaya Yama 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 işlemi başlayacaktır. Bu işlemi 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 aşağıdaki 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

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ı Elde Etme

Konsolda [talos] machine is running and ready mesajını bekleyin, ardından aşağıdaki komutu çalıştırın:

talosctl --talosconfig ./talosconfig kubeconfig kubeconf

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

Önemli Notlar

  • secrets.yaml ve talosconfig dosyalarını güvenli bir yerde saklayın - bunlar kümeyle gelecekteki erişim için gereklidir;
  • Başarılı kurulumdan sonra sistem diske kaydedilecek ve yeniden başlatıldığında kaybolmayacaktır;
  • Ana bilgisayar 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'i diske başarıyla kurduktan sonra sunucunuzu talosctl kullanarak yönetebilirsiniz:

  1. Düğüm durumunu alma:
talosctl --talosconfig ./talosconfig dmesg
  1. Sistem kaynaklarını görüntüleme:
talosctl --talosconfig ./talosconfig dashboard
  1. Çalışan servisleri listeleme:
talosctl --talosconfig ./talosconfig services
  1. Düğümü yeniden başlatma:
talosctl --talosconfig ./talosconfig reboot

Kubernetes Kümesi Oluşturma

Kubernetes kümeniz, bootstrap komutunu çalıştırdıktan sonra zaten başlatılmış olmalıdır. Onunla ç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
    

Çoklu Düğümlü Küme Oluşturma

Kümeye ek düğümler eklemek için:

  1. Yeni bir kontrol düğümü için:

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

  2. İşçi düğümü için:

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

Not

Bootstrap yalnızca ilk düğümde bir kez gerçekleştirilir. Ek düğümler mevcut kümeye otomatik olarak katılacaktı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önetme;
  • kubectl: Kubernetes kaynaklarını yönetme;
  • Web panelleri: Kubernetes üzerinden ek kontrol panelleri kurulabilir.

Sistem Güncellemesi ve İzleme

Talos OS Güncellemesi

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 çeşitli izleme yöntemleri sağlar:

  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 Faydalı Makaleler

API ile Talos OS Siparişi

Bu yazılımı API kullanarak kurmak için bu talimatları izleyin.