Skip to content

emka.web.id

menulis pengetahuan – merekam peradaban

Menu
  • Home
  • Tutorial
  • Search
Menu

Cara Mengakses API Cluster Kubernetes Anda Dari Dalam Pod Anda

Posted on October 1, 2022

Kubernetes API adalah rute Anda untuk memeriksa dan mengelola operasi cluster Anda. Anda dapat menggunakan API menggunakan Kubectl CLI, alat seperti curl, atau perpustakaan integrasi resmi untuk bahasa pemrograman populer.

API juga tersedia untuk aplikasi dalam cluster Anda. Pod Kubernetes secara otomatis diberikan akses ke API dan dapat diautentikasi menggunakan akun layanan yang disediakan. Anda melakukan interaksi dengan menggunakan variabel lingkungan yang disuntikkan dan file sertifikat untuk membuat koneksi dari klien pilihan Anda.

Mengapa Mengakses API Kubernetes Dalam Pods?

Ada beberapa kasus penggunaan untuk akses API dalam-Pod. Teknik ini memungkinkan aplikasi untuk memeriksa lingkungannya secara dinamis, menerapkan perubahan Kubernetes, dan mengumpulkan metrik bidang kontrol yang memberikan wawasan kinerja.

Beberapa organisasi mengembangkan alat mereka sendiri di sekitar Kubernetes. Mereka mungkin menyebarkan aplikasi dalam kluster khusus yang menggunakan API untuk mengekspos fungsionalitas tambahan. Beroperasi dari dalam cluster bisa lebih aman daripada melakukan panggilan API dari skrip eksternal karena Anda tidak perlu membuka lingkungan Anda atau berbagi akun layanan dan token autentikasi.

Menggunakan Perpustakaan Klien API

Metode termudah dan direkomendasikan untuk mengakses API Kubernetes dari sebuah Pod adalah menggunakan pustaka klien. Opsi yang didukung penuh tersedia untuk C, .NET, Go, Haskell, Java, JavaScript, Perl, Python, dan Ruby. Ada solusi yang dikelola komunitas yang setara untuk sebagian besar bahasa pemrograman populer lainnya.

Library klien memiliki dukungan bawaan untuk menemukan lingkungan cluster yang mereka jalankan. Setiap implementasi menyediakan fungsi yang dapat Anda panggil yang akan mengonfigurasi library untuk terhubung ke benar API server.

Berikut adalah contoh cara membuat daftar Pod di cluster Anda dalam aplikasi Python:

from kubernetes import client, config   config.load_incluster_config()   api = client.CoreV1Api()   # Lakukan interaksi API yang diperlukan# pods = api.list_pod_for_all_namespaces ()

Pendekatan ini mudah digunakan dan tidak memerlukan konfigurasi manual. Terkadang Anda tidak akan dapat menggunakan pustaka klien. Dalam kasus tersebut, masih mungkin untuk mengakses API secara manual menggunakan akun layanan yang disediakan Kubernetes.

Melakukan Interaksi API Manual

Untuk memanggil API, Anda perlu mengetahui dua hal: nama host dalam kluster yang menampilkannya, dan token akun layanan yang akan mengautentikasi Pod.

Anda Nama host API selalu kubernetes.default.svc. Penyedia DNS Kubernetes akan menyelesaikan nama ini ke server API bidang kontrol. Atau, Anda dapat menggunakan variabel lingkungan $KUBERNETES_SERVICE_HOST untuk menemukan alamat IP server API:

$ echo $KUBERNETES_SERVICE_HOST 10.96.0.1

API hanya tersedia melalui HTTPS. Anda dapat menemukan file otoritas sertifikat untuk cluster Anda di /var/run/secrets/kubernetes.io/serviceaccount/ca.crt di dalam Pod Anda. Kubernetes menyimpan ini ke dalam sistem file setiap kali wadah baru dibuat.

Anda harus mengautentikasi untuk mencapai sesuatu yang berguna dengan API. Kubernetes membuat akun layanan baru untuk setiap Pod dan menyediakan tokennya di /var/run/secrets/kubernetes.io/serviceaccount/token. Ini harus disertakan dengan setiap permintaan HTTP sebagai token pembawa di header Otorisasi.

