Bagikan melalui


Mengonfigurasikan Bridge ke Kube

Anda dapat mengonfigurasi proses Local Bridge ke Kubernetes menggunakan dua metode. Anda dapat membuat anotasi layanan pada kluster dan Anda dapat menyediakan konfigurasi lokal.

Konfigurasi Kubernetes

File konfigurasi Kubernetes (kubeconfig) disimpan secara default di ~/.kube/config, tetapi Anda dapat mengaturnya dengan menggunakan variabel lingkungan KUBECONFIG.

Jika menggunakan Visual Studio, Anda dapat mengedit profil peluncuran Bridge ke Kubernetes di IDE dengan menggunakan antarmuka pengguna profil peluncuran Debug di properti Debug. Lihat Mengedit profil peluncuran.

Cuplikan layar memperlihatkan antarmuka pengguna profil peluncuran Debug.

Dari sana, Anda dapat membuka layar berikut, yang menyediakan cara untuk mengedit beberapa properti konfigurasi yang paling umum.

Cuplikan layar memperlihatkan pengeditan beberapa properti profil Bridge ke Kubernetes yang paling umum.

Mencegah Bridge ke Kubernetes meneruskan port tertentu

Konfigurasikan Bridge ke Kubernetes untuk mengabaikan pemetaan port tertentu pada layanan Kubernetes ke komputer Anda dengan menambahkan bridgetokubernetes/ignore-ports anotasi pada layanan.

apiVersion: v1
kind: Service
metadata:
  annotations:
    bridgetokubernetes/ignore-ports:445,23

Konfigurasi lokal menggunakan (KubernetesLocalProcessConfig.yaml)

File KubernetesLocalProcessConfig.yaml memungkinkan Anda mereplikasi variabel lingkungan dan file terpasang yang tersedia untuk pod di kluster Anda. Anda dapat menentukan tindakan berikut dalam file KubernetesLocalProcessConfig.yaml:

  • Unduh volume dan atur jalur ke volume tersebut sebagai variabel lingkungan.
  • Buat agar layanan yang berjalan pada kluster Anda tersedia untuk proses yang berjalan di komputer pengembangan.
  • Buat variabel lingkungan dengan nilai konstanta.

File KubernetesLocalProcessConfig.yaml default tidak dibuat secara otomatis, sehingga Anda harus membuat file tersebut secara manual di akar proyek Anda.

Mengunduh volume

Di bagian env, tentukan name dan value untuk setiap volume yang ingin Anda unduh. name adalah variabel lingkungan yang akan digunakan pada komputer pengembangan Anda. value adalah nama volume dan jalur pada komputer pengembangan Anda. Nilai untuk value memiliki format $(volumeMounts:VOLUME_NAME)/PATH/TO/FILES.

Contohnya:

version: 0.1
env:
  - name: ALLOW_LIST_PATH
    value: $(volumeMounts:allow-list)/allow-list

Contoh di atas akan mengunduh volume allow-list dari kontainer dan mengatur lokasi tersebut, serta jalur ke variabel lingkungan ALLOW_LIST_PATH. Perilaku defaultnya adalah mengunduh file ke jalur yang Anda tentukan di bagian direktori sementara pada komputer pengembangan Anda. Pada contoh di atas, ALLOW_LIST_PATH diatur ke /TEMPORARY_DIR/allow-list.

Catatan

Jika Anda mengunduh volume, seluruh konten volume tersebut akan diunduh terlepas dari jalur yang Anda atur. Jalur ini hanya digunakan untuk mengatur variabel lingkungan agar dapat digunakan pada komputer pengembangan. Menambahkan /allow-list atau /path/to/files ke akhir token sebenarnya tidak memengaruhi tempat volume dipertahankan. Variabel lingkungan hanya memberikan kemudahan jika aplikasi Anda memerlukan referensi ke file tertentu di dalam volume tersebut.

Anda juga memiliki opsi untuk menentukan lokasi guna mengunduh pemasangan volume di komputer pengembangan Anda, bukan menggunakan direktori sementara. Di bagian volumeMounts, tentukan name dan localPath untuk setiap lokasi tertentu. name adalah nama volume yang ingin Anda cocokkan, dan localPath adalah jalur absolut pada komputer pengembangan Anda. Contohnya:

version: 0.1
volumeMounts:
  - name: default-token-*
    localPath: /var/run/secrets/kubernetes.io/serviceaccount
env:
  - name: KUBERNETES_IN_CLUSTER_CONFIG_OVERRIDE
    value: $(volumeMounts:default-token-*)

