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 Lima HP Xiaomi Rp1 Jutaan Sudah Punya NFC
  • Apa itu Jabatan Panitera Muda Mahkamah Agung, Berapa Gaji & Tunjangannya 2026?
  • Inilah Kenapa Bisa Ada Sensasi Mencekam di Bangunan Tua
  • Apa itu Pengertian Frontier Market di Dunia Saham?
  • Apa itu Krnl Executor Roblox Mei 2026?
  • Inilah Cara Entry Nilai Rapor SPMBJ Jatim 2026 dan Berkas yang Dipersiapkan
  • Inilah 15 SMA Swasta Terbaik di Semarang Menurut Hasil SNBP 2026
  • Inilah Rekomendasi Motor Matic Paling Nyaman Buat Jarak Jauh 2026
  • Ini Jadwal dan Itinerary Liburan Long Weekend Tebing Breksi Yogyakarta
  • Game James Bond 007 First Light Siap Diluncurkan
  • Ini Cara Cek WhatsApp Di Hack atau Tidak + Tips Biar Lebih Aman
  • Daftar Harga HP Vivo Mei 2026, Ini Yang Paling Murah
  • Inilah Lenovo Legion Y70 2026 Bawa Snapdragon 8 Gen 5 dan Baterai Monster, Kapan Rilis?
  • Rekomendasi Lima HP Murah 2 Jutaan dengan RAM 12 GB
  • Hasil Penelitian: Boneka Melatih Kecerdasan Emosional Anak
  • SALAH! MIT Ungkap AI Tidak Ganti Karyawan Karena Efisiensi
  • Inilah Inovasi Terbaru Profesor UI: Pelumas Mobil dari Minyak Nabati!
  • Daftar Sekarang! Beasiswa S2 di Italia dari IYT Scholarship 2026 Sudah Dibuka
  • Sejarah Hantavirus dan Perkembangannya Sampai ke Indonesia
  • Kementerian Pendidikan: Mapel Bahasa Inggris Wajib di SD Mulai 2027!
  • Ketua Fraksi PKB MPR-RI: Kemenag Respon Cepat Pendidikan Santri Ndolo Kusumo Pati yang Terdampak
  • Viral Video Sejoli Di Balai Kota Panggul Trenggalek, Satpol PP Janji Usut
  • Video Viral Wakil Wali Kota Batam Tegur Keras Pasir Ilegal
  • LPDP Buka Peluang Beasiswa S3 Prancis 2026, Simak Syaratnya!
  • Inilah Panduan Lengkap dan Aturan Main Seleksi Penerimaan Murid Baru (SPMB) SMA dan SMK Negeri Jawa Tengah Tahun 2026
  • Inilah Syarat dan Cara Daftar MOFA Taiwan Fellowship 2027
  • RESMI! Inilah Macam Jalur di SPMB Sekolah Tahun Ajaran 2026
  • Ini Loh Rute Terbaru TransJOGJA Per Mei 2026, Jangan Salah Naik!
  • Inilah Jadwal Operasional MRT Jakarta Per Mei 2026, Berubah Dimana?
  • Inilah Syarat dan Mekanisme Seleksi Siswa Unggul ITB Jalur Talenta (OSN, Seniman, Hafidz, Atlet dll) 2026/2027
  • How to build a high-performance private photo cloud with Immich and TrueNAS SCALE
  • How to Build an Endgame Local AI Agent Setup Using an 8-Node NVIDIA Cluster with 1TB Memory
  • 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 Automate Your Entire SEO Strategy Using a Swarm of 100 Free AI Agents Working in Parallel
  • How to create professional presentations easily using NotebookLM’s AI power for school projects and beyond
  • How to Master SEO Automation with Google Gemini 3.1 Flash-Lite in Google AI Studio
  • How to create viral AI video ads and complete brand assets using the Claude and Higgsfield MCP integration
  • How to Transform Your Mac Into a Supercharged AI Assistant with Perplexity Personal Computer
  • 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