Menggabungkan semuanya, berikut adalah contoh membuat permintaan API Kubernetes dalam Pod dasar menggunakan curl:

$ curl –cacert /var/run/secrets /kubernetes.io/serviceaccount/ca.crt -H “Otorisasi: Pembawa $(cat /var/run/secrets/kubernetes.io/serviceaccount/token)” https://kubernetes.default.svc/api { “kind “: “APIVersions”, “versions”: [ “v1” ], “serverAddressByClientCIDRs”: [ { “clientCIDR”: “0.0.0.0/0”, “serverAddress”: “192.168.49.2:8443” } ]

Server Kubernetes telah merespons dengan versi API yang tersedia. Ini mengonfirmasi bahwa koneksi yang berhasil telah dibuat menggunakan nama host kubernetes.default.svc dan akun layanan yang disediakan.

Handling RBAC

Meskipun permintaan API telah berhasil dibuat, sebagian besar lainnya akan terlarang jika RBAC diaktifkan untuk cluster Anda. Akun layanan yang baru dibuat tidak secara otomatis menerima peran sehingga Pod Anda tidak akan dapat meminta titik akhir API yang dilindungi.

Anda dapat mengatasinya dengan membuat objek Role Anda sendiri dan mengikatnya ke akun layanan yang disediakan untuk Pod Anda. Pertama buat Role baru:

apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: namespace: default name: demo-role rules: – apiGroups: [“”] resources: [“pods”] verbs: [” get”, “list”]

Terapkan ke cluster Anda dengan Kubectl:

$ kubectl apply -f role.yaml

Next ikat peran ke akun layanan:

apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: namespace: nama default: subjek pengikatan-demo: – jenis: Nama Akun Layanan: apiGroup default: “” roleRef: jenis: Nama peran: demo-peran apiGroup: “”

Akun layanan default dipilih sebagai subjek pengikatan peran. Pod selalu disertakan dengan akun layanan ini, dicakup ke namespace tempat mereka dibuat. Dalam contoh ini, namespace default digunakan, tetapi ini harus diubah pada objek Role dan RoleBinding jika Pod Anda ada di namespace yang berbeda.

Tambahkan RoleBinding ke cluster Anda:

$ kubectl apply -f role-binding.yaml

Sekarang Pod Anda akan diizinkan untuk mendapatkan dan mencantumkan objek Pod lain di namespace default. Anda dapat memverifikasi ini dengan membuat permintaan API ke endpoint Pods dengan namespaced:

$ curl –cacert /var/run/secrets/kubernetes.io/serviceaccount/ca.crt -H “Authorization: Bearer $(cat /var /run/secrets/kubernetes.io/serviceaccount/token)” https://kubernetes.default.svc/api/v1/namespaces/default/pods { “kind”: “PodList”, “apiVersion”: “v1” . .. }

Pods dapat mengidentifikasi namespace mereka sendiri dengan membaca file /var/run/secrets/kubernetes.io/serviceaccount/namespace:

$ cat /var/run/secrets/kubernetes.io/serviceaccount/namespace default

Ini menyediakan metode yang mudah digunakan untuk menginterpolasi namespace aktif ke dalam URL endpoint:

$ curl –cacert /var/run/secrets/kubernetes.io/serviceaccount/ca.crt -H “Otorisasi: Bearer $(cat /var/run/secrets/kubernetes .io/serviceaccount/token)” https://kubernetes.default.svc/api/v1/namespaces/$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace)/pods { “kind”: ” PodList”, “apiVersion”: “v1” … }Memilih Akun Layanan Lain
n bspKubernetes secara otomatis memberikan Pod dengan akun layanan default di dalam namespace mereka. Sebagai gantinya, Anda dapat menginjeksi akun layanan yang berbeda dengan menyetel bidang spec.serviceAccountName pada Pod Anda:

apiVersion: v1 kind: Pod metadata: name: demo spec: serviceAccountName: demo-sa

