Kubernetes

Mesh Servis Kubernetes

Mesh Servis Kubernetes
Kubernetes mempunyai banyak jenis sumber yang membantu anda mengaburkan idea perkhidmatan atau perkhidmatan mikro. Sebagai contoh, jika frontend aplikasi anda ingin berinteraksi dengan backend, ia tidak perlu memikirkan pod mana yang dicarinya, atau tidak juga alamat IP mana yang diharapkan pod backend akan ditempati. Pod didedahkan melalui perkhidmatan. (Sekiranya anda baru menggunakan Kubernetes, saya mengesyorkan siaran ini untuk lebih memahami apa yang ada bersama dengan konsep penting yang lain.)

Pada dasarnya, Kubernetes mendedahkan a perkhidmatan backend dalaman dalam kelompok dan bahagian depan berinteraksi dengan perkhidmatan ini. Pod yang menawarkan perkhidmatan ini dapat diganti dengan baik dan tidak ada yang menyedari apa-apa. Tetapi apabila ciri-ciri dalam aplikasi anda bertambah, jumlah perkhidmatan yang perlu anda pertahankan juga bertambah. Setiap perkhidmatan berpotensi berbicara dengan setiap perkhidmatan lain dalam kluster, dan rangkaian yang dihasilkan disebut sebagai Perkhidmatan Mesh.

Terdapat banyak tambahan untuk Kubernetes untuk membantu kami mempermudah pengurusan Mesh Perkhidmatan ini. Banyak ciri utama seperti TLS, Load Balancing automatik, mengamankan API bahkan di rangkaian dalaman, dan lain-lain ditawarkan oleh tambahan ini. Banyak pilihan seperti Istio, Linkerd, dan Conduit dapat disatukan dengan Kubernetes untuk mencapainya. Kami akan melihat Istio dalam catatan ini kerana versi 1.0 diumumkan baru-baru ini.

Prasyarat

Untuk memulakan Istio, anda memerlukan kelompok kubernetes yang berfungsi. Terdapat tiga cara untuk mendapatkannya.

  1. Anda boleh memasang Minikube untuk membuat kluster nod tunggal pada mesin tempatan anda.
  2. Atau, jika anda menggunakan Docker pada Windows atau Mac, anda boleh mengaktifkan kluster Kubernetes nod tunggal dalam tetapan Docker.
  3. Atau anda boleh menggunakan perkhidmatan dalam talian seperti taman permainan Katacoda. Kami akan menggunakan ini.

Mengapa menggunakan Mesh Servis?

Memasang jaring servis, seperti Istio memudahkan kerja dengan perkhidmatan mikro. Semasa membangun, anda tidak perlu bimbang tentang fakta bahawa perkhidmatan mikro anda harus menawarkan sokongan untuk TLS bersama, pengimbangan beban atau aspek lain seperti penemuan perkhidmatan. Service Mesh yang ideal membolehkan anda menghubungkan perkhidmatan mikro, melindungi mereka dari satu sama lain dan dari dunia luar, dan menguruskannya dengan cara yang teratur. Ia sangat membantu kedua-dua pemaju dan pengendali.

Memasang Istio

Memasang Istio memerlukan kluster Kubernetes. Sekiranya anda mempunyai kluster simpul tunggal seperti yang anda dapatkan dengan Minikube atau Docker di Desktop maka semua arahan dapat dijalankan di simpul tempatan anda. Walau bagaimanapun, jika anda menggunakan kluster berbilang nod seperti yang ditawarkan oleh taman permainan Katacoda, ingatlah bahawa kebanyakan perintah dan prosedur penyediaan dilakukan pada nod induk. Ya, ini mempengaruhi keseluruhan kelompok, tetapi kita perlu berinteraksi semata-mata dengan nod induk.

Kita mulakan dengan mengklon (atau memuat turun) siaran terbaru Istio dari Github. Pengguna Windows mungkin ingin mengunjungi halaman ini dan mendapatkan yang sesuai .zip fail.

$ curl -L https: // git.io / getLatestIstio | sh -
$ cd istio-1.0.0

Nama repo boleh berubah dari masa ke masa apabila pelepasan baru muncul, pada masa penulisan ini 1.0.0 adalah keluaran stabil terbaru. Repo ini tidak hanya berisi peluasan jaringan perkhidmatan tetapi juga aplikasi contoh yang disebut BookInfo untuk tujuan eksperimen. Skrip juga menambah direktori baru $ PWD / istio-1.0.0 / bin ke pemboleh ubah PATH anda.

