Ana içeriğe geç

Incus

Bu makalede

Bilgi

Incus, açık kaynaklı bir sistem container'ı ve sanal makine yöneticisidir. LXD'nin bir fork'udur ve tek bir platformda Linux container'ları ve sanal makineleri yönetmek için basit ve güçlü bir araç sağlar.

Incus. Ana Özellikler

  • Container ve VM Yönetimi: Incus, tek bir arayüz üzerinden Linux sistem container'larını ve QEMU/KVM tabanlı tam teşekküllü sanal makineleri çalıştırmanıza olanak tanır.
  • İşlem İzolasyonu: Container'lar kendi dosya sistemleri, ağ arabirimleri ve işlemleri ile izole edilmiş ortamda çalışır.
  • Ağ Yetenekleri: Container'lar için çeşitli ağ türlerinin yerleşik desteği - köprüler, NAT, VLAN, overlay ağları.
  • Depolama Yönetimi: Farklı backend'leri destekleyen esnek storage pool sistemi - dir, btrfs, ZFS, LVM.
  • Snapshot'lar ve Migrasyon: Container durumunun snapshot'larını oluşturma, hizmetleri durdurmadan host'lar arasında canlı migrasyon.
  • Yapılandırma Profilleri: Belirli parametrelerle hızlı container dağıtımı için yeniden kullanılabilir profiller.
  • Kaynak Sınırlama: Her container için CPU, bellek, disk I/O ve ağ bant genişliği üzerinde hassas kontrol.
  • REST API: Otomasyon ve harici sistemlerle entegrasyon için tam işlevli HTTP API.
  • Web Arayüzü: Altyapı üzerinde görsel kontrol için yerleşik web yönetim paneli.
  • Image Kütüphanesi: Çeşitli Linux dağıtımlarının hazır image'larının geniş koleksiyonuna erişim.
  • Kümeleme: Dağıtılmış yönetim için birden fazla host'u tek bir küme halinde birleştirme imkanı.

Derleme Özellikleri

ID Uyumlu OS VM BM VGPU GPU Min CPU (Çekirdekler) Min RAM (GB) Min HDD/SSD (GB) Aktif
234 Debian 13 + + + + 2 2 50 SİPARİŞ VER

Ana Incus Yolları ve Dosyaları:

  • Ana yapılandırma dosyası: /etc/default/incus
  • Veri dizini: /var/lib/incus
  • Storage pool'ları: /var/lib/incus/storage-pools/
  • Container'lar: /var/lib/incus/containers/
  • Image'lar: /var/lib/incus/images/
  • Log dosyası: /var/log/incus/incusd.log
  • Sistem servisleri: /usr/lib/systemd/system/incus*.service
  • Sysctl yapılandırması: /etc/sysctl.d/50-incus.conf
  • Kullanıcı yapılandırması: /root/.config/incus/

Not

Aksi belirtilmedikçe, varsayılan olarak yazılımın en son sürümünü geliştirici sitesinden veya işletim sistemi depolarından kuruyoruz.

Incus Dağıtımından Sonra Başlangıç

Ödeme sonrasında, sunucunun işe hazır olduğu bildirimi e-posta yoluyla kayıt esnasında belirttiğiniz adrese gönderilecektir. Bu mesajda VPS IP adresi ve erişim kimlik bilgileri yer alacaktır. Şirketimizin müşterileri Sunucu Yönetim Paneli ve API aracılığıyla ekipmanları yönetirler — Invapi.

Kimlik doğrulama bilgileri sunucu yönetim panelinin Info >> Tags sekmesinde veya gönderilen e-postada bulunabilir:

  • Incus web arayüzüne erişim bağlantısı: webpanel etiketinde (port 8443, HTTPS)

Önemli

Web arayüzüne erişim için HTTPS kullanmanız ve tarayıcıda kendi imzalı sertifikayı kabul etmeniz gerekmektedir.

Incus web arayüzüne ilk erişimde, tarayıcı kendi imzalı sertifika nedeniyle güvenli olmayan bağlantı konusunda uyarı verecektir. Çalışmaya devam etmek için sertifikayı kabul etmeniz gerekmektedir:

Sertifika kabul edildikten sonra giriş sayfası açılacaktır. Kimlik doğrulama sürecini başlatmak için Login with TLS düğmesine basın:

Sistem mevcut sertifika ekleme sayfasına yönlendirecektir:

Trust token sekmesini seçin ve talimatları takip edin:

  1. Sunucu terminalinde token oluşturmak için komutu çalıştırın:

    incus config trust add myclient
    

  2. Sistem kopyalanması gereken token'ı oluşturacaktır:

  3. Alınan token'ı kimlik doğrulama sayfasındaki ilgili metin alanına yapıştırın ve Import düğmesine basın.

