Önyüklenebilir konteyner oluşturmak için en iyi uygulamalar
(developers.redhat.com)- Red Hat Enterprise Linux (RHEL) için image mode, RHEL’i önyüklenebilir konteynerler olarak oluşturma, dağıtma ve yönetme sürecini basitleştirir
- Geliştiriciler, operasyon ekipleri ve çözüm sağlayıcılar; uygulamaları ve temel işletim sistemini yönetmek için aynı konteyner yerel araçları ve teknikleri kullanabilir
Önyüklenebilir konteyner oluşturma vs. uygulama konteyneri oluşturma
- Tipik uygulama konteynerlerinde olduğu gibi, Podman, Docker veya buildkit gibi mevcut konteyner teknolojileri kullanılarak önyüklenebilir konteynerler oluşturulabilir
- İmajlar; Quay.io, Docker Hub, GitHub Container Registry veya dahili konteyner registry’leri gibi konteyner registry’lerinde saklanabilir
- Önyüklenebilir konteynerler, konteyner teknolojilerinin doğal bir evrimidir ve tüm işletim sistemi ile Linux çekirdeğini de kapsayan, kapsamlı bir konteyner yerel iş akışı ve kullanıcı deneyimi sunar
Containerfile kullanımı
- Containerfile (Dockerfile olarak da bilinir), bir konteyner imajı oluşturmak için gereken tüm bilgileri içerir; buna temel imaj, yazılım paketi kurulum talimatları ve Git deposundan dosya kopyalama gibi adımlar dahildir
- Önyüklenebilir konteyner oluşturma iş akışı ve araçları, özünde uygulama konteynerleriyle aynıdır
- Ancak önyüklenebilir konteynerler oluştururken uygulanması gereken bazı en iyi uygulamalar vardır
Linting için en iyi uygulamalar
- Containerfile’ın son adımı olarak
bootc container lintkomutunun çalıştırılması önerilir - Bu komut, konteyner imajı içinde çeşitli kontroller yapar ve sorun varsa hata üretir
- Örneğin
/usr/lib/modulesaltında birden fazla çekirdek olup olmadığını denetler,/usr/lib/bootc/kargs.diçindeki dosyaların sözdizimini kontrol eder ve/etcile/usr/etciçin hijyen kontrolleri yapar
GitHub Actions ve disk alanı
- GitHub Actions ile konteyner oluştururken, önyüklenebilir konteyner imajlarının boyutu nedeniyle disk alanı sorunlarıyla karşılaşabilirsiniz
- Bu sorunları çözmek için, iş akışı dosyasına
/opt/hostedtoolcachedizinini silen bir adım ekleyerek disk alanı açabilirsiniz
/var dizinini anlamak
/var, kalıcı ve değiştirilebilir makineye özgü yerel veri ile durum için kullanılan dizindir; güncellemeler sırasında bile konteyner imajındaki/variçeriği değişmez- Bu nedenle bir uygulama
/variçine veri yazıyorsa, salt okunur mount sorunlarını önlemek için bunun/usr/sharegibi başka bir dizine taşınması gerekir
useradd komutunu kullanmak
- Paketleme betiklerinde
useraddçağrılıyorsa,/etc/passwdyerelde değiştirildiğinde durum sapması oluşabilir - Bu tür sorunlardan kaçınmak için,
systemdiçindekiDynamicUser=yesseçeneğiyle dinamik kullanıcı oluşturmayı değerlendirebilirsiniz - Ancak karmaşık durumlarda
DynamicUser=yesseçeneğine geçmek zor olabilir; bu durumda kullanıcı oluşturmak içinsystemd-sysuserskullanılması önerilir
Quadlet ile konteyner gömme
- Konteynerleştirilmiş iş yüklerini
systemdiçinde çalıştırmak, güvenilir dağıtım için basit ama güçlü bir yöntemdir - Podman,
systemdile entegrasyon için Quadlet adlı bir araç sunar; bu araç sayesinde konteynerleştirilmiş iş yükleri deklaratif olarak yönetilebilir - Quadlet, image mode ile tamamen entegredir ve önyükleme sırasında uygulama konteyner imajlarını önceden çekmek için mantıksal olarak bağlanmış imajlar kullanılabilir
Özet
- Image mode kullanımı, RHEL host’larının çalışma biçiminde bir paradigma değişimi yaratır
- Bulut yerel araçlarla işletim sistemi oluşturulabilir, dağıtılabilir ve yönetilebilir; ayrıca sistemin büyük bölümünün salt okunur olarak mount edildiği değişmez bir OS yaklaşımı söz konusudur
Henüz yorum yok.