Cara Mengatur Ingress Controller NGINX di DigitalOcean Kubernetes

  • Post author:
  • Post category:Tutorial

DigitalOcean menyederhanakan penyediaan dan pemeliharaan cluster Kubernetes. Platform ini menyediakan fondasi yang siap digunakan untuk beban kerja dalam container dengan dukungan sekali klik untuk aplikasi addon umum.

Dalam artikel ini, kami akan menunjukkan cara menggunakan salah satu addon ini untuk menyiapkan pengontrol NGINX Ingress di cluster Anda. Ingress menyediakan mekanisme untuk merutekan traffic eksternal ke layanan Anda berdasarkan aturan seperti nama host, jalur, dan header. NGINX Ingress adalah salah satu pengontrol Ingress paling populer; ia menggunakan server web NGINX sebagai proxy terbalik yang mengarahkan lalu lintas masuk ke layanan Kubernetes yang benar.

Memulai

Anda harus membuat cluster Kubernetes di akun DigitalOcean Anda sebelum mengikuti tutorial ini. Kami juga akan menganggap Anda sudah familiar dengan dasar-dasar penggunaan Kubernetes, Kubectl, dan panel kontrol cloud DigitalOcean.

Mulai dengan masuk ke panel kontrol DigitalOcean Anda, klik tautan “Kubernetes” di bilah sisi kiri, dan pilih cluster Anda di halaman yang muncul. Selanjutnya klik tab “Marketplace” untuk melihat daftar Aplikasi 1-Klik yang tersedia.

Apa Itu Aplikasi 1-Klik?

Aplikasi 1-Klik KubernetesDigitalOcean menyediakan instalasi pra-konfigurasi untuk aplikasi populer dalam cluster. Aplikasi diuji oleh DigitalOcean sehingga dijamin berfungsi dengan setiap versi Kubernetes yang tersedia.

Aplikasi yang tersedia menggunakan bagan Helm resmi dari vendornya. Grafik ditambah dengan pengaturan default yang disediakan oleh DigitalOcean dalam repositori GitHub open-source. Panel kontrol DigitalOcean memungkinkan Anda menginstal grafik yang tersedia dengan satu klik, menyediakan cara mudah untuk bangun dan berjalan dengan utilitas penting. Anda tidak perlu menginstal Helm secara manual dan menyiapkan repositori bagan.

Menginstal NGINX Ingress Dengan Aplikasi 1-Klik

Anda sekarang dapat menggunakan teknik ini untuk menambahkan NGINX Ingress ke cluster Anda. Temukan aplikasi di pasar dengan menggulir daftar ke bawah atau menggunakan bilah pencarian. Klik tombol biru “Instal” pada kartu aplikasi dan konfirmasi konfirmasi.

Prosedur penginstalan dapat memakan waktu beberapa menit untuk diselesaikan. Kemajuan akan ditampilkan di UI web. Penyeimbang beban baru akan secara otomatis ditambahkan ke akun Anda selama proses penyiapan aplikasi. Penyeimbang beban ini akan ditagih dengan tarif standar dan harus digunakan sebagai titik masuk eksternal untuk cluster Anda.

Pengontrol Ingress Anda akan siap digunakan setelah penginstalan selesai. Karena Aplikasi 1-Klik didasarkan pada diagram Helm, Anda dapat memeriksa apakah aplikasi telah ditambahkan dengan mencantumkan rilis Helm di cluster Anda:

$ daftar helm –all-namespaces NAMA NAMESPACE REVISION UPDATED STATUS CHART APLIKASI VERSI ingress-nginx ingress -nginx 1 2022-05-30 14:46:37.591626084 +0000 UTC menerapkan ingress-nginx-4.1.0-beta.1 1.2.0-beta.1

Rilis ingress-nginx ditambahkan oleh DigitalOcean. Ini ditampilkan sebagai di-deploy sehingga Anda dapat mulai membuat sumber daya Ingress untuk mengarahkan lalu lintas ke layanan Anda.

Menggunakan Pengontrol Ingress Anda

Anda dapat menguji pengontrol Ingress Anda dengan membuat penerapan Kubernetes sederhana, layanan, dan sumber daya Ingress:

