NGINX Service Mesh tersedia

NGINX Service Mesh tersedia

Kami berbesar hati mempersembahkan versi pratonton Jaringan Perkhidmatan NGINX (NSM), rangkaian perkhidmatan ringan yang digabungkan yang menggunakan pesawat data berasaskan NGINX Plus untuk mengurus trafik kontena dalam persekitaran Kubernetes.

NSM adalah percuma muat turun di sini. Kami harap anda akan mencubanya untuk persekitaran pembangun dan ujian - dan mengharapkan maklum balas anda pada GitHub.

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 memuat turun dan letakkannya dalam pendaftaran, lebih kurang penterjemah):

$ 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 di sini

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 di sini dalam pelayar. Anda juga boleh menyambung ke Prometheus untuk memantau aplikasi tidur.

Anda boleh menggunakan sumber Kubernetes individu untuk mengkonfigurasi dasar trafik, seperti kawalan akses, pengehadan kadar dan pemutus litar, untuk ini lihat dokumentasi

Kesimpulan

NGINX Service Mesh tersedia untuk muat turun percuma di portal F5. Cuba dalam persekitaran pembangun dan ujian anda dan tulis kepada kami tentang hasilnya.

Untuk mencuba NGINX Plus Ingress Controller, aktifkan tempoh percubaan percuma selama 30 hari, atau Hubungi Kami untuk membincangkan kes penggunaan anda.

Terjemahan oleh Pavel Demkovich, jurutera syarikat Southbridge. Pentadbiran sistem untuk RUB 15 sebulan. Dan sebagai bahagian yang berasingan - pusat latihan Slurm, amalan dan tidak lain hanyalah amalan.

Sumber: www.habr.com

Tambah komen