Kapsayıcı görüntülerini etiketleme ve sürüm oluşturma önerileri

Kapsayıcı görüntülerini bir kapsayıcı kayıt defterine gönderirken ve sonra dağıtırken, görüntü etiketleme ve sürüm oluşturma için bir stratejiye ihtiyacınız vardır. Bu makalede iki yaklaşım ve kapsayıcı yaşam döngüsü sırasında her birinin uygun olduğu durumlar ele alınmaktadır:

  • Kararlı etiketler - Örneğin , mycontainerimage:1.0 gibi bir ana veya ikincil sürümü belirtmek için yeniden kullandığınız etiketler.
  • Benzersiz etiketler - Kayıt defterine gönderdiğiniz her görüntü için mycontainerimage:abc123 gibi farklı bir etiket.

Kararlı etiketler

Öneri: Kapsayıcı derlemelerinizin temel görüntülerini korumak için kararlı etiketler kullanın. Kararlı etiketlere sahip dağıtımlardan kaçının, çünkü bu etiketler güncelleştirmeleri almaya devam eder ve üretim ortamlarında tutarsızlıklar oluşturabilir.

Kararlı etiketler , bir geliştiricinin veya derleme sisteminin güncelleştirmeleri almaya devam eden belirli bir etiketi çekmeye devam etmesi anlamına gelir. Kararlı, içeriğin dondurulması anlamına gelmez. Bunun yerine kararlı, görüntünün bu sürümün amacı için kararlı olması gerektiğini gösterir. "Kararlı" kalmak için güvenlik düzeltme ekleri veya çerçeve güncelleştirmeleri uygulamak üzere hizmet verebilir.

Örnek

Çerçeve ekibi sürüm 1.0'a gönderimde bulunur. Küçük güncelleştirmeler de dahil olmak üzere güncelleştirmeleri gönderdiklerini biliyorlar. Belirli bir ana ve ikincil sürümde kararlı etiketleri desteklemek için iki kararlı etiket kümesine sahiptir.

  • :1 – ana sürüm için kararlı bir etiket. 1 "en yeni" veya "en son" 1.* sürümünü temsil eder.
  • :1.0- bir geliştiricinin 1.0 güncelleştirmelerine bağlanmasına ve yayınlandığında 1.1'e iletilmemesi için sürüm 1.0 için kararlı bir etiket.

Temel görüntü güncelleştirmeleri veya çerçevenin herhangi bir bakım sürümü kullanılabilir olduğunda, kararlı etiketlere sahip görüntüler bu sürümün en güncel kararlı sürümünü temsil eden en yeni özete güncelleştirilir.

Bu durumda, hem ana hem de ikincil etiketlere sürekli hizmet velenmektedir. Temel görüntü senaryosunda bu, görüntü sahibinin hizmet veren görüntüler sağlamasına olanak tanır.

Etiketlenmemiş bildirimleri silme

Kararlı etikete sahip bir görüntü güncelleştirilirse, daha önce etiketlenen görüntü etiketlenmemiştir ve yalnız bırakılmış bir görüntüyle sonuçlanır. Önceki görüntünün bildirimi ve benzersiz katman verileri kayıt defterinde kalır. Kayıt defteri boyutunuzu korumak için kararlı görüntü güncelleştirmelerinden kaynaklanan etiketlenmemiş bildirimleri düzenli aralıklarla silebilirsiniz. Örneğin, belirtilen süreye göre daha eski olan etiketsiz bildirimleri otomatik olarak temizleme veya etiketlenmemiş bildirimler için bir bekletme ilkesi ayarlama.

Benzersiz etiketler

Öneri: Dağıtımlar için, özellikle birden çok düğüme ölçeklendirilebilen bir ortamda benzersiz etiketler kullanın. Muhtemelen bileşenlerin tutarlı bir sürümünün kasıtlı dağıtımlarını istiyorsunuz. Kapsayıcınız yeniden başlatılırsa veya bir düzenleyici daha fazla örneği ölçeklendirirse, konaklarınız yanlışlıkla diğer düğümlerle tutarsız olan daha yeni bir sürüm çekmez.

Benzersiz etiketleme, bir kayıt defterine gönderilen her görüntünün benzersiz bir etikete sahip olduğu anlamına gelir. Etiketler yeniden kullanılmaz. Benzersiz etiketler oluşturmak için izleyebileceğiniz çeşitli desenler vardır:

  • Tarih-saat damgası - Bu yaklaşım oldukça yaygındır, çünkü görüntünün ne zaman oluşturulduğunı net bir şekilde anlayabilirsiniz. Ancak, derleme sisteminizle nasıl bağıntı kuracak? Aynı anda tamamlanan derlemeyi bulmanız gerekiyor mu? Hangi saat dilimindesiniz? Tüm derleme sistemleriniz UTC olarak ayarlandı mı?

  • Git commit – Bu yaklaşım, temel görüntü güncelleştirmelerini desteklemeye başlayana kadar çalışır. Bir temel görüntü güncelleştirmesi gerçekleşirse, derleme sisteminiz önceki derlemeyle aynı Git işlemesiyle başlatılır. Ancak temel görüntüde yeni içerik vardır. Genel olarak Git işlemesi yarı kararlı bir etiket sağlar.

  • Bildirim özeti - Kapsayıcı kayıt defterine gönderilen her kapsayıcı görüntüsü, benzersiz bir SHA-256 karması veya özetiyle tanımlanan bir bildirimle ilişkilendirilir. Benzersiz olsa da özet uzundur, okuması zordur ve derleme ortamınızla bağıntısızdır.

  • Derleme Kimliği - Büyük olasılıkla artımlı olduğundan bu seçenek en iyi seçenek olabilir ve tüm yapıtları ve günlükleri bulmak için belirli bir derlemeyle bağıntı kurmanızı sağlar. Ancak, bir özet gibi, bir insanın okuması zor olabilir.

    Kuruluşunuzun birkaç derleme sistemi varsa, etiketine derleme sistemi adı ön eki eklendiğinde şu seçenek kullanılır: <build-system>-<build-id>. Örneğin, derlemeleri API ekibinin Jenkins derleme sisteminden ve web ekibinin Azure Pipelines derleme sisteminden ayırt edebilirsiniz.

Dağıtılan görüntü etiketlerini kilitleme

En iyi uygulama olarak, dağıtılan tüm görüntü etiketlerini özniteliğini write-enabledfalseolarak ayarlayarak kilitlemenizi öneririz. Bu uygulama, kayıt defterinden yanlışlıkla bir görüntüyü kaldırmanızı ve dağıtımlarınızı kesintiye uğratmanızı önler. Kilitleme adımını yayın işlem hattınıza ekleyebilirsiniz.

Dağıtılan görüntüyü kilitlemek yine de kayıt defterinizin bakımını yapmak için Azure Container Registry özellikleri kullanarak diğer dağıtılmamış görüntüleri kayıt defterinizden kaldırmanıza olanak tanır. Örneğin, etiketlenmemiş bildirimleri veya belirtilen süreden daha eski olan kilidi açılmış görüntüleri otomatik olarak temizleme veya etiketlenmemiş bildirimler için bir bekletme ilkesi ayarlama.

Sonraki adımlar

Bu makaledeki kavramların daha ayrıntılı bir şekilde anlatılması için Docker Etiketleme: Docker görüntülerini etiketleme ve sürüm oluşturma için en iyi yöntemler blog gönderisine bakın.

Azure kapsayıcı kayıt defterinizin performansını ve uygun maliyetli kullanımını en üst düzeye çıkarmaya yardımcı olmak için bkz. Azure Container Registry için en iyi yöntemler.