apiVersion: apps/v1 kind: Deployment metadata: name : spesifikasi demo-deployment: replika: 1 pemilih: matchLabels: app: template demo-app: metadata: label: app: spesifikasi demo-app: container: – nama: demo-container image: httpd:port terbaru: – containerPort: 80 — apiVersion: v1 kind: Service metadata: name: demo-service spec: selector: app: demo-app ports: – port: 80   — apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: demo-ingress spec: ingressClassName: aturan nginx: – host: example.com http: paths: – path: / pathType: Prefix backend: service: name: demo-service port: number: 80

Terapkan manifes ini ke cluster Anda menggunakan Kubectl:

$ kubectl apply -f app.yaml

The spec.ingressClassName: bidang nginx di resou Ingress rce berarti akan terdaftar dengan pengontrol NGINX Ingress yang baru diinstal. Setiap implementasi pengontrol memiliki nama kelasnya sendiri sehingga Anda dapat menggunakan beberapa pengontrol dalam satu cluster.

Berikutnya menyiapkan catatan DNS untuk example.com yang menunjuk ke alamat IP eksternal penyeimbang beban DigitalOcean Anda. Anda dapat menemukannya dengan menavigasi ke Networking > Load Balancers di panel kontrol online atau dengan menjalankan perintah Kubectl berikut:

$ kubectl get service ingress-nginx-controller –namespace=ingress-nginx NAME TYPE CLUSTER-IP EXTERNAL-IP PORT (S) AGE ingress-nginx-controller LoadBalancer XXX.XXX.XXX.XXX 1.2.3.4 80:30547/TCP,443:32027/TCP 1d

Mengunjungi example.com akan menampilkan halaman web Apache default setelah perubahan DNS diterapkan. Pengontrol Ingress Anda menerima permintaan dari penyeimbang beban. Ini menggunakan sumber daya Ingress Anda untuk memilih layanan yang sesuai, menyebabkan permintaan ke example.com berakhir dengan container Apache Anda.

Sekarang Anda dapat mengikuti dokumentasi Kubernetes untuk membuat sumber daya Ingress yang menyatakan aturan perutean layanan yang diperlukan untuk aplikasi Anda yang sebenarnya.

Menambahkan HTTPS

Endpoints pada klaster produksi harus dilindungi dengan TLS. Anda dapat mengatur sertifikat HTTPS otomatis dengan menambahkan Cert-Manager ke cluster Anda, di samping NGINX Ingress Controller.

Cert-Manager tersedia sebagai Aplikasi 1-Klik tambahan dari DigitalOcean Marketplace. Anda dapat mengulangi prosedur yang digunakan sebelumnya: buka halaman ringkasan cluster Anda di panel kontrol, klik tab “Marketplace”, dan temukan dan instal aplikasi.

Setelah instalasi selesai, buat penerbit sertifikat yang akan digunakan untuk meminta Let’s Encrypt certificates:

apiVersion: cert-manager.io/v1 kind: ClusterIssuer metadata: name: letsencrypt-staging spec: acme: server: https://acme-staging-v02.api.letsencrypt.org/directory email: [email protected] com privateKeySecretRef: name: letsencrypt-staging solvers: – http01: ingress: class: nginx

Ubah bidang spec.acme.email ke alamat email Anda sendiri sehingga Let’s Encrypt dapat menghubungi Anda dengan pemberitahuan tentang sertifikat Anda. Kemudian terapkan manifes ke cluster Anda:

$ kubectl apply -f issuer.yml

Sekarang Anda dapat memperbarui sumber daya Ingress Anda dengan dukungan HTTPS:

apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: demo-ingress annotations: kubernetes. io/ingress.class: ingress cert-manager.io/cluster-issuer: letsencrypt-staging spec: ingressClassName: aturan nginx: – Host: example.com http: paths: – path: / pathType: Prefix backend: service: name: port demo-service: nomor: 80 tls: – host: – example.com

Bidang spec.tls baru menentukan bahwa sertifikat harus diperoleh untuk domain example.com. Penerbit sertifikat pementasan letsencrypt akan digunakan, seperti yang didefinisikan oleh cert-manager.io/cluster-issuer annotation.

