Jadi, anda mungkin telah lama bekerja dengan bekas Docker, bukan? Saya tahu keseronokan memutarkan bekas pertama itu terasa seperti sihir—tetapi kemudian realiti melanda. Anda mula perasan bagaimana menguruskan kontena secara berskala boleh menjadi mimpi ngeri logistik dengan cepat. Ketika itulah Kubernetes (K8s) memasuki bilik seperti pengurus projek yang berpengalaman, bersedia untuk mengambil alih dan menyelaraskan segala-galanya.
Dalam siaran ini, kita akan melihat cabaran bekas kendiri, cara Kubernetes membantu menyelesaikan sakit kepala tersebut dan bila (dan bila tidak) untuk menggunakan Kubernetes. Mari kita masuk ke dalamnya!
Jika anda telah bekerja dengan bekas kendiri, masalah ini mungkin terdengar biasa:
Menskalakan bekas kendiri adalah seperti bermain permainan pukulan. Perlukan lebih kapasiti? Mulakan bekas lain secara manual. Oh, perlu kurangkan sumber sekarang? Tutup beberapa bekas secara manual. Ini dengan cepat menjadi tidak terurus, terutamanya apabila anda mengalami lonjakan trafik yang tidak dapat diramalkan.
Bagaimanakah bekas anda bercakap antara satu sama lain? Dengan Docker, anda akhirnya memerlukan alamat IP kod keras atau menyediakan beberapa rangkaian tersuai yang tidak terasa semula jadi. Ia kikuk dan sukar untuk dikekalkan.
Apakah yang berlaku apabila salah satu bekas anda terjatuh? Standalone Docker tidak mengendalikannya dengan baik sendiri. Anda perlu memantau segala-galanya dan memulakan semula bekas yang mati secara manual. Dan kita semua tahu betapa seronoknya bunyi itu pada pukul 3 pagi pada hari Sabtu.
Menguruskan apl berbilang bekas menjadi rumit. Anda perlu menyelaraskan cara mereka berinteraksi, mengendalikan kebergantungan mereka dan memastikan mereka semua bangun pada masa yang betul. Tiba-tiba, apl ringkas terasa seperti rumah kad.
Kubernetes, pengatur kontena yang diperkatakan semua orang, mengautomasikan banyak titik kesakitan ini. Begini cara ia melangkah masuk dan menyelamatkan hari:
K8s membolehkan anda menentukan peraturan penskalaan berdasarkan penggunaan CPU atau memori. Anda boleh menetapkannya untuk memutar lebih banyak bekas secara automatik apabila trafik meningkat dan menutupnya apabila keadaan menjadi sejuk. Tiada lagi penjagaan anak.
Dengan Kubernetes, bekas anda tidak perlu risau tentang tempat semuanya. K8 secara automatik memberikan nama DNS kepada perkhidmatan, supaya bekas anda boleh berkomunikasi dengan lancar.
Jika bekas mati, Kubernetes memulakan semulanya secara automatik. Tiada lagi berebut-rebut keluar dari katil untuk memulakan semula bekas anda pada waktu subuh. K8s memastikan apl anda berjalan lancar dengan kuasa penyembuhan sendiri.
K8s mengendalikan apl berbilang bekas yang kompleks dengan mudah. Ia menyusunnya ke dalam pod dan perkhidmatan, menjadikannya mudah untuk melancarkan versi baharu, mengendalikan kebergantungan dan memastikan semuanya berfungsi dengan harmoni.
Jadi, Kubernetes kedengaran hebat, tetapi ia bukan satu masalah untuk setiap masalah. Berikut ialah lima kes di mana Kubernetes adalah pilihan yang tepat:
Jika apl anda melihat trafik yang turun naik atau anda perlu melaraskan sumber secara automatik dengan cepat, penskalaan automatik Kubernetes ialah pengubah permainan.
Jika apl anda terdiri daripada perkhidmatan mikro, K8s memudahkan untuk mengurus berbilang perkhidmatan dan memastikan ia semua berkomunikasi dengan lancar.
Perlukan apl yang kekal berdaya tahan walaupun sebahagian daripadanya gagal? Keupayaan penyembuhan diri Kubernetes memastikan masa henti adalah minimum.
Jika anda sedang membina saluran paip Penyepaduan Berterusan/Pengedaran Berterusan, kemas kini rolling Kubernetes dan ciri rollback yang mudah menjadikannya pilihan yang bagus.
K8s sesuai jika anda perlu mengurus beban kerja merentas berbilang penyedia awan atau pusat data anda sendiri. Ia mengasingkan infrastruktur supaya anda boleh fokus pada apl anda.
Tetapi Kubernetes tidak selalu diperlukan. Inilah masanya anda mungkin mahu mengelakkan kerumitan:
Jika apl anda ialah perkhidmatan kecil satu bekas, Kubernetes adalah berlebihan. Kekal dengan Docker untuk kesederhanaan.
Jika pasukan anda baru mengenali kontena, melompat terus ke Kubernetes boleh menjadi menakutkan. Master Docker terlebih dahulu sebelum terjun ke K8s.
Untuk apl dengan trafik rendah yang boleh diramalkan yang tidak memerlukan penskalaan atau kegagalan yang berterusan, overhed Kubernetes tidak berbaloi.
Jika anda membuat sesuatu yang sementara, seperti projek hackathon atau POC pantas, Kubernetes boleh mendatangkan lebih banyak masalah daripada yang sepatutnya.
K8 boleh menjadi sumber yang berat. Jika anda bekerja dalam persekitaran dengan CPU, memori atau storan terhad, ia mungkin melambatkan anda lebih daripada membantu.
Kubernetes ialah alat yang hebat apabila anda memerlukan kebolehskalaan, daya tahan dan orkestrasi kontena yang lancar. Ia menghilangkan beban dari bahu anda dengan mengautomasikan banyak tugas rumit yang sukar diurus secara manual dengan bekas kendiri. Walau bagaimanapun, jangan ambil perhatian hanya kerana ia bergaya. Nilaikan keperluan apl anda dahulu.
Jika anda menjalankan apl kecil yang boleh diramal, Docker sahaja mungkin mencukupi untuk anda. Tetapi apabila anda berkembang dan berkembang, Kubernetes akan menjadi kawan baik anda.
Sebagai pembangun junior, saya akan mengakui bahawa skop Kubernetes dan semua bahagian bergeraknya—Pods, Services, Ingress, autoscaling—boleh menjadi luar biasa. Ia mudah tersesat dalam keupayaannya. Tetapi pengajaran utama ialah mengetahui masa untuk memastikan perkara mudah dan apabila kerumitan itu sebenarnya berbaloi. Sentiasa timbang kebaikan dan keburukan dengan berhati-hati, kerana kadangkala melekat dengan bekas tersendiri boleh menjimatkan banyak masa dan sakit kepala.
@piyushsachdeva
Video hari ke-4
Atas ialah kandungan terperinci Hari Kursus Penuh CKA hy Kubernetes Digunakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!