Skip to content

Talos OS

Bu makalede

Bilgi

Talos OS, Kubernetes çalıştırmak için özel olarak geliştirilen modern bir işletim sistemidir. Değişmez dosya sistemi ve konteyner mimarisini kullanır, yüksek güvenlik sağlar, saldırı yüzeyini en aza indirir ve Kubernetes kümelerinin performansını optimize eder.

Talos OS. Ana Özellikler

  • Saldırı riskini azaltır: kabuk (shell), paket yöneticisi ve diğer standart Linux bileşenlerinin eksikliği, güvenlik tehditlerini azaltır.
  • Değişmez altyapı: mevcut sistemi değiştirmek yerine güncellemelerin atomik olarak uygulandığı değişmezlik kavramına dayanır.
  • Entegre Kubernetes: sistem üzerine kurulu değil, maksimum performans için optimize edilmiş entegre Kubernetes.
  • API merkezli yönetim: tamamen API üzerinden yönetim sağlar, SSH veya kabuk komutları çalıştırmaya gerek kalmaz.
  • Yüksek otomasyon: manuel müdahale olmadan küme bileşenlerinin yapılandırılması ve kurtarılması için yüksek düzeyde otomasyon sağlar.
  • Basitleştirilmiş güncellemeler: hatalarda otomatik geri alınabilen güvenilir işletim sistemi ve Kubernetes güncellemesi.
  • Yerleşik konteyner desteği: konteynerize uygulamaları çalıştırmak için optimize edilmiştir.
  • Katı güvenlik: en iyi güvenlik uygulamalarına uyumluluk sağlar, zorunlu şifreleme ve imza doğrulaması dahil.
  • Verimli kaynak kullanımı: sistem kaynaklarının tüketimini en aza indirerek iş yüklerine maksimum kapasite ayırır.
  • Yüksek dayanıklılık: dağıtık ve hata toleranslı ortamlarda çalışacak şekilde tasarlanmıştır.

Talos OS Dağıtım Özellikleri

Önemli: Kurulum Olmadan Geçici Yükleme

Bir sunucuyla birlikte Talos OS sipariş ederken, sistem başlangıçta RAM'e yüklenir ve disk üzerinde kurulmaz. Sunucu yapılandırma ve kurulum işleminin tamamlanmadan yeniden başlatılırsa, sistemi kaybedeceksiniz ve yeniden sipariş etmeniz gerekecektir.

Talos OS ile bir sunucu sipariş ederken şunları alırsınız:

  • Geçici olarak yüklenmiş Talos OS ile bakım modunda (Maintenance) olan bir sunucu;
  • Kontrol paneli üzerinden sunucu konsoluna erişim;
  • Talos araçlarıyla disk üzerinde sistem yapılandırma ve kurulum yapabilme yeteneği.

Sunulan Sunucuda Talos OS Kurulumu

Talos OS ile bir sunucu aldıktan sonra, sunucu yönetim paneli ve API - Invapi sunucu kartına gidin ve HTML5 konsolunu açın. Kontrol paneli konsolu üzerinden sistem bakım modunda (Maintenance) Ready: True notasyonuyla görünecektir. Bu, kalıcı kurulum için daha fazla yapılandırma gerektiren geçici bir durumdur:

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

Öncelikle yerel makinenize talosctl aracını kurun:

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 mevcut değilse)
    mkdir -Force $env:USERPROFILE\.talos
    
  2. Windows için en son talosctl 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

Komut satırı kullanmadan da talosctl kurabilirsiniz:

  1. Windows için en son talosctl sürümünü GitHub üzerinden doğrudan indirin;
  2. İndirilen dosyayı talosctl.exe olarak yeniden adlandırın;
  3. Dosyayı C:\Windows\System32\ klasörüne (yönetici hakları gereklidir) kopyalayın.

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

talosctl version

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

Sırların oluşturulması:

talosctl gen secrets

Temel yapılandırmanın oluşturulması:

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

[SERVER-IP] adresini sunucunuzun gerçek IP adresiyle değiştirin.

Adım 3: Düzeltme Dosyasının Oluşturulması

Yapılandırma dosyasındaki disk ve interface parametreleri, sunucu donanımınıza uygun olmalıdır. Bu değerleri belirlemek için aşağıdaki komutları çalıştırın:

  1. Mevcut disklerin belirlenmesi
    talosctl -n [SERVER-IP] -e [SERVER-IP] get disks --insecure
    
  2. Ağ arayüzlerinin belirlenmesi

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

Komut çıktısında aşağıdakileri bulun:

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

patch.controlplane.yaml adlı bir dosya oluşturun ve içeriğini aşağıdaki gibi düzenleyin:

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.ru
    bootTimeout: 2m0s

[SERVER-IP] adresini dosyadaki birkaç yerde sunucunuzun IP adresiyle değiştirin.

Adım 4: Talos İstemcisinin Yapılandırılması

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

Adım 5: Yapılandırma Düzeltmesinin Uygulanması

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ırmanın Sunucuya Uygulanması

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 işlemi kontrol paneli konsolu üzerinden izleyebilirsiniz.

Adım 7: Kurulumun Tamamlanmasını Bekleme

Sunucu konsolundaki durumun değişmesini bekleyin:

  • Stage: BootingStage: Running;
  • Ready: True etkin kalmalıdır:

Konsolda aşağıdaki mesajın görünmesi gerekmektedir:

[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ümenin Başlatılması

Sunucu kümede katılmak için bekleyen bir mesaj gösterdiğinde, aşağıdaki komutu çalıştırın:

talosctl --talosconfig ./talosconfig bootstrap

Adım 9: Kubernetes Yapılandırmasının Alınması

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 kubeconf adlı bir dosya oluşturacaktır. Bu dosya Kubernetes kümesini yönetmek için kullanılabilir.

Önemli Notlar

  • Dosyaları secrets.yaml ve talosconfig güvenli bir yerde saklayın — bunlara gelecekte kümeye erişim için ihtiyaç duyulacaktır;
  • 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 arasında tam olarak eşleşmelidir.

Yapılandırma ve Yönetim

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

  1. Düğüm durumunu alın:

    talosctl --talosconfig ./talosconfig dmesg
    

  2. Sistem kaynaklarını görüntüleyin:

    talosctl --talosconfig ./talosconfig dashboard
    

  3. Çalışan servisleri listeleyin:

    talosctl --talosconfig ./talosconfig services
    

  4. Düğümü yeniden başlatın:

    talosctl --talosconfig ./talosconfig reboot
    

Bir Kubernetes Kümesi Oluşturma

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

  1. Yerel makinenize kubectl'ı kurun:

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ümeye erişimi yapılandırın:

    export KUBECONFIG=./kubeconf  # Linux/macOS için
    
    $env:KUBECONFIG=".\kubeconf"  # Windows PowerShell için
    

  2. Kümenin işlevselliğini doğrulayın:

    .\kubectl get nodes
    

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

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

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

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

  2. Çalışan 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ümeyi oluşturduktan sonra, yönetim için çeşitli araçlar kullanılabilir:

  • 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üncellemesi 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, çeşitli izleme yöntemleri sunar:

  1. Dahili araçlar:

    talosctl --talosconfig ./talosconfig dashboard
    

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

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

Not

Talos OS için ek yapılandırma bilgileri geliştiricilerin dokümantasyonunda mevcuttur.

API kullanarak Talos OS ile sunucu siparişi

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


Bu sayfanın bazı içerikleri ya da yazıları AI tarafından oluşturulmuş veya çevrilmiş olabilir.