Kubernetes kapsayıcıları yeniden başlattığında veya küme büyütüldüğünde ne olur?

Aug 18 2020

Kubernetes kümesinde uygulama dağıtmak için Helm Chart kullanıyoruz .

Durum bilgisi ve başsız hizmetimiz var. MTLS'yi başlatmak için, bir 'iş' türü oluşturduk ve 'komut' içinde kabuk ve python betikleri bir argüman olarak geçiriyoruz. Ve sertifikayı güncellemek için bir 'cronjob' türü yarattı.

Bazı başlatma çalışmaları ve TLS sertifikaları oluşturmak için 'docker görüntüsü' içinde bir 'docker-entrypoint.sh' yazdık.

Sorulacak sorular:

  • Kapsayıcıların ölçeklendirilmesi / izlenmesi / yeniden başlatılmasıyla kim (Helm Chart / Kubernetes) ilgilenir?
  • Pod başarısız olursa / yeniden başlarsa yeni docker görüntüsünü dağıtır mı?
  • Liman işçisi Will EntryPoint konteyner / yeniden başlatılır başarısız sonra yürütmek?
  • Kapsayıcı yeniden başlarsa 'job' ve 'cronjob' yürütülür mü?

Kubernetes tarafından atılan diğer adımlar nelerdir? Container içgörülerini de paylaşır mısınız?

Yanıtlar

4 ArghyaSadhu Aug 18 2020 at 14:28

restartPolicy: NeverKapsül spesifikasyonunda ayarlamadığınız sürece, Kubernetes ve dümen değil başarısız bir kapsayıcı varsayılan olarak yeniden başlatılır

Konteynırın yeniden başlatılması, ilk seferinde başlatmakla tamamen aynıdır. Bu nedenle, yeniden başlatmada, konteyneri ilk kez başlatırken olduğu gibi, her şeyin aynı şekilde gerçekleşmesini bekleyebilirsiniz.

Her bir kubernetes düğümünde çalışan dahili olarak kubelet aracısı , docker, containerd vb . OCI şikayet konteyneri çalışma zamanına bir konteyneri başlatma görevini devreder ve daha sonra docker görüntüsünü düğümde bir konteyner olarak döndürür.

Bir konteynerin yeniden başlatılmasının her ikisinde de giriş noktası komut dosyasının yürütülmesini beklerdim.

Pod başarısız olursa / yeniden başlarsa yeni docker görüntüsünü dağıtır mı?

Kapsül spesifikasyonunda belirtilenle aynı görüntüye sahip yeni bir kap oluşturur.

Kapsayıcı yeniden başlarsa 'job' ve 'cronjob' yürütülür mü?

Cronjob parçası olan bir kap başarısız olursa Kubernetes (sürece yeniden başlatmayı tutacak restartPolicy: Nevertime iş kadar konteyner başarısız kontrolü yapınız olarak kabul edilmez pod spec olarak) bu bir cronjob başarısızlık üzerine bir kap yeniden başlatmayın yapmak için nasıl. backoffLimitİşin başarısız olarak değerlendirilmesinden önce kaç kez yeniden deneyeceğini kontrol etmek için belirtebilirsiniz .

Ölçek büyütme, aynı konteynerin başka bir örneğini aynı veya tamamen farklı Kubernetes düğümünde planlamaya ve başlatmaya eşdeğerdir.

Bir yan not olarak, bölme yerine dağıtım gibi daha yüksek seviyeli soyutlama kullanmalısınız çünkü bir bölme başarısız olduğunda Kubernetes onu aynı düğümde yeniden başlatmaya çalışır, ancak bir dağıtım başarısız olduğunda Kubernetes bunu diğer düğümlerde de yeniden başlatmayı deneyecektir. bölmeyi geçerli zamanlanmış düğümünde başlatın.