Kami berbesar hati mempersembahkan versi pratonton
NSM adalah percuma
Pelaksanaan metodologi perkhidmatan mikro penuh dengan kesukaran apabila skala penyampaian berkembang, serta kerumitannya. Komunikasi antara perkhidmatan menjadi lebih kompleks, masalah penyahpepijatan menjadi lebih sukar, dan semakin banyak perkhidmatan memerlukan lebih banyak sumber untuk diurus.
NSM menyelesaikan masalah ini dengan menyediakan anda:
- keselamatan, yang kini lebih penting daripada sebelumnya. Pelanggaran data boleh menyebabkan syarikat kehilangan pendapatan dan reputasi berjuta-juta dolar setiap tahun. NSM memastikan semua sambungan disulitkan menggunakan mTLS, jadi tiada data sensitif yang boleh dicuri oleh penggodam melalui rangkaian. Kawalan akses membolehkan anda menetapkan dasar untuk cara perkhidmatan berkomunikasi dengan perkhidmatan lain.
- Pengurusan Trafik. Apabila menghantar versi baharu aplikasi, anda mungkin mahu bermula dengan mengehadkan trafik masuk kepadanya sekiranya berlaku ralat. Dengan pengurusan trafik kontena pintar NSM, anda boleh menetapkan dasar sekatan trafik untuk perkhidmatan baharu yang akan meningkatkan trafik dari semasa ke semasa. Ciri lain, seperti pengehadan kelajuan dan pemutus litar, memberi anda kawalan penuh ke atas aliran trafik semua perkhidmatan anda.
- Visualisasi. Menguruskan beribu-ribu perkhidmatan boleh menjadi mimpi ngeri penyahpepijatan dan visualisasi. NSM membantu menangani situasi ini dengan papan pemuka Grafana terbina dalam yang memaparkan semua ciri yang tersedia dalam NGINX Plus. Dan juga Penjejakan Terbuka yang dilaksanakan membolehkan anda memantau transaksi secara terperinci.
- Penghantaran hibrid, jika syarikat anda, seperti kebanyakan yang lain, tidak menggunakan infrastruktur yang berjalan sepenuhnya pada Kubernetes. NSM memastikan bahawa permohonan warisan tidak dibiarkan tanpa pengawasan. Dengan bantuan Pengawal Ingress NGINX Kubernetes yang dilaksanakan, perkhidmatan legasi akan dapat berkomunikasi dengan perkhidmatan mesh, dan sebaliknya.
NSM juga memastikan keselamatan aplikasi dalam persekitaran sifar amanah dengan menggunakan penyulitan dan pengesahan secara telus pada trafik kontena. Ia juga menyediakan keterlihatan dan analisis transaksi, membantu anda melancarkan penggunaan dan menyelesaikan masalah dengan cepat dan tepat. Ia juga menyediakan kawalan trafik berbutir, membolehkan pasukan DevOps menggunakan dan mengoptimumkan bahagian aplikasi sambil membolehkan pembangun membina dan menyambungkan aplikasi yang diedarkan mereka dengan mudah.
Bagaimanakah Mesh Perkhidmatan NGINX berfungsi?
NSM terdiri daripada satah data bersatu untuk trafik mendatar (perkhidmatan-ke-perkhidmatan) dan NGINX Plus Ingress Controller terbenam untuk trafik menegak, diuruskan oleh satah kawalan tunggal.
Pesawat kawalan direka dan dioptimumkan secara khusus untuk pesawat data NGINX Plus dan mentakrifkan peraturan kawalan trafik yang diedarkan merentasi kereta sampingan NGINX Plus.
Di NSM, proksi sidecars dipasang untuk setiap perkhidmatan dalam mesh. Mereka antara muka dengan penyelesaian sumber terbuka berikut:
- Grafana, visualisasi parameter Prometheus, panel NSM terbina dalam membantu anda dengan kerja anda;
- Pengawal Ingress Kubernetes, untuk menguruskan trafik masuk dan keluar dalam mesh;
- SPIRE, CA untuk mengurus, mengedar dan mengemas kini sijil dalam jaringan;
- NATS, sistem berskala untuk menghantar mesej, seperti kemas kini laluan, daripada pesawat kawalan ke kereta sampingan;
- Penjejakan Terbuka, penyahpepijatan diedarkan (Zipkin dan Jaeger disokong);
- Prometheus, mengumpul dan menyimpan ciri-ciri daripada sidecar NGINX Plus, seperti bilangan permintaan, sambungan dan jabat tangan SSL.
Fungsi dan komponen
NGINX Plus sebagai pesawat data meliputi proksi kereta sisi (trafik mendatar) dan pengawal Ingress (menegak), memintas dan mengurus trafik kontena antara perkhidmatan.
Ciri-ciri termasuk:
- Pengesahan TLS (mTLS) Bersama;
- Pengimbangan beban;
- Toleransi kesalahan;
- Had laju;
- Pemutus litar;
- Penggunaan biru-hijau dan kenari;
- Kawalan capaian.
Melancarkan NGINX Service Mesh
Untuk menjalankan NSM anda perlukan:
- akses kepada persekitaran Kubernetes. NGINX Service Mesh disokong pada banyak platform Kubernetes, termasuk Amazon Elastic Container Service for Kubernetes (EKS), Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE), VMware vSphere dan gugusan Kubernetes biasa yang digunakan pada pelayan perkakasan;
- Alat
kubectl
, dipasang pada mesin dari mana NSM akan dipasang; - Akses kepada pakej keluaran Mesh Perkhidmatan NGINX. Pakej ini mengandungi imej NSM yang diperlukan untuk memuat naik ke pendaftaran peribadi untuk bekas yang tersedia dalam kelompok Kubernetes. Pakej itu juga mengandungi
nginx-meshctl
, diperlukan untuk menggunakan NSM.
Untuk menggunakan NSM dengan tetapan lalai, jalankan arahan berikut. Semasa penggunaan, mesej dipaparkan menunjukkan pemasangan komponen yang berjaya dan, akhirnya, mesej yang menunjukkan bahawa NSM sedang berjalan dalam ruang nama yang berasingan (anda perlu terlebih dahulu
$ DOCKER_REGISTRY=your-Docker-registry ; MESH_VER=0.6.0 ;
./nginx-meshctl deploy
--nginx-mesh-api-image "${DOCKER_REGISTRY}/nginx-mesh-api:${MESH_VER}"
--nginx-mesh-sidecar-image "${DOCKER_REGISTRY}/nginx-mesh-sidecar:${MESH_VER}"
--nginx-mesh-init-image "${DOCKER_REGISTRY}/nginx-mesh-init:${MESH_VER}"
--nginx-mesh-metrics-image "${DOCKER_REGISTRY}/nginx-mesh-metrics:${MESH_VER}"
Created namespace "nginx-mesh".
Created SpiffeID CRD.
Waiting for Spire pods to be running...done.
Deployed Spire.
Deployed NATS server.
Created traffic policy CRDs.
Deployed Mesh API.
Deployed Metrics API Server.
Deployed Prometheus Server nginx-mesh/prometheus-server.
Deployed Grafana nginx-mesh/grafana.
Deployed tracing server nginx-mesh/zipkin.
All resources created. Testing the connection to the Service Mesh API Server...
Connected to the NGINX Service Mesh API successfully.
NGINX Service Mesh is running.
Untuk lebih banyak pilihan, termasuk tetapan lanjutan, jalankan arahan ini:
$ nginx-meshctl deploy βh
Semak sama ada satah kawalan berfungsi dengan betul dalam ruang nama nginx-mesh, anda boleh melakukan ini:
$ kubectl get pods βn nginx-mesh
NAME READY STATUS RESTARTS AGE
grafana-6cc6958cd9-dccj6 1/1 Running 0 2d19h
mesh-api-6b95576c46-8npkb 1/1 Running 0 2d19h
nats-server-6d5c57f894-225qn 1/1 Running 0 2d19h
prometheus-server-65c95b788b-zkt95 1/1 Running 0 2d19h
smi-metrics-5986dfb8d5-q6gfj 1/1 Running 0 2d19h
spire-agent-5cf87 1/1 Running 0 2d19h
spire-agent-rr2tt 1/1 Running 0 2d19h
spire-agent-vwjbv 1/1 Running 0 2d19h
spire-server-0 2/2 Running 0 2d19h
zipkin-6f7cbf5467-ns6wc 1/1 Running 0 2d19h
Bergantung pada tetapan penggunaan yang menetapkan dasar suntikan manual atau automatik, proksi NGINX sidecars akan ditambahkan pada aplikasi secara lalai. Untuk melumpuhkan penambahan automatik, baca
Sebagai contoh, jika kita menggunakan aplikasi tidur dalam ruang nama lalai, dan kemudian semak Pod - kita akan melihat dua bekas yang sedang berjalan, aplikasi tidur dan kereta sampingan yang berkaitan:
$ kubectl apply βf sleep.yaml
$ kubectl get pods βn default
NAME READY STATUS RESTARTS AGE
sleep-674f75ff4d-gxjf2 2/2 Running 0 5h23m
Kami juga boleh memantau aplikasi tidur dalam panel NGINX Plus, jalankan arahan ini untuk mengakses sidecar dari mesin tempatan anda:
$ kubectl port-forward sleep-674f75ff4d-gxjf2 8080:8886
Lepas tu baru kita masuk
Anda boleh menggunakan sumber Kubernetes individu untuk mengkonfigurasi dasar trafik, seperti kawalan akses, pengehadan kadar dan pemutus litar, untuk ini lihat
Kesimpulan
NGINX Service Mesh tersedia untuk muat turun percuma di
Untuk mencuba NGINX Plus Ingress Controller, aktifkan
Terjemahan oleh Pavel Demkovich, jurutera syarikat
Sumber: www.habr.com