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 AWS, endpoint ini adalah nama DNS yang hanya dapat diselesaikan di dalam cluster—misalnya gke-abcdefghijk-cp-ffabcdef123456.elb.us-west-1.amazonaws.com
.
Endpoint ini tidak
dapat diakses di internet publik. Anda bisa mendapatkan alamat endpoint
cluster pribadi dari kolom endpoint
di output
perintah
gcloud container aws clusters describe
.
Hubungkan endpoint gateway
Secara default, perintah gcloud container aws 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 VPC, Anda dapat terhubung langsung ke endpoint pribadi tersebut. Untuk
membuat kubeconfig
menggunakan endpoint pribadi, gunakan
perintah
gcloud container aws clusters get-credentials --private-endpoint
.
Tentang autentikasi untuk kubectl
Semua GKE di AWS dikonfigurasi untuk menerima identitas pengguna dan akun layanan Google Cloud, dengan memvalidasi kredensial yang diberikan 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 AWS untuk mengautentikasi klien kubectl
.
Setelah pengguna atau akun layanan Google Cloud diautentikasi, mereka juga harus diotorisasi untuk melakukan tindakan apa pun pada GKE di AWS. Admin cluster bertanggung jawab menyiapkan Kontrol Akses Berbasis Peran yang sesuai untuk mengonfigurasi otorisasi.