Direktori ini mengandungi istioctl binari yang boleh digunakan untuk berinteraksi dengan kluster. Pengguna Windows boleh memanggil perduaan dengan pergi ke folder istio-1.0.Tong sampah dan memanggil .\ istioctl menggunakan powerhell atau command prompt. Tetapi ia adalah tambahan tambahan.

Sekiranya anda menggunakan Mac, anda boleh melakukannya dengan menggunakan arahan berikut:

$ eksport PATH = $ PWD / tong: $ PATH

Seterusnya kita perlu memperluaskan API Kubernetes kita dengan Definisi Sumber Kustom (CRD) yang disediakan oleh istio kepada kita.

$ kubectl apply -f install / kubernetes / helm / istio / templates / crds.keladi

Ini mungkin berlaku dalam beberapa saat dan setelah selesai, kube-apiserver anda akan mempunyai sambungan Istio di dalamnya. Mulai sekarang, pilihan pemasangan berbeza bergantung pada sama ada anda menggunakannya untuk tujuan pengeluaran atau jika anda bereksperimen dengannya di persekitaran terpencil anda sendiri.

Kami akan menganggap yang terakhir adalah masalahnya, dan memasang istio tanpa pengesahan TLS.

$ kubectl apply -f install / kubernetes / istio-demo.keladi

Ini akan mewujudkan sistem istio ruang nama baru di mana semua komponen seperti istio-pilot dan pintu masuk akan dipasang.

Penerapan Aplikasi dan Istio Injector

Di sinilah utiliti Istio. Istio menambahkan proksi sampingan ke perkhidmatan anda, dan ini dilakukan tanpa mengubah kod sebenar aplikasi anda. Sekiranya istio-sidecar-injector automatik diaktifkan. Anda boleh melabel ruang nama dengan istio-injection = diaktifkan dan apabila aplikasi anda disebarkan di ruang nama ini, pod mereka sendiri akan mempunyai bekas Envoy khusus dan bekas untuk aplikasi inti. Contohnya, mari labelkan ruang nama lalai

$ kubectl label namespace default istio-injection = didayakan

Sekarang mari kita gunakan contoh aplikasi BookInfo di ruang nama ini. Dari direktori root perwakilan Isitio yang kami kloning, jalankan:

$ kubectl berlaku -f sampel / bookinfo / platform / kube / bookinfo.keladi

Anda boleh menyenaraikan semua pod yang berjalan di sini:

$ kubectl dapatkan pod

Pilih mana-mana dari mana-mana dan lihat perinciannya. Sebagai contoh, salah satu pod dari aplikasi BookInfo dalam penyebaran saya bernama detail-v1-6865b9b99d-6mxx9

$ kubectl menerangkan pod / perincian-v1-6865b9b99d-6mxx9

Dalam keterangannya, anda akan melihat bahawa pod mengandungi dua bekas, yang pertama adalah komponen sebenar menjalankan aplikasi gambar contoh-bookinfo-details-v1: 1.8.0 dan yang kedua adalah istio-proksi yang menjalankan gcr gambar.io / istio-release / proxyv2: 1.0.0 .

Istio menawarkan kawalan terperinci ke atas jaring perkhidmatan anda kerana menyuntikkan bekas ini ke bahagian yang sangat baik di mana aplikasi anda berada. Ini digabungkan dengan TLS yang mudah digunakan untuk komunikasi dan kawalan lalu lintas yang halus adalah salah satu daripada banyak sebab mengapa aplikasi besar dapat memanfaatkan jaringan perkhidmatan seperti Istio.

Rujukan

Senibina yang sebenarnya mempunyai banyak komponen seperti Pilot, Citadel dan Mixer masing-masing dengan peranan pentingnya untuk dilaksanakan. Anda boleh mengetahui lebih banyak mengenai komponen ini di sini dan cuba menggunakan perkhidmatan mikro anda sendiri di sini.

Tiru klik Tetikus dengan melayang menggunakan Mouse Tanpa Klik di Windows 10
Menggunakan tetikus atau papan kekunci dalam keadaan salah penggunaan berlebihan boleh menyebabkan banyak masalah kesihatan, termasuk ketegangan, sind...
Tambahkan isyarat Tetikus ke Windows 10 menggunakan alat percuma ini
Dalam beberapa tahun kebelakangan ini komputer dan sistem operasi telah banyak berkembang. Ada saat ketika pengguna harus menggunakan perintah untuk m...
Mengawal & menguruskan pergerakan tetikus antara beberapa monitor di Windows 10
Pengurus Tetikus Paparan Dwi membolehkan anda mengawal & mengkonfigurasi pergerakan tetikus antara beberapa monitor, dengan memperlahankan pergerakann...