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 Kenapa KBLI Sangat Penting Buat Bisnis Digital dan Gini Caranya Biar Kalian Nggak Salah Pilih Kode
  • Inilah Fitur Keren ONLYOFFICE Docs 9.3, Cara Baru Edit PDF dan Dokumen Lebih Efisien!
  • Inilah Cara Banjir Komisi Shopee Affiliate Hanya Dalam 7 Hari Saja
  • Cara Download Aplikasi BUSSID Versi 3.7.1 Masih Dicari dan Link Download Aman Mediafire
  • Inilah Cara Lengkap Mengajukan SKMT dan SKBK di EMIS GTK 2026, Biar Tunjangan Cair Tanpa Drama!
  • Inilah Kenapa Bukti Setor Zakat Kalian Harus Ada NPWP-nya, Jangan Sampai Klaim Pajak Ditolak!
  • Inilah Cara Jadi Clipper Video Sukses Tanpa Perlu Tampil di Depan Kamera
  • Inilah Cara Upload NPWP dan Rekening di EMIS GTK Madrasah Terbaru, Jangan Sampai Tunjangan Terhambat!
  • Inilah Fakta di Balik Video Ukhti Sholat Mukena Pink Viral yang Bikin Geger Media Sosial
  • Belum Tahu? Inilah Langkah Pengisian Survei Digitalisasi Pembelajaran 2026 Biar Nggak Salah
  • Ini Kronologi Video Viral Ibu Tiri vs Anak Tiri Ladang Sawit Tiktok
  • Inilah Caranya Update Chromebook Sekolah Agar Siap Digunakan untuk TKA SD dan SMP
  • Inilah Caranya Menghindari Mafia Kontraktor Renovasi Nakal Supaya Budget Nggak Boncos
  • Inilah Trik Rahasia Tembus 4000 Jam Tayang YouTube Tahun 2026 Cuma Dalam 2 Hari
  • Inilah Rahasia Tomoro Coffee Bisa Singkirkan Semua Pesaing dan Ekspansi Massif Banget!
  • Inilah Kenapa AI Sering Jadi Kambing Hitam Saat PHK Massal, Padahal Masalahnya Bukan Itu!
  • Inilah Cara Baru Cepat Monetisasi YouTube Tanpa Trik Musik, Cuma 2 Bulan Langsung Cuan!
  • Inilah Kapan Pengumuman SNBP 2026 Jam Berapa Lengkap dengan Cara Cek Hasil Kelulusannya
  • Belum Tahu? Inilah Cara Zakat Perusahaan Kalian Bisa Jadi Pengurang Pajak Penghasilan Bruto!
  • Inilah Cara Menggabungkan Grid Foto Online dan Hapus Background Foto
  • Kenapa Youtuber Mulai Harus Hati-hati Pakai AI: Bisa Digugat dan Kehilangan Hak Cipta!
  • Inilah Alasan Kenapa Sumbangan ke Tempat Ibadah Biasa Nggak Bisa Langsung Jadi Pemotong Pajak!
  • Belum Tahu? Inilah Cara Pasang Iklan Meta Ads untuk Sales WiFi Supaya Banjir Closingan!
  • Inilah Alur Pengerjaan EMIS GTK 2026 yang Benar dari Awal Sampai Akhir
  • Inilah 27 Sekolah Kedinasan untuk Lulusan SMK 2026, Bisa Kuliah Gratis dan Langsung Jadi CPNS!
  • Inilah Cara Kuliah S2 di Inggris dengan GREAT Scholarship 2026: Syarat Lengkap, Daftar Kampus, dan Tips Jitu Biar Lolos!
  • Belum Tahu? Inilah Alasan Non-Muslim Juga Bisa Ngurangin Pajak Pake Sumbangan Keagamaan Wajib!
  • Inilah Kenapa Zakat ke Pondok Pesantren Mungkin Nggak Bisa Jadi Pengurang Pajak, Yuk Cek Syaratnya!
  • Inilah Caranya Daftar SMA Unggul Garuda Baru 2026 yang Diperpanjang, Cek Syarat dan Link Resminya!
  • Cara Cek Pencairan KJP Plus Tahap 1 Januari 2026 Beserta Daftar Nominal Lengkapnya
  • Is the $600 MacBook Neo Actually Any Good? A Detailed Deep-Dive for Student!
  • Build Your Own Mini Data Center: A Guide to Creating a Kubernetes Homelab
  • How Enterprise Stop Breaches with Automated Attack Surface Management
  • The Roadmap to Becoming a Professional Python Developer in the AI Era
  • Why Your High Linux Uptime is Actually a Security Risk: A Lesson for Future Sysadmins
  • How to Use the Tiiny AI Pocket Lab to Run Local Large Language Models
  • AI SEO Tutorial With OpenClaw, Make Your Website Traffic from 0 to 780 Clicks Daily
  • How to Use SoulX FlashHead To Create The Best Talking Avatar for Free on Google Colab!
  • New Claude AI Memory: How to Seamlessly Sync ChatGPT to Anthropic in Minutes
  • Securing LLM with Agentverse (Secure and Scalable Inference)
  • 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
Beli Pemotong Rumput dengan Baterai IRONHOOF 588V Mesin Potong Rumput 88V disini https://s.shopee.co.id/70DBGTHtuJ
Beli Morning Star Kursi Gaming/Kantor disini: https://s.shopee.co.id/805iTUOPRV

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