Sizin kümenizde çalışan, her şeyden yalıtılmış laboratuvarlar
Eğitmeniz gereken kişilerin bir kısmı Docker kuramaz, bir kısmına ise kurdurulmamalıdır. Laboratuvar aynı alıştırmayı onlara bir tarayıcı sekmesinde verir: gerçek araçlar, gerçek bir terminal ve sınıf sürdüğü sürece kendi düğümlerinizde çalışan bir ortam.
Laboratuvar tek bir pod değil, bir pod grubudur
Tek bir podun içindeki kapsayıcılar aynı ağ ad alanını paylaşır; bu yüzden birlikte konulan bir istemci ile sunucu birbirleriyle geri döngü arayüzü üzerinden konuşur. Bir ağ alıştırması için bu, öğretilen şeyi sessizce yok eder: kursiyerin yakalaması gereken trafik hiçbir zaman bir kablodan geçmez. Bu nedenle ayrı bir makine olması gereken her bileşen kendi poduna alınır; yalnızca gerçekten aynı makinede olması gerekenler paylaşır.
Alıştırma değiştirilmeden çalışır
Her laboratuvarın kendi ad çözümlemesi vardır; böylece alıştırmadaki yalın bir makine adı, o kursiyerin kendi sunucusuna çözümlenir, başkasınınkine asla. Kursiyere çalıştırması söylenen betikler, bir dizüstünde çalıştıracağı betiklerin aynısıdır — bu önemlidir, çünkü komutları yazılı alıştırmadan farklı olan barındırılmış bir laboratuvar konuyu değil barındırmayı öğretir.
Her iki yönde de varsayılan ret
Laboratuvarlar, hiçbir şeyin içeri, hiçbir şeyin dışarı konuşamadığı kendilerine ait bir ad alanında çalışır. Dışarı yalnızca ad çözümlemesine ve aynı laboratuvarın diğer podlarına açılır; bir şablon ek olarak herkese açık adreslere izin verebilir ve bu, varsayılan değil şablon başına verilen bilinçli bir karardır. Bir laboratuvar diğerine yalnızca şablonun adını verdiği portlardan erişebilir — terminallerine asla.
Politika dosyasından okunarak değil, içeriden kanıtlanır
Ağ politikası, ancak onu uygulayan ağ eklentisi kadar gerçektir; doğru okunan bir politika hiçbir şeyi uygulamıyor olabilir. Bu yüzden yalıtım, çalışan bir laboratuvarın içinde yürütülen ve erişmemesi gereken şeylere erişmeyi deneyen bir betikle denetlenir: platformun kendi veritabanı, diğer ad alanları, kümenin iç servisleri. On dokuz denetim ve sonuç, gerçekten denenmiş olanın sayısıdır.
Bir laboratuvarın çalışıp çalışmadığını küme söyler
Veritabanındaki bir durum sütunu değil. Kümeye sormak, bir düğüm yeniden başladıktan, bir pod tahliye edildikten ya da birisi elle sildikten sonra cevabın asla bayatlamaması demektir — saklanan bir durumun kendinden emin biçimde yanlış olduğu ve kursiyere, çalışmayan laboratuvarının çalıştığının söylendiği üç durum tam olarak bunlardır.
Kendini sonlandırır
Her laboratuvar kendi son süresini taşır; bu süre şablonun sınırından alınır ve sınıfın kalan süresine göre kısılır. Temizliğin gerçekleşmesi için ayakta kalması gereken zamanlanmış bir iş yoktur: kimsenin durdurmadığı bir laboratuvar yine de durur ve biten bir sınıf laboratuvarlarını da beraberinde götürür.
Kişi başına çalışan tek laboratuvar
Bir kişi birden fazlasına sahip olabilir ama tek birini çalıştırır. Kümenizdeki yükü sınırlayan tek kural budur, çünkü her laboratuvar tam olarak bir kişiye aittir: bir sınıf hiçbir zaman kişi sayısından fazla laboratuvar çalıştıramaz ve tüm sınıfı aynı anda başlatan bir eğitmen, kişi başına en fazla bir tane başlatır.
Bunun çözmediği şey
Kursiyer kendi laboratuvarının içinde root'tur ve bundan, hiçbir platform ayarının düzeltmediği iki sonuç doğar. Erişim geri alındığında halihazırda açık olan bir bağlantı, pod durdurulana kadar yaşamaya devam eder. Sınırsız çoğalan bir süreç ise buradaki hiçbir şeyle değil, düğümün kendi yapılandırmasıyla sınırlanır — bu, küme yöneticinizin yaptığı bir ayardır ve size bunu pilottan sonra değil, önce denetlemenizi söyleriz.
Kursiyer, kendi laboratuvarının içinde root'tur. Bu sayfadaki her kural bunu varsayar ve buna rağmen geçerli olacak şekilde yazılmıştır.