Başarılı kimlik doğrulamadan sonra, instance listesi ile ana web arayüz sayfası açılacaktır.

Web Arayüzü Üzerinden Yeni Container Oluşturma

Yeni container oluşturmak için arayüzün sağ üst köşesindeki Create instance düğmesine basın:

Birkaç yapılandırma bölümü içeren instance oluşturma formu açılacaktır. Temel image'ı seçmek için Browse images düğmesine basın. Dağıtım, sürüm, varyant, mimari ve türe göre filtrelerle image seçim penceresi açılacaktır:

Aşağıdaki yapılandırma bölümleri mevcuttur:

  • Main configuration — container'ın ana parametreleri: ad, açıklama, instance türü (container veya sanal makine), temel image ve atanmış profiller;
  • Devices — container cihaz yönetimi:
  • Disk — disk cihazları ve mount noktalarının yapılandırması;
  • Network — ağ arabirimlerinin yapılandırması;
  • GPU — grafik hızlandırıcıların bağlanması;
  • Proxy — host ve container arasında port yönlendirme yapılandırması;
  • Other — ek cihaz türleri;
  • Resource limits — kaynak sınırlama: işlemci (CPU), RAM, disk giriş-çıkış işlemleri;
  • Security policies — güvenlik politikaları: izolasyon, yetkiler ve güvenlik profillerinin yapılandırması (AppArmor, SELinux);
  • Snapshots — yedekleme ve geri yükleme için container durum snapshot'larının yönetimi;
  • Migration — host'lar arasında container migrasyonu parametreleri;
  • Boot — önyükleme ayarları: önyükleme cihaz sırası, sistem başlangıcında otomatik başlatma;
  • Cloud init — cloud-init aracılığıyla container'ın otomatik başlatılmasının yapılandırması (kullanıcılar, ağ, paketler, script'ler).

Gerekli image'ı seçmek için yanındaki Select düğmesine basın:

Image seçiminden sonra ana parametreleri doldurun:

  • Instance name — container adı;
  • Description — açıklama (isteğe bağlı);
  • Instance type — instance türü (Container veya Virtual Machine);
  • Profiles — yapılandırma profilleri.

Container'ı oluşturulduktan hemen sonra başlatmak için Create and start düğmesine basın. Başlatmadan oluşturmak için Create düğmesini kullanın.

Container Durumunu İzleme

Container dağıtımı sırasında image yükleme ilerlemesi görüntülenir. "Setting up" durumu ile yükleme sürecinin gösterilmesi, instance oluşturmanın mevcut ilerlemesini gösterir. Kurulum tamamlandıktan sonra durum yeşil gösterge ile "Running"e değişecektir:

Servis Yönetimi

Durum kontrolü:

systemctl status incus

Servisi yeniden başlatma:

systemctl restart incus

Servisi durdurma:

systemctl stop incus

Servisi başlatma:

systemctl start incus

Log'ları görüntüleme:

journalctl -u incus -f
tail -f /var/log/incus/incusd.log

İlk Altyapı Kurulumu

Sunucu dağıtımından sonra Incus altyapısının ilk kurulumunu gerçekleştirmeniz önerilir.

Storage Pool Oluşturma

Storage pool, container verilerinin nerede saklanacağını belirler:

incus storage create default dir source=/var/lib/incus/storage-pools/default

Oluşturulan storage pool'ların kontrolü:

incus storage list

Pool hakkında ayrıntılı bilgi görüntüleme:

incus storage show default

Ağ Yapılandırması

Container'lar için otomatik IPv4 adresleme ile NAT köprüsü oluşturma:

incus network create incusbr0 ipv4.address=auto ipv6.address=none

Ağ ayarlarının kontrolü:

incus network list

Ağ yapılandırmasını görüntüleme:

incus network show incusbr0

Varsayılan Profili Yapılandırma

default profili yeni container'lar için temel yapılandırmayı belirler. Profile root-disk ekleme:

incus profile device add default root disk path=/ pool=default

Profile ağ arabirimi ekleme:

incus profile device add default eth0 nic network=incusbr0

Profil yapılandırmasının kontrolü:

incus profile show default

Container Oluşturma ve Yönetimi

Container Oluşturma

Kaynak sınırlamalı Debian 12 container'ı oluşturma örneği:

incus launch images:debian/12 deb12 --profile default \
  -c limits.cpu=2 -c limits.memory=2GiB

