Tentang Kubeconfig

File konfigurasi Kubernetes

Kubernetes menggunakan file YAML yang disebut kubeconfig guna menyimpan informasi autentikasi cluster untuk kubectl. kubeconfig berisi daftar konteks yang dirujuk kubectl saat menjalankan perintah. Secara default, file disimpan di $HOME/.kube/config.

Konteks adalah grup parameter akses. Setiap konteks berisi cluster Kubernetes, pengguna, dan namespace. Konteks saat ini adalah cluster yang saat ini merupakan default untuk kubectl: semua perintah kubectl dijalankan pada cluster tersebut.

Setelah membuat cluster, ikuti Membuat entri kubeconfig untuk menambahkan konteks cluster ke kubeconfig lokal Anda.

Endpoint pribadi

Semua cluster memiliki endpoint kanonis. Endpoint mengekspos server Kubernetes API yang digunakan kubectl dan layanan lainnya untuk berkomunikasi dengan bidang kontrol cluster Anda melalui port TCP 443. Di Azure, endpoint ini adalah IP pribadi tunggal yang didukung oleh load balancer yang menghadap ke internal, misalnya 10.0.1.5. Endpoint ini tidak dapat diakses di internet publik. Anda bisa mendapatkan alamat endpoint cluster pribadi dari kolom endpoint di output perintah gcloud container azure clusters describe.

Hubungkan endpoint gateway

Secara default, perintah gcloud container azure clusters get-credentials menghasilkan kubeconfig yang menggunakan Gateway koneksi. Dengan kubeconfig ini, kubectl menggunakan Connect, yang kemudian meneruskan traffic dengan aman ke endpoint pribadi atas nama Anda. Saat Anda menggunakan gateway Connect, endpoint akan terlihat seperti https://connectgateway.googleapis.com/v1/projects/PROJECT_NUMBER/memberships/CLUSTER_NAME, dengan PROJECT_NUMBER sebagai nomor project Anda dan CLUSTER_NAME sebagai nama cluster Anda.

Jika Anda memiliki akses ke endpoint pribadi cluster melalui VNet, Anda dapat terhubung langsung ke endpoint pribadi. Untuk membuat kubeconfig menggunakan endpoint pribadi, gunakan perintah gcloud container azure clusters get-credentials --private-endpoint.

Tentang autentikasi untuk kubectl

Semua GKE di Azure dikonfigurasi untuk menerima identitas pengguna dan akun layanan Google Cloud, dengan memvalidasi kredensial yang ditampilkan oleh kubectl dan mengambil alamat email yang terkait dengan identitas pengguna atau akun layanan. Oleh karena itu, kredensial untuk akun tersebut harus menyertakan cakupan OAuth userinfo.email agar autentikasi berhasil.

Saat Anda menggunakan gcloud untuk menyiapkan kubeconfig lingkungan untuk cluster baru atau yang sudah ada, gcloud akan memberi kubectl kredensial yang sama dengan yang digunakan oleh gcloud itu sendiri. Misalnya, jika Anda menggunakan gcloud auth login, kredensial pribadi Anda akan diberikan ke kubectl, termasuk cakupan userinfo.email. Hal ini memungkinkan GKE di Azure untuk mengautentikasi klien kubectl.

Setelah pengguna atau akun layanan Google Cloud diautentikasi, mereka juga harus diotorisasi untuk melakukan tindakan apa pun pada GKE di Azure. Admin cluster bertanggung jawab menyiapkan Kontrol Akses Berbasis Peran yang sesuai untuk mengonfigurasi otorisasi.