Kami dengan senang hati mempersembahkan versi pratinjau
NSM itu gratis
Penerapan metodologi layanan mikro penuh dengan kesulitan seiring dengan meningkatnya skala penyampaian dan kompleksitasnya. Komunikasi antar layanan menjadi lebih kompleks, masalah debugging menjadi lebih sulit, dan semakin banyak layanan memerlukan lebih banyak sumber daya untuk dikelola.
NSM memecahkan masalah ini dengan memberi Anda:
- keamanan, yang sekarang lebih penting dari sebelumnya. Pelanggaran data dapat menyebabkan hilangnya pendapatan dan reputasi perusahaan sebesar jutaan dolar setiap tahunnya. NSM memastikan semua koneksi dienkripsi menggunakan mTLS, sehingga tidak ada data sensitif yang dapat dicuri oleh peretas melalui jaringan. Kontrol akses memungkinkan Anda menetapkan kebijakan tentang cara layanan berkomunikasi dengan layanan lain.
- manajemen lalu lintas. Saat mengirimkan aplikasi versi baru, Anda mungkin ingin memulai dengan membatasi lalu lintas masuk ke aplikasi tersebut jika terjadi kesalahan. Dengan manajemen lalu lintas kontainer cerdas NSM, Anda dapat menetapkan kebijakan pembatasan lalu lintas untuk layanan baru yang akan meningkatkan lalu lintas seiring waktu. Fitur lainnya, seperti pembatas kecepatan dan pemutus arus, memberi Anda kendali penuh atas arus lalu lintas semua layanan Anda.
- Visualisasi. Mengelola ribuan layanan bisa menjadi mimpi buruk debugging dan visualisasi. NSM membantu mengatasi situasi ini dengan dashboard Grafana bawaan yang menampilkan semua fitur yang tersedia di NGINX Plus. Dan juga Open Tracing yang diterapkan memungkinkan Anda memantau transaksi secara detail.
- Pengiriman hibrida, jika perusahaan Anda, seperti kebanyakan perusahaan lainnya, tidak menggunakan infrastruktur yang sepenuhnya berjalan di Kubernetes. NSM memastikan bahwa aplikasi lama tidak dibiarkan begitu saja. Dengan bantuan NGINX Kubernetes Ingress Controller yang diterapkan, layanan lama akan dapat berkomunikasi dengan layanan mesh, dan sebaliknya.
NSM juga memastikan keamanan aplikasi di lingkungan zero trust dengan menerapkan enkripsi dan otentikasi secara transparan pada lalu lintas kontainer. Ini juga memberikan visibilitas dan analisis transaksi, membantu Anda meluncurkan penerapan dan memecahkan masalah dengan cepat dan akurat. Ini juga memberikan kontrol lalu lintas granular, memungkinkan tim DevOps untuk menerapkan dan mengoptimalkan bagian-bagian aplikasi sekaligus memungkinkan pengembang untuk membangun dan menghubungkan aplikasi terdistribusi mereka dengan mudah.
Bagaimana cara kerja NGINX Service Mesh?
NSM terdiri dari bidang data terpadu untuk lalu lintas horizontal (layanan-ke-layanan) dan Pengontrol Ingress NGINX Plus yang tertanam untuk lalu lintas vertikal, yang dikelola oleh satu bidang kontrol.
Bidang kontrol dirancang khusus dan dioptimalkan untuk bidang data NGINX Plus dan mendefinisikan aturan kontrol lalu lintas yang didistribusikan ke seluruh sidecar NGINX Plus.
Di NSM, proxy sidecar dipasang untuk setiap layanan di mesh. Mereka berinteraksi dengan solusi sumber terbuka berikut:
- Grafana, visualisasi parameter Prometheus, panel NSM bawaan membantu pekerjaan Anda;
- Pengontrol Ingress Kubernetes, untuk mengelola lalu lintas masuk dan keluar di mesh;
- SPIRE, CA untuk mengelola, mendistribusikan dan memperbarui sertifikat di mesh;
- NATS, sistem yang dapat diskalakan untuk mengirimkan pesan, seperti pembaruan rute, dari bidang kendali ke sespan;
- Open Tracing, debugging terdistribusi (mendukung Zipkin dan Jaeger);
- Prometheus, mengumpulkan dan menyimpan karakteristik dari sidecar NGINX Plus, seperti jumlah permintaan, koneksi, dan jabat tangan SSL.
Fungsi dan komponen
NGINX Plus sebagai pesawat data mencakup proksi sespan (lalu lintas horizontal) dan pengontrol Ingress (vertikal), mencegat dan mengelola lalu lintas kontainer antar layanan.
Fitur-fiturnya meliputi:
- Otentikasi Saling TLS (mTLS);
- Penyeimbang beban;
- Toleransi kesalahan;
- Batas kecepatan;
- Pemutusan sirkuit;
- Penyebaran biru-hijau dan kenari;
- Kontrol akses.
Meluncurkan NGINX Service Mesh
Untuk menjalankan NSM, Anda memerlukan:
- akses ke lingkungan Kubernetes. NGINX Service Mesh didukung di banyak platform Kubernetes, termasuk Amazon Elastic Container Service for Kubernetes (EKS), Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE), VMware vSphere, dan klaster Kubernetes reguler yang diterapkan di server perangkat keras;
- Alat
kubectl
, diinstal pada mesin tempat NSM akan diinstal; - Akses ke paket rilis NGINX Service Mesh. Paket tersebut berisi image NSM yang diperlukan untuk diunggah ke registri pribadi untuk container yang tersedia di cluster Kubernetes. Paketnya juga berisi
nginx-meshctl
, diperlukan untuk menyebarkan NSM.
Untuk menyebarkan NSM dengan pengaturan default, jalankan perintah berikut. Selama penerapan, pesan ditampilkan yang menunjukkan keberhasilan instalasi komponen dan, terakhir, pesan yang menunjukkan bahwa NSM berjalan di namespace terpisah (Anda harus 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 opsi lainnya, termasuk pengaturan lanjutan, jalankan perintah ini:
$ nginx-meshctl deploy βh
Periksa apakah bidang kontrol berfungsi dengan benar di namespace nginx-mesh, kamu bisa 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 pengaturan penerapan yang menetapkan kebijakan injeksi manual atau otomatis, proksi sidecar NGINX akan ditambahkan ke aplikasi secara default. Untuk menonaktifkan penambahan otomatis, baca
Misalnya kita men-deploy aplikasi tidur di ruang nama kegagalan, lalu periksa Podnya - kita akan melihat dua container yang sedang berjalan, yaitu application tidur dan sespan terkait:
$ kubectl apply βf sleep.yaml
$ kubectl get pods βn default
NAME READY STATUS RESTARTS AGE
sleep-674f75ff4d-gxjf2 2/2 Running 0 5h23m
Kita juga bisa memonitor aplikasinya tidur di panel NGINX Plus, jalankan perintah ini untuk mengakses sidecar dari mesin lokal Anda:
$ kubectl port-forward sleep-674f75ff4d-gxjf2 8080:8886
Lalu kita masuk saja
Anda dapat menggunakan sumber daya Kubernetes individual untuk mengonfigurasi kebijakan lalu lintas, seperti kontrol akses, pembatasan laju, dan pemutusan sirkuit, untuk hal ini lihat
Kesimpulan
NGINX Service Mesh tersedia untuk diunduh gratis di
Untuk mencoba NGINX Plus Ingress Controller, aktifkan
Terjemahan oleh Pavel Demkovich, insinyur perusahaan
Sumber: www.habr.com