Komut parametreleri:

  • images:debian/12 - genel depodan image
  • deb12 - container adı
  • --profile default - varsayılan profil kullanımı
  • -c limits.cpu=2 - 2 CPU çekirdeği ile sınırlama
  • -c limits.memory=2GiB - 2 GB bellek sınırlaması

Container'ları Görüntüleme

Tüm instance'ların listesi:

incus list

Çıktı her container'ın durumu, IP adresleri ve türü hakkında bilgi içerecektir.

Container Durumu Yönetimi

Container'ı başlatma:

incus start <name>

Container'ı durdurma:

incus stop <name>

Container'ı yeniden başlatma:

incus restart <name>

Container'ı silme (durdurma gerektirir):

incus delete <name>

Çalışan container'ı zorla silme:

incus delete <name> --force

Container'a Erişim

Bash üzerinden bağlantı:

incus exec deb12 -- bash

TTY konsoluna bağlantı:

incus console deb12

Konsoldan çıkmak için Ctrl+a q tuş kombinasyonunu kullanın.

Port Yönlendirme

Container içindeki servislere dış ağdan erişim için proxy-device aracılığıyla port yönlendirme mekanizması kullanılır:

incus config device add deb12 web proxy \
  listen=tcp:0.0.0.0:8080 connect=tcp:127.0.0.1:80

Bu komut host'un 8080 portunu container'ın 80 portuna yönlendirir.

Birden fazla port için örnek:

HTTP:

incus config device add mycontainer http proxy \
  listen=tcp:0.0.0.0:80 connect=tcp:127.0.0.1:80

HTTPS:

incus config device add mycontainer https proxy \
  listen=tcp:0.0.0.0:443 connect=tcp:127.0.0.1:443

SSH:

incus config device add mycontainer ssh proxy \
  listen=tcp:0.0.0.0:2222 connect=tcp:127.0.0.1:22

Container Yapılandırma Yönetimi

Yapılandırmayı Görüntüleme

Container'ın tam genişletilmiş yapılandırmasını görüntüleme:

incus config show <name> --expanded

Profiller olmadan temel yapılandırmayı görüntüleme:

incus config show <name>

Parametreleri Değiştirme

Yapılandırma parametrelerini ayarlama:

CPU sınırlaması:

incus config set <name> limits.cpu=4

Bellek sınırlaması:

incus config set <name> limits.memory=4GiB

Disk I/O sınırlaması:

incus config set <name> limits.disk.priority=5

Container otomatik başlatma:

incus config set <name> boot.autostart=true

Cihaz Ekleme

Cihaz ekleme genel sözdizimi:

incus config device add <name> <device-name> <type> key=value

Örnekler:

Ek disk ekleme:

incus config device add mycontainer data disk \
  source=/data/mycontainer pool=default

Ek ağ arabirimi ekleme:

incus config device add mycontainer eth1 nic \
  network=incusbr1 name=eth1

Host dizinini container'a mount etme:

incus config device add mycontainer shared disk \
  source=/host/path path=/container/path

Cihazı kaldırma:

incus config device remove <name> <device-name>

Snapshot'lar ve Migrasyon ile Çalışma

Snapshot Oluşturma

Snapshot'lar sonraki geri yükleme için container durumunu kaydetmeye olanak tanır:

incus snapshot <name> <snapshot-name>

Örnek:

incus snapshot deb12 before-update

Container snapshot'larının listesi:

incus info <name>

Snapshot'tan Geri Yükleme

incus restore <name> <snapshot-name>

Örnek:

incus restore deb12 before-update

Snapshot'ı silme:

incus delete <name>/<snapshot-name>

Yeniden Adlandırma ve Kopyalama

Container'ı yeniden adlandırma:

incus move <name> <newname>

Aynı host üzerinde container'ı kopyalama:

incus copy <name> <newname>

Container'ı başka bir Incus-host'a kopyalama:

incus copy <name> <remote>:<newname>

Uzak host'larla çalışmak için önceden remote eklemek gerekir:

incus remote add myremote https://remote-ip:8443

Image Yönetimi

Image'ları Görüntüleme

Yerel image'ların listesi:

incus image list

Uzak depodaki image'ların listesi:

incus image list images:

Belirli bir dağıtım arama:

incus image list images: debian
incus image list images: ubuntu

Image'ları Kopyalama

Otomatik güncelleme ile genel depodan image kopyalama:

incus image copy images:debian/12 local: --auto-update

Alias ile image kopyalama:

incus image copy images:debian/12 local: --alias debian12

Container'dan Image Oluşturma

incus publish <container-name> --alias my-custom-image

Image'ları Silme

incus image delete <image-fingerprint>

veya alias'a göre:

