Cara menggunakan nginx pada cluster kubernetes

Cara menggunakan nginx pada cluster kubernetes

Di artikel terakhir kami, kami telah membahas cara mengatur dan menjalankan cluster Kubernetes, mari kita bahas bagaimana kami dapat menggunakan Nginx layanan di cluster kami.

Saya akan menjalankan penyebaran ini pada mesin virtual yang diselenggarakan oleh penyedia cloud publik. Seperti halnya dengan banyak layanan cloud publik, banyak yang umumnya mempertahankan skema IP publik dan pribadi untuk mesin virtual mereka.

Lingkungan pengujian

Master Node - IP Publik: 104.197.170.99 dan Private IP: 10.128.15.195 Pekerja Node 1 - IP Publik: 34.67.149.37 dan IP pribadi: 10.128.15.196 Pekerja Node 2 - IP Publik: 35.232.161.178 dan IP pribadi: 10.128.15.197 

Menyebarkan nginx pada kluster kubernetes

Kami akan menjalankan penempatan ini dari master-node.

Mari kita mulai dengan memeriksa status cluster. Semua node Anda harus di a SIAP negara.

# Kubectl mendapatkan node 
Periksa status kluster Kubernetes

Kami membuat penempatan Nginx menggunakan Nginx gambar.

# Kubectl Buat penyebaran nginx --image = nginx 
Menyebarkan nginx pada kubernetes

Anda sekarang dapat melihat keadaan penyebaran Anda.

# Kubectl mendapatkan penempatan 
Periksa penyebaran Nginx di Kubernetes

Jika Anda ingin melihat lebih detail tentang penyebaran Anda, Anda dapat menjalankan menggambarkan memerintah. Misalnya, dimungkinkan untuk menentukan berapa banyak replika penyebaran yang berjalan. Dalam kasus kami, kami berharap untuk melihat replika 1 berjalan (i.e 1/1 replika).

# Kubectl menjelaskan penempatan nginx 
Periksa detail penempatan Nginx

Sekarang penyebaran nginx Anda aktif, Anda mungkin ingin mengekspos Nginx Layanan ke IP publik yang dapat dijangkau di internet.

Mengekspos Layanan Nginx Anda ke Jaringan Publik

Kubernetes menawarkan beberapa opsi saat mengekspos layanan Anda berdasarkan fitur yang disebut tipe layanan Kubernetes dan mereka:

  1. Clusterip - Jenis layanan ini umumnya memaparkan layanan pada IP internal, hanya dapat dijangkau di dalam cluster, dan mungkin hanya di dalam cluster-node.
  2. Nodeport - Ini adalah opsi paling mendasar untuk mengekspos layanan Anda agar dapat diakses di luar cluster Anda, pada port tertentu (disebut Nodeport) di setiap node di cluster. Kami akan mengilustrasikan opsi ini segera.
  3. LoadBalancer - Opsi ini memanfaatkan layanan penyeimbangan beban eksternal yang ditawarkan oleh berbagai penyedia untuk memungkinkan akses ke layanan Anda. Ini adalah opsi yang lebih andal saat memikirkan ketersediaan tinggi untuk layanan Anda, dan memiliki lebih banyak fitur di luar akses default.
  4. Nama eksternal - Layanan ini tidak mengarahkan lalu lintas ke layanan di luar cluster. Dengan demikian layanan dengan demikian dipetakan ke nama DNS yang dapat di -host dari cluster Anda. Penting untuk dicatat bahwa ini tidak menggunakan proxying.

Tipe layanan default adalah Clusterip.

Dalam skenario kami, kami ingin menggunakan Tipe Layanan Nodeport Karena kami memiliki alamat IP publik dan pribadi dan kami tidak memerlukan penyeimbang beban eksternal untuk saat ini. Dengan tipe layanan ini, Kubernetes akan menetapkan layanan ini di port di 30000+ jangkauan.

# Kubectl Buat layanan nodeport nginx ---tcp = 80: 80 
Buat Layanan Nodeport untuk mengekspos Nginx

Jalankan Dapatkan SVC Perintah untuk melihat ringkasan layanan dan port terbuka.

# Kubectl dapatkan SVC 
Periksa Layanan dan Port Nginx

Sekarang Anda dapat memverifikasi bahwa Nginx Halaman dapat dijangkau pada semua node menggunakan perintah curl.

# Curl Master-Node: 30386 # Curl Node-1: 30386 # Curl Node-2: 30386 
Periksa halaman Nginx di kluster Kubernetes

Seperti yang Anda lihat, “SELAMAT DATANG DI NGINX!"Halaman dapat dicapai.

Mencapai alamat IP publik yang fana

Seperti yang mungkin Anda perhatikan, Kubernetes Laporan bahwa saya tidak memiliki IP publik aktif yang terdaftar, atau lebih tepatnya tidak terdaftar-IP eksternal.

# Kubectl dapatkan SVC 
Periksa Layanan dan Port Nginx

Mari kita verifikasi jika memang benar, bahwa saya tidak memiliki IP eksternal yang terpasang pada antarmuka saya menggunakan perintah IP.

# ip a 
Periksa alamat IP

Tidak ada IP publik seperti yang Anda lihat.

Seperti yang disebutkan sebelumnya, saya sedang menjalankan penempatan ini pada a Mesin virtual ditawarkan oleh penyedia cloud publik. Jadi, sementara tidak ada antarmuka tertentu yang ditetapkan IP publik, penyedia VM telah mengeluarkan alamat IP eksternal yang fana.

Alamat IP eksternal fana adalah alamat IP sementara yang tetap melekat pada VM sampai instance virtual dihentikan. Saat instance virtual dimulai kembali, IP eksternal baru ditetapkan. Pada dasarnya put, ini adalah cara sederhana bagi penyedia layanan untuk memanfaatkan IP publik yang menganggur.

Tantangan di sini, selain fakta bahwa IP publik Anda tidak statis, adalah bahwa IP publik fana hanyalah sebuah ekstensi (atau proxy) dari IP pribadi, dan untuk alasan itu, layanan hanya akan diakses di port 30386. Itu berarti bahwa layanan akan diakses di URL , itu adalah 104.197.170.99: 30386, Yang jika Anda memeriksa browser Anda, Anda harus dapat melihat halaman selamat datang.

Periksa halaman Nginx yang digunakan di Kubernetes

Dengan itu, kami telah berhasil digunakan Nginx Di kluster 3-node Kubernetes kami.