Kubernetes genel yapı analizi

1. Kubernetes, Google ekibi tarafından başlatılan ve sürdürülen Docker tabanlı bir açık kaynaklı konteyner küme yönetim sistemidir. Yalnızca yaygın bulut platformlarını desteklemekle kalmaz, aynı zamanda dahili veri merkezlerini de destekler.

Docker üzerinde oluşturulan Kubernetes, bir konteyner planlama hizmeti oluşturabilir. Amacı, kullanıcıların karmaşık ayarlar yapmasına gerek kalmadan Kubernetes kümeleri aracılığıyla bulut kapsayıcı kümelerini yönetmelerine olanak sağlamaktır. Sistem, belirli kapsayıcı küme planlama işleme görevlerini gerçekleştirmek için uygun çalışma düğümlerini otomatik olarak seçecektir. Temel konsept Konteyner Kapsülüdür. Bir Bölme, aynı fiziksel çalışma düğümü üzerinde çalışan bir grup kapsayıcıdan oluşur. Bu kapsayıcı grupları aynı ağ ad alanına, IP'ye ve depolama kotasına sahiptir ve bağlantı noktası eşlemesi, gerçek duruma göre her Bölmede gerçekleştirilebilir. Ek olarak, Kubernetes çalışan düğümleri ana sistem tarafından yönetilecek ve düğümler Docker konteynerlerini çalıştırabilen hizmetleri içerir.

2. Mimari model ana / düğümlerdir (iş)

