Çalışan bir Kubernetes kapsülü nasıl eklenir

Çalışan bir Kubernetes bölmesinin değiştirilmesi için indirilmesi gerekmez. Yama seçeneğini kullanarak, kapsüle yeni bir kap eklemek aslında oldukça kolaydır.

<a href = "https://tr4.cbsistatic.com/hub/i/r/2018/11/08/3d1a9132-f650-4780-a34b-e103bdd1bb3e/resize/770x/56f18e5a7ddbabdf443a10d189b762b6/kubernet". _blank "data-component =" modalEnlargeImage "data-headline ="

"data-credit =" Resim: Jack Wallen "rel =" noopener noreferrer nofollow ">kuberneteshero.jpg

Resim: Jack Wallen

Kubernetes pazardaki en güçlü ve esnek konteyner küme yöneticilerinden biridir. Bu araçla neredeyse ihtiyacınız olan her şeyi yapabilirsiniz. Kubernetes'in sunduğu bu yeteneklerden biri, zaten konuşlandırılmış bir kapsülü düzeltme yeteneğidir.

Örneğin, bir NGINX konteyneri içeren ancak daha sonra karışıma regis ve MySQL konteynırları eklemek istediğiniz bir kapsülünüz olduğunu varsayalım. Hepsini indirip yapılandırma dosyalarınızı yeniden doldurmak yerine, yeni kapsayıcıları eklemek için bir yama komutu çalıştırabilirsiniz.

Size bunu nasıl yapacağınızı göstereceğim. Bu örnek oldukça temel olsa da, yama seçeneğinin kubectl komutuyla nasıl çalıştığını gösterecektir.

GÖRMEK: Akıllı teknoloji ulaşım endüstrisini nasıl dönüştürüyor (TechRepublic Premium)

Gerekenler

Bu işi yapmak için ihtiyacınız olan tek şey, çalışan bir Kubernetes kümesidir.

Kümenin nasıl dağıtılacağını öğrenmek için eğiticime göz atın: Ubuntu sunucusunda bir Kubernetes kümesi nasıl dağıtılır. Bir kez hazır ve çalışır hale geldikten sonra devam edebiliriz.

Kubernetes servisi nasıl dağıtılır

Yapmamız gereken ilk şey bir Kubernetes servisi kurmak. Şu komutla yeni bir dizin oluşturun:

mkdir ~/patch-demo

Komutla yeni dizine geçin:

cd ~/patch-demo

Şimdi, oldukça basit bir şablona ve iki kopyaya sahip NGINX'i içeren bir hizmet dağıtımı için bir YAML dosyası oluşturun. Bu dosyayı şu komutla oluşturun:

nano deployment-patch.yaml

Bu dosyaya aşağıdaki içeriği yapıştırın:

apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
kind: Deployment
metadata:
  name: patch-demo
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: patch-demo-ctr
        image: nginx
      tolerations:
      - effect: NoSchedule
        key: dedicated
        value: test-team

Dosyayı kaydedip kapatın. Bu yapılandırmayı şu komutla dağıtın:

kubectl apply -f deployment-patch.yaml

Şimdi bu bölmenin çalıştığını şu komutu vererek görebilirsiniz:

kubectl get pods

Patch-demo bölmesi çalışan (Şekil A).

Şekil A

<a href = "https://tr3.cbsistatic.com/hub/i/r/2020/03/31/bf760cf7-53fb-4df3-a448-1c0847e130a8/resize/770x/2b751cc6bc19db23fbaee0f688c02734/pat" " _blank "data-component =" modalEnlargeImage "data-headline ="

Kubernetes patch-demo kapsülümüz çalışıyor.

"data-credit =" http://www.techrepublic.com/ "rel =" noopener noreferrer nofollow ">patcha.jpg "veri-orijinal =" https://tr3.cbsistatic.com/hub/i/r/2020/03/31/bf760cf7-53fb-4df3-a448-1c0847e130a8/resize/770x/2b751cc6bc19db23fbaee0f688c27/27/070

Kubernetes patch-demo kapsülümüz çalışıyor.

Çalışan hizmet düzeltme eki

Şimdi, kapsüle bir redis kapsayıcı ekleyecek stratejik bir birleştirme yama dosyası oluşturacağız. Şu komutla bir yama dosyası oluşturun:

nano patch-file.yaml

Bu dosyaya aşağıdakileri yapıştırın:

spec:
  template:
    spec:
      containers:
      - name: patch-demo-ctr-2
        image: redis

Dosyayı kaydedip kapatın.

Çalışan hizmeti yamalamak için şu komutu verin:

kubectl patch deployment patch-demo --patch "$(cat patch-file.yaml)"

Bu durumda olan şey, dağıtımın eski bölmeleri sonlandıracak ve yenilerini oluşturacağıdır.

Buna devam edebilirsiniz. Diyelim ki karışıma MySQL eklemek istiyorsunuz. Şu komutla başka bir yama dosyası oluşturun:

nano patch-file-2.yaml

Bu dosyaya aşağıdakileri yapıştırın:

spec:
  template:
    spec:
      containers:
      - name: patch-demo-ctr-3
        image: mysql

Dosyayı kaydedip kapatın ve yama komutunu şu şekilde yeniden çalıştırın:

kubectl patch deployment patch-demo --patch "$(cat patch-file-2.yaml)"

Komutu verirseniz:

kubectl get deployment patch-demo --output yaml

Ngxin, redis ve mysql öğelerinin bölmede bulunduğunu göreceksiniz (Şekil B).

Şekil B

<a href = "https://tr4.cbsistatic.com/hub/i/r/2020/03/31/470b58b3-163a-4b56-9db2-9efd50b0fce9/resize/770x/6357f58fe37c06856d42c9de718d1f28/patch" " _blank "data-component =" modalEnlargeImage "data-headline ="

Kubernetes kapsülümüz şimdi üç görüntüyü de içeriyor.

"data-credit =" http://www.techrepublic.com/ "rel =" noopener noreferrer nofollow ">patchb.jpg "veri-orijinal =" https://tr4.cbsistatic.com/hub/i/r/2020/03/31/470b58b3-163a-4b56-9db2-9efd50b0fce9/resize/770x/6357f58fe37c06856d42c9dep18b28f28f28f28f28

Kubernetes kapsülümüz şimdi üç görüntüyü de içeriyor.

Bu yama sistemi ile yapamayacağınız bir şey, bir kapsülün kopya sayısını arttırmaktır. Bunu yapmak için scale komutunu şu şekilde kullanırsınız:

kubectl scale --replicas=4 deployment patch-demo

Veya bölmeyi şu şekilde sıfıra indirerek silebilirsiniz:

kubectl scale --replicas=0 deployment patch-demo

Ve çalışan Kubernetes servisine yama yapmak için gereken tek şey bu. Bu çok temel bir öğretici olmasına rağmen, patch komutu ile yapabileceğinizin neredeyse sınırsız olduğunu göreceksiniz.

Ayrıca bakınız

Source link

İlk yorum yapan olun

Bir yanıt bırakın

E-posta hesabınız yayımlanmayacak.


*