JavaRush /Blog Java /Random-MS /Siapa Docker, Kubernetes, OpenShift dan bagaimana ia berk...

Siapa Docker, Kubernetes, OpenShift dan bagaimana ia berkaitan antara satu sama lain?

Diterbitkan dalam kumpulan
Semuanya bermula dengan pembungkusan. Dalam pembangunan perindustrian, terdapat keperluan untuk "membungkus" aplikasi yang dipasang, sebagai contoh, supaya ia boleh dipindahkan ke pelayan di mana ia akan berfungsi, dalam bentuk di mana pemaju memasangnya pada komputernya, seperti "pembungkusan" sepatutnya berfungsi sebagai sejenis perlindungan. Ini menghapuskan kejutan, seperti apabila aplikasi berfungsi semasa ujian, tetapi putus apabila dipindahkan ke pengeluaran. Selain itu, "pembungkusan" mengasingkan satu aplikasi daripada yang lain, terletak pada pelayan yang sama, pengasingan sedemikian membolehkan satu aplikasi tidak mengganggu kerja yang lain (contohnya: satu aplikasi tidak akan dapat mengambil alih semua RAM pelayan, meninggalkan permohonan kedua untuk nasibnya). Kelebihan "pembungkusan" dengan seni bina perkhidmatan mikro amat ketara, dan ini boleh difahami; terdapat banyak perkhidmatan mikro - banyak aplikasi kecil yang mesti berkomunikasi antara satu sama lain, tetapi pada masa yang sama tidak boleh mengganggu satu sama lain. Contohnya ialah peti laci (pelayan), di mana terdapat banyak laci yang berbeza, dan kita boleh dengan mudah memindahkan stokin yang berbeza dari satu laci ke yang lain, dan pada masa yang sama mereka tidak akan bercampur antara satu sama lain atau dengan seluar dalam. Siapa Docker, Kubernetes, OpenShift dan bagaimana ia berkaitan antara satu sama lain?  - 1 Pembungkusan dicipta oleh alat virtualisasi. Pada suatu masa dahulu, mesin maya (VM) digunakan sebagai "pembungkusan". Orang lama akan ingat bagaimana mereka menggunakan Windows XP pada Vista dalam mesin maya. Kini VM untuk pembungkusan aplikasi sudah ketinggalan zaman. Dunia telah diambil alih oleh kontena. Kerana mereka: lebih ringan, lebih produktif dan lebih selamat. Lebih terperinci: bagaimanakah bekas berbeza daripada mesin maya? Siapa Docker, Kubernetes, OpenShift dan bagaimana ia berkaitan antara satu sama lain?  - 2 Anda perlu mengingati beberapa kelebihan bekas: • saiznya lebih kecil (mengambil lebih sedikit memori pada pelayan); • mempunyai akses kepada sumber pelayan yang dikongsi (RAM, masa pengkomputeran pemproses); • mempunyai kemudahalihan yang lebih baik kepada persekitaran lain (dari ujian kepada industri); • memberikan kelajuan pelancaran yang lebih tinggi (memandangkan bekas itu ringan, ia dilancarkan dengan lebih pantas). Docker ialah ibu kepada kontena. Apabila mereka sebut bekas, mereka maksudkan Docker. Docker ialah perisian untuk mengautomasikan penggunaan dan pengurusan aplikasi dalam persekitaran kontena. Menggunakan contoh, Docker ialah kacukan antara pereka bentuk dalam talian dan pencetak 3D dengan kren. Iaitu, dia boleh mula-mula mereka bentuk templat (imej) untuk bekas, mencetak (membuat) bekas itu mengikut keadaan yang diberikan (imej), dan kemudian mengalihkannya ke mana-mana yang diperlukan. Dockerfiles digunakan dan bukannya tuas. Proses pengurusan adalah mudah: anda menulis fail, arahan, menjalankannya dan melihat apa yang berlaku. Siapa Docker, Kubernetes, OpenShift dan bagaimana ia berkaitan antara satu sama lain?  - 3 Kenalan pertama dengan Docker Docker Compose - Docker yang dinaik taraf Sekarang mari kita lihat senario di mana berbilang bekas perlu dijalankan di lokasi. Utiliti yang digunakan untuk ini ialah Docker Compose. Docker Compose ialah alat yang disertakan dengan Docker. Ia direka untuk menyelesaikan masalah yang berkaitan dengan penggunaan projek. Perbezaan antara Docker dan Docker Compose: Docker digunakan untuk mengurus bekas individu. Docker Compose digunakan untuk mengurus berbilang bekas secara serentak. Alat ini menawarkan keupayaan yang sama seperti Docker, tetapi membolehkan anda bekerja dengan struktur yang lebih kompleks. Siapa Docker, Kubernetes, OpenShift dan bagaimana ia berkaitan antara satu sama lain?  - 4 Senario biasa untuk menggunakan Docker Compose: Bayangkan anda adalah pembangun projek web. Projek ini merangkumi dua laman web. Yang pertama membolehkan ahli perniagaan membuat kedai dalam talian dengan hanya beberapa klik. Yang kedua adalah bertujuan untuk sokongan pelanggan. Kedua-dua tapak ini berinteraksi dengan pangkalan data yang sama. Projek anda menjadi semakin popular, dan ternyata kuasa pelayan di mana ia berjalan tidak lagi mencukupi. Akibatnya, anda memutuskan untuk memindahkan keseluruhan projek ke mesin lain. Jika anda belum menggunakan sesuatu seperti Docker Compose, maka anda perlu memindahkan dan mengkonfigurasi semula bekas satu demi satu, dengan harapan anda tidak akan melupakan apa-apa dalam proses itu. Jika anda menggunakan Docker Compose, maka mengalihkan projek anda ke pelayan baharu adalah perkara yang boleh diselesaikan dengan menjalankan beberapa arahan. Untuk melengkapkan pemindahan projek ke lokasi baharu, anda hanya perlu membuat beberapa tetapan dan memuat naik salinan sandaran pangkalan data ke pelayan baharu. DockerComposer Biasa: Siapa Docker, Kubernetes, OpenShift dan bagaimana ia berkaitan antara satu sama lain?  - 5 Perkara yang anda perlu ingat di sini: Bekas adalah cara utama untuk aplikasi "pembungkusan". Docker mengendalikan bekas, mencipta imej bekas, mengambil dan mengalihkan bekas. Untuk mengurus sekumpulan bekas secara serentak, Docker Compose digunakan, yang disertakan dalam Docker. Atur cara ini ialah perisian percuma (percuma - dalam satu perkataan) Kubernetes (K8s) - Automasi Docker Jadi kami menggunakan bekas, kami tahu cara memindahkannya "dalam kelompok" dari mesin ke mesin. Tetapi tiba-tiba salah satu bekas itu jatuh! Apa nak buat? Siapa yang akan menaikkannya lagi? Siapa Docker, Kubernetes, OpenShift dan bagaimana ia berkaitan antara satu sama lain?  - 6 Sudah tentu, anda boleh melakukan ini secara manual, melalui Docker. Tetapi anda perlu melakukan sesuatu, menulis sesuatu, anda memerlukan sejenis alat automasi. Di sinilah Kubernetes (disingkat K8s) muncul, ia juga akan berurusan dengan pengurusan dan orkestrasi (pengurusan automatik entiti berkaitan) kontena. Dengan adanya K8 yang boleh anda gunakan, anda tidak perlu memantau bekas siang dan malam. Ia cukup untuk menentukan senario tingkah laku, dan K8 akan melakukan segala-galanya sendiri. Ciri utama Kubernetes 1. Menyediakan kebolehskalaan dan pengurusan konfigurasi anda. 2. Anda boleh menerangkan perkara yang anda ingin perolehi apabila menggunakan kluster, dan K8 akan melakukannya. Sebagai contoh, nyatakan bilangan pod, berapa banyak memori yang perlu diperuntukkan untuk mereka, nyatakan bilangan replika (contoh) aplikasi yang digunakan (dalam bekas) pada pod. 3. Bertanggungjawab untuk mengekalkan sistem dalam keadaan tertentu; jika sesuatu jatuh, maka K8s akan mengambilnya, mengikut konfigurasi yang ditetapkan. Perkara yang anda perlu ingat di sini: Kubernetes ialah alat untuk mengatur aplikasi kontena - mengautomasikan penggunaan, penskalaan dan penyelarasan mereka dalam kelompok. Menyokong teknologi kontena utama, termasuk Docker. K8s ialah perisian sumber terbuka. Siapa Docker, Kubernetes, OpenShift dan bagaimana ia berkaitan antara satu sama lain?  - 7 OpenShift ialah Ferrari dalam dunia maya, sejuk, pantas dan mahal Membangunkan topik, mari beralih kepada OpenShift. OpenShift ialah alat tambah kepada Kubernetes yang menawarkan fungsi tambahan. Ia sedia untuk digunakan serta-merta, ia tidak memerlukan konfigurasi yang panjang dan menyakitkan, dan boleh dimasukkan ke dalam pengeluaran dengan serta-merta. Lihat berapa banyak ikon berbeza yang terdapat di atas Kubernetes. Dan setiap daripada mereka melakukan perkara-perkara keren mereka sendiri. Siapa Docker, Kubernetes, OpenShift dan bagaimana ia berkaitan antara satu sama lain?  - 8 Sorotan OpenShift: • Ia adalah produk berbayar, tidak seperti K8; • DevOps di luar kotak, sokongan untuk biru/hijau asas, senario penggunaan kenari; • Sokongan Jenkins terbina dalam; • Menyediakan alatan yang mudah untuk mentadbir dan bekerja dengan kluster; • Mempunyai model keselamatan yang lebih ketat dan pemantauan terbina dalam. Perlu ditekankan sekali lagi bahawa OpenShift ialah produk berbayar, tidak seperti Kubernetes. Perbezaannya adalah ini: jika kita mengambil Kubernetes kosong, maka kita menyelesaikan semua masalah itu sendiri. Jika kita bercakap tentang OpenShift, ia adalah produk Red Hat, yang menyelesaikan masalah yang timbul sebagai sebahagian daripada sokongan berbayar. Mari kita ringkaskan: Dalam pembangunan perindustrian terdapat keperluan untuk "membungkus" aplikasi; pendekatan ini amat relevan dalam seni bina perkhidmatan mikro. Bekas adalah cara utama aplikasi pembungkusan. Docker mengendalikan bekas, mencipta imej bekas, mengambil dan mengalihkan bekas. Untuk mengurus sekumpulan bekas secara serentak, Docker Compose digunakan, yang disertakan dalam Docker. Program-program ini adalah perisian percuma. Kubernetes(K8s) ialah alat untuk mengatur aplikasi kontena - mengautomasikan penggunaan, penskalaan dan penyelarasan mereka dalam kelompok. Menyokong teknologi kontena utama, termasuk Docker. K8s ialah perisian sumber terbuka. OpenShift ialah add-on kepada Kubernetes yang menawarkan fungsi tambahan. Ini adalah produk berbayar, tidak seperti K8, bertujuan untuk kegunaan korporat. Menyediakan DevOps di luar kotak: sokongan untuk senario penggunaan utama biru/hijau, kenari, mempunyai sokongan terbina dalam untuk Jenkins dan menyediakan alatan yang mudah untuk mentadbir dan bekerja dengan kluster. Mempunyai model keselamatan yang lebih ketat dan pemantauan terbina dalam. Bagi mereka yang gatal untuk kod: Pakej aplikasi Spring Boot ke dalam bekas Bagaimana untuk menggunakan Postgres dalam Docker dan menyambung ke aplikasi Spring-Boot Webinar: Docker - Bagaimana untuk bekerja dengan bekas? — Pembangunan bahagian belakang di Jawa
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION