Pelajari cara memulai Docker di Google Cloud Platform

Kubernetes mungkin menjadi pilihan utama saat menerapkan beban kerja berat di Google Cloud Platform. Namun, Docker Swarm selalu cukup populer di kalangan pengembang yang lebih menyukai penerapan cepat dan kesederhanaan— dan di kalangan operasi yang belajar untuk merasa nyaman dengan lingkungan yang terorganisir.

Dalam postingan ini, kita akan membahas cara men-deploy cluster Docker Swarm di GCP menggunakan Terraform dari awal. Ayo kita lakukan!

Memulai

Untuk memulai, masuk ke konsol Google Cloud Platform Anda dan buat kunci pribadi akun layanan dari IAM:

Unduh file JSON dan simpan di folder aman.

Untuk mempermudah, saya telah membagi komponen cluster Swarm saya ke beberapa file template — setiap file bertanggung jawab untuk membuat sumber daya Google Compute tertentu.

1. Siapkan manajer gerombolan Anda

Dalam contoh ini, saya telah mendefinisikan manajer Docker Swarm berdasarkan gambar CoreOS:

2. Siapkan pekerja gerombolan Anda

Demikian pula, sekumpulan Swarm pekerja berdasarkan gambar CoreOS, dan saya telah menggunakan fitur ketergantungan sumber daya Terraform untuk memastikan manajer Swarm dikerahkan Pertama. Harap perhatikan penggunaan kata kunci depends_on:

3. Tentukan aturan jaringan Anda

Selain itu, saya telah mendefinisikan antarmuka jaringan dengan daftar aturan firewall yang memungkinkan lalu lintas masuk untuk manajemen cluster, komunikasi sinkronisasi rakit, lalu lintas jaringan docker overlay dan ssh dari mana saja:

4. Otomatiskan inventaris Anda dengan Terraform

Untuk membawa otomatisasi ke tingkat berikutnya, mari gunakan sumber data Terraform template_file untuk menghasilkan inventaris Ansible dinamis dari file status Terraform:

File templat memiliki format berikut, dan akan digantikan oleh alamat IP manajer Swarm dan pekerja saat runtime:

Terakhir, mari kita tentukan Google Cloud sebagai penyedia default:

5. Siapkan peran yang memungkinkan untuk menyediakan instance

Setelah template ditentukan, kita akan menggunakan Ansible untuk menyediakan instance kita dan mengubahnya menjadi cluster Swarm. Oleh karena itu, saya membuat 3 peran yang memungkinkan:

  • python: sesuai dengan namanya, ia akan menginstal Python di mesin. CoreOS hanya dikirimkan dengan dasar-dasarnya, ini adalah distribusi linux minimal tanpa banyak alat kecuali alat yang berpusat pada menjalankan container.
  • swarm-init: jalankan perintah docker gerombolan init pada manajer pertama dan simpan token gabungan gerombolan.
  • swarm-join: menggabungkan node ke cluster menggunakan token yang dihasilkan sebelumnya.

Saat ini, pedoman utama Anda akan terlihat seperti:

6. Uji konfigurasi Anda

Untuk mengujinya, buka sesi terminal baru dan berikan perintahterraform init untuk mengunduh penyedia Google:

Buat rencana eksekusi (dry run) dengan perintah terraform plan. Ini menunjukkan kepada Anda hal-hal yang akan dibuat sebelumnya, yang bagus untuk debugging dan memastikan bahwa Anda tidak melakukan kesalahan apa pun, seperti yang ditunjukkan pada tangkapan layar berikutnya:

Anda akan dapat memeriksa rencana eksekusi Terraform sebelum menerapkannya ke GCP. Jika Anda sudah siap, lanjutkan dan terapkan perubahan dengan mengeluarkan perintah terraform apply.

Output berikut akan ditampilkan (beberapa bagian dipotong agar singkatnya):

Jika Anda kembali ke Dasbor Compute Engine, instance Anda akan berhasil dibuat:

7. Buat cluster Swarm Anda dengan Ansible

Sekarang instance kita telah dibuat, kita perlu mengubahnya menjadi cluster Swarm dengan Ansible. Keluarkan perintah berikut:

ansible-playbook -i inventory main.yml

Selanjutnya, SSH ke instance manajer menggunakan alamat IP publiknya:

Jika Anda menjalankan docker node ls, Anda akan mendapatkan daftar node di gerombolan:

Terapkan layanan visualizer dengan perintah berikut:

8. Perbarui aturan jaringan Anda

Layanan ini diekspos pada port 8080 pada instance. Oleh karena itu, kita perlu mengizinkan lalu lintas masuk pada port tersebut, Anda dapat menggunakan Terraform untuk memperbarui aturan firewall yang ada:

Jalankan terraform apply lagi untuk membuat aturan ingress baru, ini akan mendeteksi perubahan dan meminta Anda mengonfirmasinya:

Jika Anda mengarahkan browser favorit Anda ke http://instance_ip:8080, dasbor berikut akan ditampilkan yang mengonfirmasi bahwa cluster kami telah dikonfigurasi sepenuhnya:

Dan hanya itu yang diperlukan! Tonton cara menyiapkan cluster Swarm Anda di bawah ini:



Pantau terus!

Dalam postingan mendatang, kita akan melihat bagaimana kita dapat mengambil langkah lebih jauh dengan membuat cluster Swarm yang siap produksi di GCP di dalam VPC — dan cara menyediakan manajer dan pekerja Swarm sesuai permintaan menggunakan grup instance berdasarkan peningkatan atau penurunan beban.

Kita juga akan mempelajari cara membuat image mesin CoreOS dengan Python yang sudah diinstal sebelumnya dengan Packer, dan cara menggunakan Terraform dan Jenkins untuk mengotomatiskan penerapan infrastruktur!