incus image delete <alias>

Ağ Etkileşimi

Ağ Yönetimi

Ağ listesi:

incus network list

Ağ yapılandırmasını görüntüleme:

incus network show <network-name>

Yeni ağ oluşturma:

# Bridge-ağı oluşturma
incus network create mybr0 \
  ipv4.address=10.10.10.1/24 \
  ipv4.nat=true \
  ipv6.address=none

# Macvlan-ağı oluşturma
incus network create mymacvlan \
  type=macvlan \
  parent=eth0

Ağı düzenleme:

incus network edit <network-name>

Ağı silme:

incus network delete <network-name>

Ağ Forwarding Kuralları

Port yönlendirme için forwarding kuralı oluşturma:

incus network forward create incusbr0 <external-ip>
incus network forward port add incusbr0 <external-ip> tcp 80 <container-ip> 80

Depolama Yönetimi

Storage Pool Yönetimi

Pool'ların listesi:

incus storage list

Pool hakkında bilgi görüntüleme:

incus storage show <pool-name>

Storage pool oluşturma:

Dir-tabanlı pool:

incus storage create mypool dir source=/var/lib/incus/pools/mypool

Btrfs pool:

incus storage create mybtrfs btrfs source=/dev/sdb

ZFS pool:

incus storage create myzfs zfs source=/dev/sdc

Pool'u düzenleme:

incus storage edit <pool-name>

Pool'u silme:

incus storage delete <pool-name>

Volume Yönetimi

Kullanıcı volume'ü oluşturma:

incus storage volume create <pool-name> <volume-name>

Pool'daki volume'lerin listesi:

incus storage volume list <pool-name>

Volume'ü container'a bağlama:

incus config device add <container> <device-name> disk \
  pool=<pool-name> \
  source=<volume-name> \
  path=/mount/path

Volume'ü kopyalama:

incus storage volume copy <pool>/<volume> <pool>/<new-volume>

Volume'ü silme:

incus storage volume delete <pool-name> <volume-name>

NAT ve Yönlendirme Yapılandırması

Bazı durumlarda container'ların dış ağa ağ erişimini sağlamak için manuel NAT ve yönlendirme kuralları yapılandırması gerekebilir.

nftables'a Geçiş

update-alternatives --set iptables /usr/sbin/iptables-nft
update-alternatives --set ip6tables /usr/sbin/ip6tables-nft
update-alternatives --set arptables /usr/sbin/arptables-nft
update-alternatives --set ebtables /usr/sbin/ebtables-nft

IP Forwarding'i Etkinleştirme

sysctl -w net.ipv4.ip_forward=1

Kalıcı uygulama için /etc/sysctl.conf dosyasına ekleyin:

net.ipv4.ip_forward=1

Değişikliklerden sonra Incus'u yeniden başlatma:

systemctl restart incus

NAT Tablosu Yapılandırması

NAT tablosu ve POSTROUTING zinciri oluşturma:

nft add table ip nat
nft add chain ip nat POSTROUTING '{ type nat hook postrouting priority srcnat; }'

Container alt ağı için masquerade kuralı ekleme:

nft add rule ip nat POSTROUTING oifname "ens1" ip saddr 10.1.4.0/24 counter masquerade

Not

ens1'i dış ağ arabiriminizin adıyla ve 10.1.4.0/24'ü Incus köprünüzün alt ağıyla değiştirin.

FORWARD Zinciri Yapılandırması

Filter tablosu ve FORWARD zinciri oluşturma:

nft add table ip filter
nft add chain ip filter FORWARD '{ type filter hook forward priority 0; policy accept; }'

Trafik geçişi için kurallar ekleme:

Container'lardan dışarı trafiğe izin verme:

nft insert rule ip filter FORWARD iifname "incusbr0" oifname "ens1" accept

Established/related trafiğin geri dönüşüne izin verme:

nft insert rule ip filter FORWARD iifname "ens1" oifname "incusbr0" ct state established,related accept

nftables Kurallarını Kontrol Etme

Tüm kuralları görüntüleme:

nft list ruleset

Kuralları kaydetme (Debian/Ubuntu için):

Kuralları kaydetmek için paket kurma:

apt-get install nftables

Mevcut kuralları kaydetme:

nft list ruleset > /etc/nftables.conf

Otomatik yüklemeyi etkinleştirme:

systemctl enable nftables

Not

Incus'un tüm özellikleri hakkında ayrıntılı bilgi resmi geliştirici belgelerinde bulunmaktadır.

API Kullanarak Incus Siparişi Verme

Bu yazılımı API kullanarak kurmak için bu talimatları takip edin


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