Dalam contoh ini Pod akan diautentikasi sebagai token demo-sa . Anda dapat membuat akun layanan ini secara manual dan mengikatnya dengan peran yang Anda perlukan.

$ kubernetes membuat akun layanan demo-sa

Akun layanan harus ada di namespace yang sama dengan Pod.

Pemasangan Akun Memilih Keluar Layanan

Injeksi akun layanan otomatis tidak selalu diinginkan. Ini bisa menjadi bahaya keamanan karena kompromi Pod yang berhasil menawarkan akses langsung ke API cluster Kubernetes Anda. Anda dapat menonaktifkan pemasangan token akun layanan dengan bidang manifes Pod spec.automountServiceAccountToken:

apiVersion: v1 kind: Pod metadata: name: demo spec: automountServiceAccountToken: false

Kubernetes tidak akan menyuntikkan /var/run/secrets/kubernetes.io/serviceaccount/ berkas tanda. Ini akan mencegah Pod mengautentikasi ke Kubernetes API kecuali jika Anda memberikan kredensial secara manual menggunakan metode yang berbeda. Bidang ini juga didukung pada objek akun layanan, membuatnya tidak memenuhi syarat untuk dipasang secara otomatis ke dalam Pod mana pun.

Jika Anda menggunakan pemasangan akun layanan, tetapkan kebijakan RBAC yang sesuai untuk membatasi token pada kasus penggunaan yang Anda maksudkan. Menghindari akses yang sangat istimewa akan mengurangi risiko kerusakan jika penyerang mendapatkan akses ke Pod.

Anda Mengakses server Kubernetes API dari dalam cluster Anda memungkinkan aplikasi yang sedang berjalan memeriksa dan memodifikasi beban kerja di sekitarnya. Anda dapat menambahkan fungsionalitas ekstra tanpa membuka klaster Anda ke akses API eksternal.

Library klien resmi memudahkan untuk memulai dan menjalankannya, jika cocok untuk kasus penggunaan Anda. Dalam situasi lain, Anda harus membuat permintaan secara manual ke https://kubernetes.default.svc, dengan menyediakan file otoritas sertifikat dan token akun layanan yang disuntikkan Kubernetes ke dalam wadah Pod Anda. Terlepas dari pendekatan yang Anda gunakan, akun layanan harus dikonfigurasi dengan benar dengan pengikatan peran RBAC sehingga Pod memiliki izin untuk melakukan tindakan yang diinginkan.

Itulah berita seputar Cara Mengakses API Cluster Kubernetes Anda Dari Dalam Pod Anda, semoga bermanfaat. Disadur dari HowToGeek.com.