Contoh yang ditunjukkan di atas menggunakan titik akhir pementasan Let’s Encrypt yang direkomendasikan saat Anda menguji penerapan Anda. Anda dapat beralih menggunakan sertifikat asli dengan membuat penerbit kedua yang menargetkan titik akhir produksi. Salin manifes Penerbit di atas, ganti letsencrypt-staging dengan letsencrypt-production, dan ubah URL spec.acme.server menjadi https://acme-v02.api.letsencrypt.org/directory. Setelah itu, Anda dapat memperbarui anotasi cert-manager.io/cluster-issuer sumber daya Ingress Anda untuk mereferensikan letsencrypt-production issuer.

Anda yang baruMengelola Instalasi Ingress NGINX Anda

Sayangnya Aplikasi 1-Klik DigitalOcean hanya menyederhanakan pengalaman instalasi. Anda sendirian dalam mengelola dan memperbarui aplikasi Anda. Karena aplikasi hanyalah bagan Helm yang telah dikonfigurasi sebelumnya, ini tidak seberat kedengarannya.

Anda dapat menggunakan instalasi Helm CLI lokal Anda untuk meningkatkan ke rilis NGINX Ingress baru:

$ helm upgrade ingress-nginx ingress-nginx/ingress-nginx –namespace ingress-nginx –values ​​values.yml

Anda harus mengunduh file values.yml dari repositori Marketplace DigitalOcean terlebih dahulu. Ini akan memastikan rilis baru dikonfigurasi dengan pengaturan yang ada. Anda juga dapat menggunakan prosedur ini untuk menyesuaikan pengontrol Ingress Anda dengan pengaturan Anda sendiri setelah instalasi awal. Ubah file values.yml dan kemudian jalankan perintah upgrade helm.

Menghapus NGINX Ingress Dari Cluster Anda

Anda dapat sepenuhnya menghapus NGINX Ingress dari cluster Anda dengan mencopot rilis Helm aplikasi dan menghapus namespace yang dibuat:

$ helm uninstall ingress-nginx – -namespace ingress-nginx $ kubectl delete namespace ingress-nginx

Load balancer harus dibersihkan secara otomatis. Anda dapat menghapusnya secara manual dari halaman Networking > Load Balancers di panel kontrol DigitalOcean jika perlu. Klik tombol “Lainnya” di sebelah penyeimbang beban, lalu pilih “Hancurkan” dari menu tarik-turun. Anda tidak akan dapat memulihkan alamat IP yang telah dialokasikan.

Menginstal Ingress NGINX Dengan Doctl

Anda dapat menginstal Aplikasi 1-Klik menggunakan klien baris perintah Doctl DigitalOcean. Mulailah dengan mengambil daftar klaster Kubernetes Anda:

$ doctl kubernetes daftar klaster ID Nama Wilayah Versi Peningkatan Otomatis Status Kumpulan Node 946407f3-abcd-123a-456b-6a0ec60f93bf demo-k8s lon1 1.22.8-do.1 false running demo-k8s -1

Next jalankan perintah berikut untuk menambahkan NGINX Ingress ke cluster Anda. Ganti dengan ID yang ditampilkan di atas.

$ doctl kubernetes 1-click install —1-clicks ingress-nginx

Gunakan alternatif ini jika Anda ingin menginstal Cert-Manager juga:

$ doctl kubernetes 1-klik install —1 -clicks ingress-nginx,cert-manager

Selain menggunakan Doctl, Anda juga dapat berinteraksi dengan DigitalOcean API secara langsung untuk menambahkan aplikasi baru secara terprogram ke cluster Anda.

Summary

Anda dapat dengan cepat menambahkan pengontrol NGINX Ingress ke cluster DigitalOcean Kubernetes menggunakan Aplikasi 1-Klik tersedia di Marketplace. Ini menyebarkan rilis pra-konfigurasi bagan NGINX Ingress Helm dengan konfigurasi siap pakai.

Meskipun ini mempercepat penyediaan awal, Anda masih harus menjalankan perintah Helm secara manual untuk mengelola dan meningkatkan instalasi Anda. Aplikasi 1-Klik bertujuan untuk menyeimbangkan antara kemudahan penggunaan dan penyesuaian, memastikan Anda tidak terpaku pada serangkaian parameter tertentu.

Itulah berita seputar Cara Mengatur Ingress Controller NGINX di DigitalOcean Kubernetes, semoga bermanfaat. Disadur dari HowToGeek.com.