Saat menyelam ke Docker, Google Cloud dan Kubernetes, dan tanpa memahami mereka bertiga dengan jelas, menurut saya produk-produk ini tumpang tindih, namun mereka tidak kompatibel.
Misalnya, docker-compose.yml
file perlu ditulis ulang sehingga aplikasi dapat digunakan untuk Kubernetes.
Bisakah seseorang memberikan deskripsi kasar tingkat tinggi tentang di mana Docker, Docker Compose, Docker Cloud, dan Kubernetes tumpang tindih dan di mana yang satu bergantung pada yang lain?
sumber
Selain jawaban @ yamenk , saya ingin menambahkan beberapa detail di sini yang mungkin membantu orang-orang dengan perjalanan mereka memahami Kubernetes.
Jawaban singkat:
docker-compose
: adalah alat yang mengambil file YAML yang menjelaskan aplikasi multi-kontainer Anda dan membantu Anda membuat , memulai / menghentikan , menghapus semua kontainer itu tanpa harus mengetik banyakdocker ...
perintah untuk setiap kontainer.Kubernetes
: adalah platform untuk mengelola beban kerja dan layanan kemas , yang memfasilitasi konfigurasi dan otomasi deklaratif. Apa? 🤔 Terus membaca ...Susun Docker
Kubernetes
Banyak orang berpendapat bahwa Kubernet sulit dipelajari. Itu karena itu memecahkan serangkaian masalah dan orang-orang mencoba untuk memahami tanpa mengetahui semua prasyarat. Ini membuatnya rumit. Mulailah menyusun potongan-potongan teka-teki dengan membaca tentang konsep / istilah seperti berikut ini. Proses ini akan membantu Anda memahami jenis masalah yang coba dipecahkan oleh Kubernetes:
Dan karena ada banyak hal berbeda di sekitar wadah dan pengelolaannya, perhatikan lanskap Cloud Native:
Versi interaktif di sini: landscape.cncf.io/
Pembaruan
sumber
docker stack deploy --orchestrator=kubernetes
... docs.docker.com/engine/reference/commandline/stack_deployJika Anda menjaring kontainer dengan host yang sama, gunakan untuk menulis docker .
Jika Anda menjaring kontainer di beberapa host, gunakan kubernet .
sumber
Perbedaan pertama adalah antara mesin wadah dan wadah orkestra.
docker
adalah mesin kontainer, itu membuat Anda membangun dan menjalankan biasanya tidak lebih dari satu kontainer paling banyak, secara lokal di PC Anda untuk tujuan pengembangan.docker-compose
adalah utilitas Docker untuk menjalankan banyak wadah dan membiarkannya berbagi volume dan jaringan melalui fitur mesin docker, berjalan secara lokal untuk meniru komposisi layanan dan secara jarak jauh pada kluster.Kubernetes adalah platform orkestrasi wadah, menangani wadah yang berjalan dan meningkatkan fitur mesin sehingga wadah dapat disusun dan ditingkatkan untuk melayani aplikasi yang kompleks (semacam PaaS, dikelola oleh Anda atau penyedia cloud). Fitur Kubernet utama adalah untuk memisahkan infrastruktur dari aplikasi menggunakan kontainer, dan itu juga terbuka untuk mesin lain yang Docker, misalnya dapat menjalankan kontainer dengan rkt atau cri-o.
Docker cloud juga merupakan tawaran PaaS yang akan memungkinkan Anda menjalankan dan mengatur kontainer melalui
docker
API engine.Sekarang tergantung pada kebutuhan Anda, tingkat kontrol pada infrastruktur dan target audiens Anda dapat menggunakan Kubernet di baremetal, atau Azure ACS atau Google GKE, dll ...
Semoga ini bisa membantu :) Salam
sumber
Docker Compose bukan alat yang siap produksi. Ini berfungsi baik untuk PoC atau lingkungan pengembangan, tetapi tidak memiliki banyak kemampuan yang kurang lebih merupakan taruhan meja untuk penggunaan produksi yang serius. Swarm lebih siap dalam produksi, tetapi saya tidak akan pernah berinvestasi ke Swarm dalam skenario greenfield. Kubernetes telah memenangkan pertarungan orkestrasi, sebagaimana dibuktikan dengan dimasukkannya ke dalam Docker Desktop dan ditawarkan oleh semua penyedia cloud utama. Kubernetes jauh lebih mampu dan memiliki lebih banyak dukungan komunitas dan perusahaan.
Saya akan merekomendasikan menyelam ke dalam beberapa tutorial Kubernet yang tersedia di Pluralsight, Linux Academy, dll. Dan memutar gugusan untuk bermain-main dengan di platform cloud pilihan Anda (EKS, AKS, GKE, dll.). Jika Anda mencoba untuk menggunakan bare metal, lihat OpenShift, tetapi ketahuilah bahwa Anda kehilangan sebagian keajaiban Kubernet di pengaturan ini.
sumber
Susunan Docker:
Dalam sebuah
docker-compose.yml
file, setiap entri secara opsionaldocker-compose
dapat membangun gambar. setiap entri dapat mewakili satu wadah yang ingin kita buat dan setiap entri mendefinisikan persyaratan atau port jaringan.Kubernetes:
Kubernetes mengharapkan semua gambar sudah dibangun dan ada satu file konfigurasi per objek yang ingin kita buat dan kita harus mengatur semua jaringan secara manual.
Jadi kami memastikan gambar kami di-host di Docker Hub, membuat satu file konfigurasi untuk membuat wadah dan satu file konfigurasi untuk mengatur jaringan.
sumber
Docker-Compose adalah file penyebaran yang telah ditentukan sebelumnya satu atau lebih wadah dengan lingkungannya seperti volume, jaringan, perintah untuk menjalankan dan sebagainya.
Kubernetes, di sisi lain, adalah sistem yang mengatur wadah buruh pelabuhan dan layanan mikro lainnya oleh dan membuat mereka diskalakan dan dapat diandalkan di beberapa node
sumber
Menulis Docker: kontainer buruh pelabuhan dapat dijalankan langsung tanpa bantuan file yaml. Tetapi dengan bantuan Docker compose tool container properties dapat didefinisikan di dalam file yang disebut file docker-compose.yml. silakan temukan contoh file yml di bawah ini untuk lebih jelasnya.
nama gambar, jumlah replika, dll. dapat dikonfigurasi melalui file yml.
Kubernetes: Ini adalah platform manajemen kontainer yang dijalankan di atas Docker yang dibangun oleh google. Docker swam adalah platform manajemen wadah lain yang dibangun oleh docker sendiri. Kubernetes juga menyediakan fasilitas untuk menyimpan konfigurasi yang terkait dengan pod (sesuai dengan container in docker) dalam file yaml seperti penulisan docker. contoh file yaml
di sini juga gambar, port yang akan dibuka dan pod to host pemetaan port, dll. dapat diberikan. seperti penulisan docker, kubectl apply -f adalah perintah untuk menjalankan file ini.
sumber