Terbaru

  • Inilah Alasan Kenapa Manusia Lebih Sering Hamil Satu Bayi daripada Kembar Menurut Penelitian Terbaru
  • Inilah Syarat dan Cara Pendaftaran IMEI Internasional Mulai Mei 2026
  • Bocoran Spek Samsung Galaxy S27 Ultra Nih, Kamera 3X Hilang + Teknologi AI
  • Inilah Perbedaan Motorola G47 dan Motorola G45, Cuma Kamera 108 Megapiksel Doang?
  • Update Baru Google Gemini: Bisa Bikin File Word, PDF, Excel secara Otomatis
  • Rekomendasi Motor Listrik 2026 Anti Mogok!
  • Ini Loh Honda Vision 110, Motor Baru Seharga Beat & Rangka eSAF Khusus Pasar Eropa
  • Inilah Mobil-Mobil Paling Cocok Transisi ke Bioetanol E20 dan Biodiesel B50!
  • Inilah Ternyata Batas Minimal Daya Cas Mobil Listrik di Rumah
  • DJP Geser Batas Akhir Lapor Pajak Sampai 31 Mei 2026
  • PKB Tanggapi Dingin Usul Yusril Ihza Mahendra Soal Parliamentary Treshold 13 Kursi
  • LPTNU Kritik Keras Rencana Penutupan Prodi: Kenapa Tidak Komprehensi & Berbasis Problematika Nyata?
  • Gus Rozin PWNU Jawa Tengah Setuju Cak Imin, Konflik PBNU bikin Warga Kesal dan Tidak Produktif
  • Pengamat: Prabowo Harus Benahi KAI, Aktifkan juga Jalur Kereta Lama & Baru
  • Sekjend PBNU: Jadwal Muktamar Usulan PWNU Sejalan Hasil Rapat Pleno & Rais Aam
  • PKB Desak Hukuman Maksimal Kasus Little Aresha & Evaluasi Total Sistem Penitipan Anak secara Nasional
  • PKB Usul Modernisasi Sistem Kereta dan CCTV di Kabin Masinis, Setuju?
  • Menteri PPA Arifah Fauzi Minta Maaf Soal Polemik Pindah Gerbong Wanita di KRL
  • Cara Kirim Robux Mudah di Roblox Beli Skin Shirt Preview
  • Kronologi kasus dugaan penyebaran konten asusila oleh anak anggota DPRD Kutai Barat?
  • Inilah Alasan Kenapa Gelembung Air di Luar Angkasa Bisa Jadi Eksperimen Fisika yang Keren Banget
  • Inilah Contoh Naskah Doa Upacara Hardiknas 2026 yang Syahdu dan Penuh Makna
  • Inilah 10 Peringkat SMP di Daerah Istimewa Yogyakarta Berdasarkan Hasil TKA TKAD 2025/2026 Terbaru
  • Inilah Cara Download FF Beta Versi Terbaru 2026, Lengkap Dengan Cara Daftar Advanced Server Resmi
  • Inilah Cara Menghilangkan YouTube Shorts di Beranda Biar Nggak Menghambat Scrolling Kalian!
  • Inilah Kabar Gembira Program Magang Nasional 2026, Kuota Naik Drastis Jadi 150 Ribu Peserta!
  • Inilah House of Amartha: Mengenal Bisnis Thariq Halilintar di Balik Pernikahan Mewah El Rumi dan Syifa Hadju
  • Inilah Cara Kuliah S1-S2-S3 Gratis dan Cepat Lewat Beasiswa BIB Kemenag Jalur Akselerasi 2026
  • Inilah Aturan Baru Penugasan Guru Non-ASN 2026, Nasib Kalian Ditentukan Sampai Tanggal Ini!
  • Inilah Cara Daftar Pra SPMB Banten 2026 Biar Proses Masuk Sekolah Jadi Makin Lancar
  • How to Master Windows Event Logs to Level Up Your Cybersecurity Investigations and SOC Career
  • How to Build Ultra-Resilient Databases with Amazon Aurora Global Database and RDS Proxy for Maximum Uptime and Performance
  • How to Build Real-Time Personalization Systems Using AWS Agentic AI to Make Every User Feel Special
  • How to Transform Your Windows 11 Interface into a Sleek and Modern Aesthetic Masterpiece
  • How to Understand Google’s New TPU 8 Series for Massive AI Training and Inference
  • How to Make a Cinematic AI Short Film from Scratch with GPT Image 2 and Seedance 2.0
  • How to Turn Your Laptop Into a Pro Coworker with Amazon Quick
  • How to use DeepSeek V4 to save massive costs compared to Claude and OpenAI for advanced AI coding
  • How to set up a powerful AI agent with Abacus Claw without needing a Mac Mini
  • How to build a smart voice agent with the AssemblyAI Voice Agent API and Universal-3 Pro for high-accuracy conversations
  • Apa itu Spear-Phishing via npm? Ini Pengertian dan Cara Kerjanya yang Makin Licin
  • Apa Itu Predator Spyware? Ini Pengertian dan Kontroversi Penghapusan Sanksinya
  • Mengenal Apa itu TONESHELL: Backdoor Berbahaya dari Kelompok Mustang Panda
  • Siapa itu Kelompok Hacker Silver Fox?
  • Apa itu CVE-2025-52691 SmarterMail? Celah Keamanan Paling Berbahaya Tahun 2025

©2026 emka.web.id | Design: Newspaperly WordPress Theme