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 her birinin kapsayıcı yaşam döngüsü sırasında 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ı etiketlerle dağıtımlardan kaçının çünkü bu etiketler güncelleştirmeleri almaya devam eder ve üretim ortamlarında tutarsızlıklara neden olabilir.
Kararlı etiketler bir geliştirici veya derleme sistemi gibi belirli bir etiketi çekmeye devam edebilir ve bu da güncelleştirmeleri almaya devam eder. 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ği anlamına gelir. "Kararlı" kalmak için, güvenlik yamaları veya çerçeve güncelleştirmeleri uygulamak için hizmet verebilir.
Örnek
Çerçeve ekibi 1.0 sürümünü gönderir. Küçük güncelleştirmeler de dahil olmak üzere güncelleştirmeleri gönderdiklerini biliyorlar. Belirli bir ana ve ikincil sürüm için 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 1.0 sürümü 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ü elde edilir. Ö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 etiketsiz bildirimleri düzenli aralıklarla silebilirsiniz. Örneğin, belirtilen süreden eski 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üğümde ö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ğin ölçeğini genişletirse, 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 etiketi 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 işleme – Bu yaklaşım, temel görüntü güncelleştirmelerini desteklemeye başlayana kadar çalışır. Temel görüntü güncelleştirmesi gerçekleşirse, derleme sisteminiz önceki derlemeyle aynı Git işlemesiyle başlar. 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, okunmaları zordur ve derleme ortamınızla bağıntısızdır.
Derleme Kimliği - Bu seçenek büyük olasılıkla artımlı olduğundan 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, bildirim özeti gibi, bir insanın okuması zor olabilir.
Kuruluşunuzun çeşitli derleme sistemleri varsa, etiketin önüne derleme sistemi adı eklendiğinde şu seçenekte bir çeşitleme yapı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 false
write-enabled
olarak 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ı engeller. Kilitleme adımını yayın işlem hattınıza ekleyebilirsiniz.
Dağıtılan bir görüntüyü kilitlemek yine de kayıt defterinizin bakımını yapmak için Azure Container Registry özelliklerini kullanarak diğer dağıtılmamış görüntüleri kayıt defterinizden kaldırmanıza olanak tanır. Örneğin, etiketlenmemiş bildirimleri veya belirli bir süreden daha eski 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 hakkında daha ayrıntılı bir tartışma için Docker Etiketleme: Docker görüntülerini etiketlemek ve sürüm oluşturmak 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.