Cara Menyebarkan Nginx di Cluster Kubernetes

instagram story viewer

Dalam artikel terakhir kami, kami telah membahas cara mengatur dan menjalankan Cluster Kubernetes, mari kita bahas bagaimana kita bisa menyebarkan NGINX layanan di cluster kami.

Saya akan menjalankan penerapan ini di Mesin Virtual yang Di-host oleh penyedia cloud publik. Seperti halnya dengan banyak layanan cloud publik, banyak yang umumnya mempertahankan skema IP publik dan privat untuk Mesin Virtual mereka.

Lingkungan Pengujian

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

Menyebarkan NGINX pada Cluster Kubernetes

Kami akan menjalankan penyebaran ini dari master-node.

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

# kubectl mendapatkan node. 
Periksa Status Cluster Kubernetes
Periksa Status Cluster Kubernetes

Kami membuat penerapan NGINX menggunakan NGINX gambar.

# kubectl membuat penerapan nginx --image=nginx. 
Menyebarkan Nginx di Kubernetes
Menyebarkan Nginx di Kubernetes

Anda sekarang dapat melihat status penerapan Anda.

# kubectl mendapatkan penerapan. 
Periksa Deployment Nginx di Kubernetes
Periksa Deployment Nginx di Kubernetes

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

# kubectl menjelaskan penerapan nginx. 
Periksa Detail Penerapan Nginx
Periksa Detail Penerapan Nginx

Sekarang penerapan 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 Jenis Layanan Kubernetes dan mereka adalah:

  1. ClusterIP – Jenis Layanan ini umumnya mengekspos layanan pada IP internal, hanya dapat dijangkau di dalam cluster, dan mungkin hanya di dalam node cluster.
  2. NodePort – Ini adalah opsi paling dasar untuk mengekspos layanan Anda agar dapat diakses di luar cluster Anda, pada port tertentu (disebut NodePort) pada setiap node dalam cluster. Kami akan mengilustrasikan opsi ini segera.
  3. LoadBalancer – Opsi ini memanfaatkan layanan Load-Balancing eksternal yang ditawarkan oleh berbagai penyedia untuk memungkinkan akses ke layanan Anda. Ini adalah opsi yang lebih andal ketika memikirkan ketersediaan tinggi untuk layanan Anda, dan memiliki lebih banyak fitur di luar akses default.
  4. Nama Eksternal – Layanan ini melakukan pengalihan lalu lintas ke layanan di luar cluster. Dengan demikian layanan dipetakan ke nama DNS yang dapat di-host dari cluster Anda. Penting untuk dicatat bahwa ini tidak menggunakan proxy.

Jenis Layanan default adalah ClusterIP.

Dalam skenario kami, kami ingin menggunakan Jenis Layanan NodePort karena kami memiliki alamat IP publik dan pribadi dan kami tidak memerlukan penyeimbang beban eksternal untuk saat ini. Dengan jenis layanan ini, Kubernetes akan menetapkan layanan ini pada port di 30000+ jarak.

# kubectl create service nodeport nginx --tcp=80:80. 
Buat Layanan NodePort untuk Mengekspos Nginx
Buat Layanan NodePort untuk Mengekspos Nginx

Jalankan dapatkan svc perintah untuk melihat ringkasan layanan dan port yang terbuka.

# kubectl dapatkan svc. 
Periksa Layanan dan Port Nginx
Periksa Layanan dan Port Nginx

Sekarang Anda dapat memverifikasi bahwa Nginx halaman dapat dijangkau di semua node menggunakan perintah ikal.

# curl master-node: 30386. # simpul ikal-1:30386. # simpul ikal-2:30386. 
Cek Halaman Nginx di Cluster Kubernetes
Cek Halaman Nginx di Cluster Kubernetes

Seperti yang Anda lihat, "SELAMAT DATANG DI NGINX!” halaman dapat dijangkau.

Mencapai Alamat IP PUBLIK Ephemeral

Seperti yang mungkin Anda perhatikan, Kubernetes melaporkan bahwa saya tidak memiliki IP Publik aktif yang terdaftar, atau lebih tepatnya tidak ada IP EKSTERNAL yang terdaftar.

# kubectl dapatkan svc. 
Periksa Layanan dan Port Nginx
Periksa Layanan dan Port Nginx

Mari kita verifikasi apakah itu memang benar, bahwa saya tidak memiliki IP EKSTERNAL yang terpasang pada antarmuka saya menggunakan perintah IP.

# ip a. 
Periksa Alamat IP
Periksa Alamat IP

Tidak ada IP publik seperti yang Anda lihat.

Seperti yang disebutkan sebelumnya, saat ini saya menjalankan penerapan ini di a Mesin virtual ditawarkan oleh penyedia cloud publik. Jadi, meskipun tidak ada antarmuka khusus yang menetapkan IP publik, penyedia VM telah mengeluarkan alamat IP eksternal Ephemeral.

Alamat IP eksternal sementara adalah alamat IP sementara yang tetap terpasang ke VM hingga instans virtual dihentikan. Saat instans virtual dimulai ulang, IP eksternal baru ditetapkan. Pada dasarnya, ini adalah cara sederhana bagi penyedia layanan untuk memanfaatkan IP publik yang menganggur.

Tantangannya di sini, selain fakta bahwa IP publik Anda tidak statis, adalah bahwa IP Publik Ephemeral hanyalah perpanjangan (atau proxy) dari IP Pribadi, dan karena alasan itu, layanan hanya akan diakses pada port 30386. Itu berarti bahwa layanan akan diakses di URL, itu adalah 104.197.170.99:30386, yang jika Anda memeriksa browser Anda, Anda seharusnya dapat melihat halaman selamat datang.

Periksa Halaman Nginx yang Di-deploy di Kubernetes
Periksa Halaman Nginx yang Di-deploy di Kubernetes

Dengan itu, kami telah berhasil menyebarkan NGINX di cluster Kubernetes 3-node kami.

Teachs.ru