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 Update Terbaru Kasus Video Asusila Pasangan Bandar Batang yang Kini Masuk Tahap Penyidikan
  • Inilah 9 Aplikasi Penghasil Saldo DANA Tercepat dan Terbukti Membayar Tanpa Perlu Deposit
  • Inilah Cara Mengaktifkan Fitur Vertical Tab di Google Chrome Biar Tampilan Browser Kalian Makin Lega dan Rapi
  • Inilah Alasan Kenapa elementary OS Adalah Pilihan Paling Pas Buat Pengguna macOS yang Ingin Coba Linux
  • Inilah Alasan Kenapa Windows Server Kalian Restart Terus Setelah Update April 2026
  • Inilah Alasan Layar TV Kalian Sering Kedip Hitam Saat Main Game dan Cara Mengatasinya
  • Inilah Rekomendasi HP Redmi Note RAM 12 GB dan Koneksi 5G Paling Worth It Buat Kalian
  • Inilah Bocoran Event FF Mei 2026 yang Siap Bikin Dompet Kering, Ada Kuda dan MP40 Cobra!
  • Inilah Kejutan Kompensasi Bug FC Mobile 18 April 2026, Ada Kartu Flashback Gratis yang Bikin Skuad Makin Gahar!
  • Inilah Greenwashing: Trik Nakal Perusahaan Biar Terlihat Ramah Lingkungan Padahal Enggak!
  • Inilah Rekomendasi Parfum Segar untuk Cuaca Panas Agar Kalian Tetap Wangi Seharian Tanpa Bikin Pusing
  • Inilah 12 Aplikasi TV Online Terbaik 2026, Nonton Siaran Langsung Jadi Makin Gampang!
  • Inilah Rekomendasi Kipas Angin Dinding Terbaik Buat Ngatasin Cuaca Panas Tanpa Bikin Kantong Jebol
  • Inilah Cara Sewa Mobil yang Aman dan Nyaman Biar Liburan Kalian Makin Seru Tanpa Drama
  • Inilah Cara Daftar Lowongan 30.000 Manajer Koperasi Desa Merah Putih, Cek Jadwal Lengkapnya Di Sini!
  • Inilah Cara Daftar Lowongan 1.369 Manajer Operasional Kampung Nelayan Merah Putih Jadi Pegawai BUMN!
  • Inilah Perbedaan Skin Tint, Cushion, dan Foundation Biar Kalian Nggak Salah Pilih Base Makeup Natural
  • Inilah Rekomendasi Sepeda Lipat Dewasa Terbaik 2026 yang Paling Praktis untuk Kebutuhan Commuting dan Olahraga Harian
  • Inilah 5 Rekomendasi Sepeda Lipat Listrik Jarak Tempuh Terjauh Biar Mobilitas Kalian Makin Praktis!
  • Inilah 30 Ucapan Hari Kartini 2026 Paling Bermakna untuk Caption Media Sosial dan Pesan Personal yang Inspiratif
  • Inilah Cara Daftar Manajer Koperasi Merah Putih, Peluang Karir BUMN dengan 30.000 Formasi
  • Inilah 5 Rekomendasi Bedak Two Way Cake Anti Oksidasi Supaya Wajah Nggak Terlihat Kusam dan Gelap
  • Inilah Syarat dan Cara Mengurus Surat Sehat Jasmani Rohani untuk Daftar Manajer Kopdes Merah Putih
  • Inilah Alasan Harga Plastik Naik dan 7 Alternatif Kemasan Ramah Lingkungan yang Lebih Hemat buat UMKM
  • Inilah Profil Syekh Ahmad Al Misry dan Rekam Jejaknya yang Sedang Viral di Media Sosial
  • Inilah Alasan HP Nokia Jadul Harganya Masih Selangit dan Banyak Diburu Kolektor di Tahun 2026
  • Inilah HP Samsung A Series Terbaru yang Pakai Layar AMOLED, Mewah Tapi Harganya Terjangkau Banget!
  • Inilah Vivo T5 Pro, HP Midrange dengan Baterai 9.020 mAh yang Siap Comeback ke Indonesia!
  • Inilah Cara Daftar Manajer Koperasi Desa Merah Putih 2026, Ada 30.000 Formasi yang Bisa Kalian Lamar!
  • Inilah Alasan Kenapa Kemkomdigi Ancam Blokir Wikipedia dan Dampak Seriusnya Buat Masa Depan Pendidikan Kita
  • Is it Time to Replace Nano? Discover Fresh, the Terminal Text Editor You Actually Want to Use
  • How to Design a Services Like Google Ads
  • How to Fix 0x800ccc0b Outlook Error: Step-by-Step Guide for Beginners
  • How to Fix NVIDIA App Error on Windows 11: Simple Guide
  • How to Fix Excel Formula Errors: Quick Fixes for #NAME
  • How to Master Claude & NotebookLM to Boost Research and Productivity
  • How to create professional design prototypes and presentations with the power of Claude Design & Figma
  • How to Master Claude Code 2.0: The Ultimate Guide to AI Automation
  • How to Create Consistent AI-Generated Short Films and Assets with Seedance 2.0
  • How to create stunning sci-fi AI movie visuals like a pro With Seedance 2.0
  • 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