Contoh di atas menggunakan entri di env untuk mengunduh volume yang cocok dengan default-token-*, seperti default-token-1111 atau default-token-1234-5678-90abcdef. Dalam kasus ketika ada beberapa volume yang cocok, volume pertama yang cocok akan digunakan. Semua file diunduh ke /var/run/secrets/kubernetes.io/serviceaccount di komputer pengembangan Anda menggunakan entri di volumeMounts. Variabel lingkungan KUBERNETES_IN_CLUSTER_CONFIG_OVERRIDE diatur ke /var/run/secrets/kubernetes.io/serviceaccount.

Membuat layanan tersedia

Di bagian env, tentukan name dan value untuk setiap layanan yang ingin disediakan di komputer pengembangan Anda. name adalah variabel lingkungan yang akan digunakan pada komputer pengembangan Anda. value adalah nama layanan dari kluster Anda dan jalur. Nilai untuk value memiliki format $(services:SERVICE_NAME)/PATH.

Contohnya:

version: 0.1
env:
  - name: MYAPP1_SERVICE_HOST
    value: $(services:myapp1)/api/v1/

Contoh di atas membuat layanan myapp1 tersedia untuk komputer pengembangan Anda, dan variabel lingkungan MYAPP1_SERVICE_HOST diatur ke alamat IP lokal layanan myapp1 dengan jalur /api/v1 (yaitu, 127.1.1.4/api/v1). Layanan myapp1 dapat diakses menggunakan variabel lingkungan, myapp1, atau myapp1.svc.cluster.local.

Catatan

Jika Anda membuat layanan tersedia di komputer pengembangan, seluruh layanan akan tersedia terlepas dari jalur yang Anda atur. Jalur ini hanya digunakan untuk mengatur variabel lingkungan agar dapat digunakan pada komputer pengembangan. Anda juga menyediakan layanan dari namespace layanan Kubernetes tertentu menggunakan $(services:SERVICE_NAME.NAMESPACE_NAME). Contohnya:

version: 0.1
env:
  - name: MYAPP2_SERVICE_HOST
    value: $(services:myapp2.mynamespace)

Contoh di atas membuat myapp2 dari namespace layanan mynamespace tersedia di komputer pengembangan Anda, dan mengatur variabel lingkungan MYAPP2_SERVICE_HOST ke alamat IP lokal myapp2 dari namespace layanan mynamespace.

Membuat variabel lingkungan dengan nilai konstanta

Di bagian env, tentukan name dan value untuk setiap variabel lingkungan yang ingin dibuat di komputer pengembangan Anda. name adalah variabel lingkungan yang akan digunakan pada komputer pengembangan Anda, dan value adalah nilainya. Contohnya:

version: 0.1
env:
  - name: DEBUG_MODE
    value: "true"

Contoh di atas membuat variabel lingkungan bernama DEBUG_MODE dengan nilai true.

Menambahkan dependensi layanan

Anda dapat menentukan dependensi layanan, seperti database atau cache, menggunakan bidang dependensi generik, mirip dengan cara layanan dideklarasikan. Tentukan dependensi di sini ketika layanan yang Anda debug harus tersambung ke sumber daya yang tidak berjalan di kluster Anda. Deklarasikan dependensi seperti dalam contoh berikut:

version: 0.1
volumeMounts:
env:
  - name: DB_HOST
    value: $(externalendpoints:server-bridgetest123.database.windows.net:1433)

Berikan nama DNS host (server-bridgetest13.database.windows.net dalam contoh) dan port (1433 dalam contoh) untuk dependensi Anda.

Saat Anda menentukan dependensi seperti database, model autentikasi pengalihan tidak akan berfungsi. Misalnya, untuk Azure SQL Database, Anda harus mengatur kebijakan koneksi ke "Proksi" (bukan "Pengalihan" atau "Default").

Contoh KubernetesLocalProcessConfig.yaml

Berikut contoh file KubernetesLocalProcessConfig.yaml lengkap:

version: 0.1
volumeMounts:
  - name: default-token-*
    localPath: /var/run/secrets/kubernetes.io/serviceaccount
env:
  - name: KUBERNETES_IN_CLUSTER_CONFIG_OVERRIDE
    value: $(volumeMounts:default-token-*)
  - name: ALLOW_LIST_PATH
    value: $(volumeMounts:allow-list)/allow-list
  - name: MYAPP1_SERVICE_HOST
    value: $(services:myapp1)/api/v1/
  - name: MYAPP2_SERVICE_HOST
    value: $(services:myapp2.mynamespace)
  - name: DEBUG_MODE 
    value: "true"

Langkah berikutnya

Untuk mulai menggunakan Bridge to Kubernetes agar dapat tersambung ke komputer pengembangan lokal untuk kluster Anda, lihat Menggunakan Bridge to Kubernetes dengan Visual Studio Code dan Menggunakan Bridge to Kubernetes dengan Visual Studio.