Rumah >Operasi dan penyelenggaraan >Docker >Cara Mengkonfigurasi Konsul KV Menggunakan Docker
Consul oleh HashiCorp ialah alat serba boleh yang berfungsi dengan pelbagai fungsi dalam persekitaran DevOps moden. Ia digunakan secara meluas untuk penemuan perkhidmatan, pemeriksaan kesihatan, pengimbangan beban, dan, terutamanya, sebagai nilai kunci teragih (KV) kedai. Kedai KV di Consul sesuai untuk menyimpan dinamik data konfigurasi, bendera ciri, rahsia dan metadata dalam keadaan tinggi tersedia, cara yang konsisten merentas infrastruktur anda supaya ia boleh diakses secara dinamik oleh perkhidmatan dalam sistem teragih. menggunakan Docker untuk mengkonfigurasi kedai KV Consul membolehkan persediaan pantas dan persekitaran terpencil, menjadikannya sesuai untuk ujian dan pembangunan.
Tutorial ini akan membimbing anda melalui proses penyediaan dan mengkonfigurasi kedai KV Consul menggunakan Docker. Pada akhirnya, anda akan mempunyai a contoh Konsul berfungsi sepenuhnya berjalan di Docker, dengan pasangan KV dikonfigurasikan dan boleh diakses. Persediaan ini penting untuk perkhidmatan dinamik konfigurasi dan pengurusan negeri dalam sistem teragih.
Mari tarik imej Konsul rasmi dari Docker Hub. Imej ini ialah diselenggara oleh HashiCorp dan termasuk semua yang anda perlukan untuk menjalankan Konsul.
Log masuk ke konsol Ubuntu Droplet anda dan lari:
docker pull hashicorp/consul:latest
Outputlatest: Pulling from hashicorp/consul c8bcd218a73d: Pull complete 5f1ac8227c2a: Pull complete c51fd79d429a: Pull complete 91eff479bde6: Pull complete 4dfcc18e51db: Pull complete 3e2a8bf39bf9: Pull complete bd9ddc54bea9: Pull complete 2054d291fb84: Pull complete Digest: sha256:e244c64df77ab3586f177f1692e98575086eb40343dc82a6320f5e79543490eb Status: Downloaded newer image for hashicorp/consul:latest docker.io/hashicorp/consul:latest
Sekarang imej Konsul dimuat turun, anda boleh memulakan Konsul baharu bekas. Bekas ini akan berfungsi sebagai pelayan Konsul anda dan akan membolehkan anda berinteraksi dengan kedai KV.
Untuk memulakan bekas, lari:
docker run -d --name=consul-server -e
OutputCONSUL_BIND_INTERFACE=eth0 -p 8500:8500 -p 8600:8600/udp hashicorp/consul c893b6707686bce8434213975a75c936b834cf25fc84d10b407a11c4fa8ca8ba
Berikut ialah arahan ini adakah:
Langkah ini penting kerana ia menyediakan perkhidmatan Konsul teras, yang anda akan digunakan untuk mengkonfigurasi gedung KV.
Untuk memastikan Konsul berjalan dengan betul, anda perlu mengesahkan status kontena dan mengakses UI Konsul.
Pertama, jalankan docker ps untuk menyenaraikan semua bekas yang sedang berjalan dan sahkan bahawa kontena Konsul adalah berlari.
❯ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c893b6707686 hashicorp/consul "docker-entrypoint.s…" 51 seconds ago Up 50 seconds 8300-8302/tcp, 8600/tcp, 8301-8302/udp, 0.0.0.0:8500->8500/tcp, 0.0.0.0:8600->8600/udp consul-server
Sekarang, semak sama ada Konsul boleh diakses, buka penyemak imbas web dan navigasi ke http://localhost:8500. Anda sepatutnya melihat UI Konsul.
Langkah pengesahan ini penting untuk mengesahkan bahawa Konsul anda instance berjalan tanpa sebarang isu sebelum menyimpan data dalam KV kedai (Langkah 5).
Jika contoh Konsul anda perlu diakses secara luaran (mis., dari nod lain dalam kelompok), anda mesti melaraskan tetapan tembok api anda kepada benarkan trafik pada port yang diperlukan.
Sebagai contoh, jika anda menjalankan Consul pada contoh awan, anda boleh perlu membenarkan trafik masuk pada port 8500 (API HTTP) dan 8600 (DNS). Arahan khusus akan berbeza-beza berdasarkan penyelesaian tembok api anda (UFW, iptables, dsb.).
Langkah ini memastikan bahawa contoh Konsul anda boleh diakses daripada orang lain mesin, yang penting untuk konfigurasi teragih.
Dengan Consul berjalan, anda kini boleh menggunakan kedai KV untuk menyimpan data konfigurasi. Anda boleh menambah pasangan nilai kunci menggunakan Consul CLI atau UI web.
Untuk menyimpan pasangan nilai kunci melalui CLI, lari:
docker pull hashicorp/consul:latest
Outputlatest: Pulling from hashicorp/consul c8bcd218a73d: Pull complete 5f1ac8227c2a: Pull complete c51fd79d429a: Pull complete 91eff479bde6: Pull complete 4dfcc18e51db: Pull complete 3e2a8bf39bf9: Pull complete bd9ddc54bea9: Pull complete 2054d291fb84: Pull complete Digest: sha256:e244c64df77ab3586f177f1692e98575086eb40343dc82a6320f5e79543490eb Status: Downloaded newer image for hashicorp/consul:latest docker.io/hashicorp/consul:latest
Berikut ialah arahan ini tidak:
Menggunakan UI Web,
Arahan dan tindakan ini menyimpan data konfigurasi kritikal yang perkhidmatan anda boleh mengakses secara dinamik pada masa jalan.
Setelah anda menyimpan beberapa pasangan KV, anda perlu mendapatkannya untuk memastikan ia telah disimpan dengan betul.
Menggunakan CLI, dapatkan nilai menggunakan mengikuti perintah:
docker run -d --name=consul-server -e
Menggunakan UI Web,
Mendapatkan semula pasangan KV ialah langkah yang perlu untuk mengesahkan bahawa data anda disimpan dan boleh diakses dengan betul.
Secara lalai, bekas Docker bersifat sementara, bermakna sebarang data yang disimpan di dalamnya akan hilang jika bekas itu dikeluarkan. Untuk berterusan data Konsul KV anda, anda harus menggunakan volum Docker.
docker pull hashicorp/consul:latest
Sekarang, periksa bekas-bekas itu dan anda sepatutnya perasan bekas Konsul tidak berjalan lagi.
Outputlatest: Pulling from hashicorp/consul c8bcd218a73d: Pull complete 5f1ac8227c2a: Pull complete c51fd79d429a: Pull complete 91eff479bde6: Pull complete 4dfcc18e51db: Pull complete 3e2a8bf39bf9: Pull complete bd9ddc54bea9: Pull complete 2054d291fb84: Pull complete Digest: sha256:e244c64df77ab3586f177f1692e98575086eb40343dc82a6320f5e79543490eb Status: Downloaded newer image for hashicorp/consul:latest docker.io/hashicorp/consul:latest
2. Jalankan bekas Konsul baharu dengan volum Docker dilampirkan:
docker run -d --name=consul-server -e
OutputCONSUL_BIND_INTERFACE=eth0 -p 8500:8500 -p 8600:8600/udp hashicorp/consul c893b6707686bce8434213975a75c936b834cf25fc84d10b407a11c4fa8ca8ba
❯ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c893b6707686 hashicorp/consul "docker-entrypoint.s…" 51 seconds ago Up 50 seconds 8300-8302/tcp, 8600/tcp, 8301-8302/udp, 0.0.0.0:8500->8500/tcp, 0.0.0.0:8600->8600/udp consul-server
docker exec -it consul-server consul kv put config/db_host 192.168.1.100 Success! Data written to: config/db_host
The -v consul_data:/consul/data option melekapkan volum Docker ke bekas, memastikan kedai KV anda berterusan sepanjang kontena dimulakan semula.
Untuk pengeluaran penempatan, anda mungkin mahu mengautomasikan permulaan bekas Konsul anda menggunakan Docker Compose. Docker Compose memudahkan aplikasi Docker berbilang bekas dan menjadikannya mudah untuk diurus services.
Buat fail docker-compose.yml dengan kandungan berikut:
docker exec -it consul-server consul kv put config/db_port 3306 Success! Data written to: config/db_port
Kemudian, lari:
docker exec -it consul-server consul kv get config/db_host 192.168.1.100
docker stop consul-server docker rm consul-server
docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
docker run -d --name=consul-server -e
Ini arahan memulakan Konsul secara automatik dan memastikan ia dimulakan semula jika ia gagal, menjadikannya lebih mantap untuk kegunaan pengeluaran.
Setelah anda selesai bekerja dengan contoh Konsul anda, anda harus bersihkan persekitaran Docker anda untuk membebaskan sumber.
Mari hentikan dan alih keluar Konsul bekas:
OutputCONSUL_BIND_INTERFACE=eth0 -p 8500:8500 -p 8600:8600/udp -v consul_data:/consul/data hashicorp/consul 2d2a7d3ff1911c2283e70506d68391a5cbf9c935a2ae447bfb8fa21481989ef1
docker ps
Jika anda sudah selesai dengan Konsul, anda juga boleh mengalih keluar Imej Docker:
OutputCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2d2a7d3ff191 hashicorp/consul "docker-entrypoint.s…" 5 seconds ago Up 4 seconds 8300-8302/tcp, 8600/tcp, 8301-8302/udp, 0.0.0.0:8500->8500/tcp, 0.0.0.0:8600->8600/udp consul-server
services: consul: image: hashicorp/consul:latest environment: - CONSUL_BIND_INTERFACE=eth0 volumes: - consul_data:/consul/data ports: - "8500:8500" - "8600:8600/udp" restart: alwaysvolumes: consul_data:
Pembersihan membantu mengekalkan persekitaran pembangunan yang kemas dan memastikan sumber Docker tidak digunakan secara tidak perlu.
Atas ialah kandungan terperinci Cara Mengkonfigurasi Konsul KV Menggunakan Docker. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!