Efendinin kraliçe arı ve düğümlerin işçi arılar olduğu anlaşılabilir (çalışan)

  • Ana, kümeye tek giriştir ve yüksek oranda erişilebilir olması gerekir.

  • Her düğüm, bilgi işlem gücünün ve depolama kapasitesinin bir bölümünü sağlar. (Düğüm çalışan kapsayıcı)

  • Talep süreci :

    1 İstemci isteği (bir başlangıç konteyneri oluşturma) ilk önce ana makineye gönderilir.Masterde her düğümün kaynak durumunu analiz edecek bir programlayıcı vardır.2 Kullanıcı tarafından talep edilen konteyneri çalıştırmak için en uygun düğümü bulun ve koyun Planlama için, konteyneri başlatmaktan düğümün docker'ı veya diğer konteyner motoru sorumludur. 3 Konteyneri başlatırken yerel olarak bir yansıtma olup olmadığını kontrol edin Başlamak için ayna depodan çekmeye gerek yoksa (ayna deposu bulutta olabilir, kendi kendine kontrol edilen özel bir depo olabilir veya düğüm düğümünde konteyner olarak çalıştırılabilir).

    Üç, Ana küme bileşenleri

    • API Sunucusu, kullanıcı isteklerini alır ve işler

    • Zamanlayıcı, kapsayıcı oluşturma isteğini planlama

    ### İki seviyeli planlama #### 1. Adım: Ön seçim 1. Her düğümden kaç düğümün gereksinimleri karşıladığını değerlendirin #### İkinci bölüm: daha iyi seçimler yapın 2. Ardından, gereksinimleri karşılayan birkaç algoritma arasından en iyi (tercih edilen) algoritmayı seçin > Her düğümdeki toplam kullanılabilir bilgi işlem ve depolama kaynaklarını gözlemlemekten ve kullanıcı tarafından oluşturulan konteynerin gerektirdiği kaynak miktarını değerlendirmekten sorumludur.
    • denetleyici-yönetici, oluşturulan kapsayıcının sağlıklı durumda olmasını sağlar

    Kontrolör yöneticisi, kontrolörün sağlığını sağlamaktır ve kontrolör, konteynerin sağlığını sağlamaktır.

    • Etiket seçici, bölmeyi denetleyici aracılığıyla etiketleyebilir ve ardından denetleyici, bölmeyi etikete göre tanımlayabilir

    Bir bölme oluştururken bölmeyi doğrudan etiketleyebilir ve ardından denetleyicinin bölmeyi etiketin değerine göre tanımlamasına izin verebilirsiniz.

    Dört, Düğüm kümesi bileşenleri

    • Kubelet bir apiserver ile etkileşimli olarak çalışır ve yönetici tarafından planlanan çeşitli görevleri alır ve işler.

    • docker kapsayıcıyı bölmede çalıştırır

    • K8'lerde çalışan en küçük birim bir konteyner değil, bir kapsüldür

    • Kubernetes, kapsayıcıları doğrudan planlamaz, ancak kapsülleri planlar. Kapsüller, kapsayıcılar için bir paketleme katmanıdır.

    • Bir bölmede birden fazla kap olabilir, aynı ağ protokol yığınını, depolama hacmini paylaşırlar

    • Genel olarak, bir bölmenin yalnızca bir kabı vardır

    • kube-proxy bir apiserver ile iletişim kurar, her pod değişir, sonucun bir apiserver'a kaydedilmesi gerekir, apiserver bir bildirim olayı oluşturur, bu olay herhangi bir ilişkili bileşen tarafından alınabilir, yönetim hizmeti, hizmet oluşturma ve değişiklik İptables üzerinde kurallar oluşturmak için kube-proxy'ye güvenin

    Kapsüle Giriş

    Bölmedeki her kabın kendi kullanıcı, mnt ve pid ad alanı vardır ve ardından bölmenin net, uts ve ipc ad alanını paylaşırlar. Genel olarak, kaplar arasında özellikle yakın bir ilişki olmadıkça ve aynı bölmeye yerleştirilmesi gerekmedikçe, bir bölme birden fazla kaba yerleştirilirse, genellikle biri ana kaptır ve diğer kaplar ana kap üzerindeki uygulamaya yardımcı olmak için kullanılır. Program elde etmek için daha fazla işlevi tamamlar. Bir bölme oluştururken bölmeyi doğrudan etiketleyebilir ve ardından denetleyicinin bölmeyi etiketin değerine göre tanımlamasına izin verebilirsiniz.

    Kapsül, kubernet kümesindeki atomik bir birim olduğu için bölünemez. Kapsül, ana birim tarafından bir düğüme programlandığında, bölmenin bir kapsayıcı veya bir bölmedeki birden çok kap olması fark etmeksizin, bölmedeki tüm kaplar Bir düğümde

  • Otonom Pod

  • Kendi kendine yönetim, oluşturulduktan sonra yine de apiserver'a gönderilmesi gerekir ve apiserver, bunu belirtilen düğümün düğümüne planlar ve kapsül, düğüm tarafından başlatılır. Bir kapsüldeki bir kapsayıcı başarısız olursa, kapsayıcının yeniden başlatılması ve kubelet'in tamamlanması gerekir. Bununla birlikte, düğüm başarısız olursa, kapsayıcı kaybolur. Global planlamaya ulaşılamıyor.

  • Kontrol yönetimi için bölme

  • Kapsülleri bir yaşam döngüsüne sahip nesneler haline getiren denetleyici mekanizmasının tanıtımıdır. Programlayıcı tarafından kümedeki bir düğümde çalışacak şekilde programlandıktan sonra, bazı görevler arka plan programı olarak bölmeler veya kapsayıcılar olarak çalışacaktır. Çalışma durumu, bir arıza oluştuğunda, herhangi bir zamanda yeniden başlatılmalı veya değiştirilmelidir.

    Kapsül denetleyici türü

    • Çoğaltma Denetleyicisi

      • Daha fazla para iadesi, daha az takviye, insanlar tarafından tanımlanan beklentileri doğru bir şekilde karşılamalıdır

      • Periyodik güncelleme (kullanıcının habersiz sürümüne benzer)

      • Geri alma

    • ReplicaSet

    • Dağıtım yalnızca durum bilgisiz uygulamaları yönetebilir

    • StatefulSet, durum bilgisi olan uygulamaları yönetir

    • DaemonSet, rastgele çalıştırmak yerine her düğümde bir kopya çalıştırır

    • İş, Cronjob iş veya periyodik iş çalıştırma

      • Bazı görevler geçici ihtiyaçlar için çalıştırılır ve çalıştırıldıktan sonra sona erer. Bu tür görevlerin her zaman çalışır durumda olması gerekmez ve bir iş olarak çalıştırılabilir

    • HPA (HorizontalPodAutoscaler), bölmeleri eklemek veya azaltmak için sistem yükünü otomatik olarak izler ve analiz eder

    Hizmet keşif işlevi

    Bir kapsül her yeniden oluşturulduğunda yepyeni bir kapsüldür.Örneğin, IP adresi ve ana bilgisayar adı farklıdır. kubernets, benzer hizmetler sunan her bir bölme grubu ile istemcileri arasına bir ara katman ekler. Bu ara katman (hizmet) sabittir ve hizmet daha sonra istemci istek bağlantı noktasını arka uç bölmesine vekalet eder (dnat kuralları aracılığıyla) ), bölmelerden biri düştüğünde, yeni bir bölme hemen ilişkilendirilir (ilişkilendirilecek aynı etiketle etiket seçici aracılığıyla) ve ardından yeni ilişkilendirilen bölmenin ip adresini ve ana bilgisayar adını dinamik olarak algılar,

    Beş, k8s ağ modeli

  • pod ağı. Her bölme aynı ağ üzerinde çalışır ve bölmenin ağ adresi, ağ adı alanında bulunan gerçek bir adrestir.

  • servis ağı (küme ağı). Hizmet adresi gerçek bir adres değildir, iptables veya ipvs kurallarında mevcuttur.

  • Düğüm ağı.

  • Altı, k8s iletişim sınıflandırması

  • Aynı bölmedeki birden çok konteyner arasında: lo network

  • Bölmeler arasında iletişim. (yer paylaşımlı ağ, yer paylaşımlı ağ)

  • Bölmeler arasında doğrudan iletişim, bölmenin hangi düğümde çalıştığından bağımsız olarak, her bölmenin adresi aynı olmamalı ve kesinlikle aynı olmamalıdır.

  • Pod ve servic arasındaki iletişim

  • Hizmet adresi, ana bilgisayardaki bir iptables kuralındaki adrestir, bu nedenle hedef adresi, ağ geçidini kendiniz göstermeyecek şekilde yapılandırmanız gerekir. Her ana bilgisayarda tüm hizmet adresi kuralları olmalıdır. Bölme hizmetin adresine erişmeye çalıştığında, önce isteği ağ geçidine (genellikle docker0 köprüsüne) gönderir ve ardından docker0 köprüsü, o anda erişilen adresin çekirdek aracılığıyla bir iptables veya ipvs kuralı olduğunu bulur ve ardından isteği gönderir.

    Daha önce belirtildiği gibi, hizmetin arka ucundaki düğüm düğümü düştüğünde, kapsül denetleyici etiket seçici aracılığıyla otomatik olarak yeni bir bölme oluşturacak ve onu hizmete ekleyecek ve düğümdeki başka bir bileşen olan kube-proxy Servis değişikliklerini api sunucusundaki ana sunucuda depolayın ve ardından api sunucusu bildirim olaylarını üretir ve kube-porxy iptables kurallarındaki değişiklikleri her düğümün iptables kurallarına yansıtır.

    Yedi, etcd k8s depolama

    Etcd, kümedeki tüm ağ yapılandırmasını ve nesne durumu bilgilerini kaydetmek için kullanılan Kubernetes kümesinde çok önemli bir bileşendir.

    Kümenin tüm değişiklik bilgilerinin ve ağ yapılandırmasının saklanması çok önemlidir, bu nedenle yüksek düzeyde erişilebilir olması gerekir.

    Sekiz, k8s küme bileşimi gereksinimleri

    Şekilde gösterildiği gibi, her hizmetin istek trafiğini planlamak için bir hizmeti vardır. Hizmetlerden birindeki bir bölme arızalanırsa, bölme denetleyicisi otomatik olarak yeni bir bölme oluşturacak ve hizmete katılacaktır. Farklı bölmelerin denetleyicileri, ait oldukları bölmeleri bölme etiketleri aracılığıyla yönetir. Tabii ki, k8s kümesinin içi de farklı ana bilgisayarları temsil etmek için ana bilgisayar adlarına ihtiyaç duyar.Dns hizmeti ayrıca bölmeler aracılığıyla sağlanır Benzer şekilde, dns bölmelerini yönetmek için bir hizmet ve bir bölme denetleyicisine de sahiptir.

    sonuç olarak.

    Aşağıdaki gibi tüm k8s kümesini özetlemek için bir resim çizin.

    Huawei DigiX Yapay Zeka Uygulama İnovasyon Yarışması sonuçlandı, "çip-cihaz-bulut" dolu yığın, terminal ekolojisinin gelişimini hızlandırıyor
    önceki
    Zaobao: Vivo X27 resmi olarak randevuları açtı / Samsung S10, Jingdong'un çifte şampiyonluğunu kazandı
    Sonraki
    Ning Wang, bu üçünü LPL'deki en güçlü ormancılar olarak nitelendirdi. Onları izledikten sonra netizenler şöyle dedi: Yaban domuzu giydi 7 nereye gitti?
    JD Game Mobile Interprets Industry Pioneer Gücü: Derinlemesine Üniversite Eğitimi Yetenek Tasarım Yeniliği
    Zotye Damai X7 otomatik şanzıman / 1.5T 89.900'den başlayarak satışa sunuluyor
    OFF-WHITE x Nike henüz satın almadı mı? Vans hemen bir şeyler yapmaya geldi!
    Docker depolama sürücüsünü adım adım anlama
    S8 oksijen tankı yorumu, takım savaşı birçok kez kaybedildi ve ortağın rahatlaması netizenleri güldürdü
    Hayal gücünün ötesinde hız: OnePlus 6 uygulamalı deneyim
    Audi, 5 yılda 6 yeni yerli enerji aracı piyasaya sürüyor
    ZooKeeper'ın tipik uygulama senaryolarını gösterin
    Yeezy hala bir çift insan ayağı mı giyiyor? Size yeni Yeezy numaralarını nasıl giyeceğinizi söyleyin!
    İki yıl sonra, "Kar Kraliçesi" tekrar geri döner ve her kızın sahip olduğu prenses rüyasını yeniden yazar.
    Acura'nın yeni TLX'inin yaklaşık 234.000 yuan denizaşırı bir fiyata satılacağı ortaya çıktı.
    To Top