Konfigurasi cluster Anda untuk menggunakan OpenStack

GDCV untuk Bare Metal mendukung penyedia Cloud Kubernetes OpenStack. Gunakan fitur ini untuk menyediakan resource OpenStack Load Balancing as a Service (LBaaS) secara otomatis. Resource tersebut dapat menggantikan resource MetalLB agar mudah mengekspos layanan yang berjalan di Anthos pada cluster bare metal ke tenant OpenStack lain atau di luar jaringan OpenStack.

Sebelum memulai

Tentukan cluster Anthos yang perlu menggunakan resource OpenStack LBaaS.

Pastikan Anda memiliki akses ke komputer yang ingin dikonfigurasi.

Pelajari lebih lanjut cara menjalankan cloud-controller-manager dalam dokumentasi Kubernetes.

Mengubah file konfigurasi cluster Anda

Penyedia Cloud OpenStack Kubernetes mengharuskan kubelet berjalan di semua node dengan argumen berikut:

cloud-provider: "external"

Untuk memastikan cluster Anthos Anda memenuhi persyaratan ini dengan mudah, tambahkan anotasi baremetal.cluster.gke.io/external-cloud-provider: "true" ke file konfigurasi cluster Anda di bagian metadata sebelum melakukan inisialisasi.

Entri di file konfigurasi Anda akan terlihat seperti contoh berikut:

apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
  name: cluster1
  namespace: cluster-cluster1
  annotations:
    baremetal.cluster.gke.io/external-cloud-provider: "true"
spec:
  ..

Beberapa penyedia cloud di platform cloud lain memerlukan format khusus untuk providerID, GKE di Bare Metal akan menghasilkan providerID untuk setiap mesin. Formatnya seperti baremetal://MACHINE_ADDRESS. Jika ingin memiliki providerID yang berbeda, Anda dapat menentukannya untuk setiap node beserta alamat IP-nya. Konfigurasinya akan terlihat seperti ini:

 apiVersion: baremetal.cluster.gke.io/v1
 kind: Cluster
 metadata:
   name: cluster1
   namespace: cluster-cluster1
 spec:
   clusterNetwork:
     pods:
       cidrBlocks:
       - 192.168.0.0/16
     services:
       cidrBlocks:
       - 10.96.0.0/20
   controlPlane:
     nodePoolSpec:
       nodes:
       - address: 10.200.0.1
+        providerID: some-prefix://unique-string
       - address: 10.200.0.2
+        providerID: some-prefix2://unique-string2
  ...

---
 apiVersion: baremetal.cluster.gke.io/v1
 kind: NodePool
 metadata:
   name: nodepool1
   namespace: cluster-admin1
 spec:
   clusterName: admin1
   nodes:
   - address: 172.18.0.2
+    providerID: some-prefix3://unique-string3

Setelah mengedit file konfigurasi, gunakan perintah berikut untuk melakukan inisialisasi cluster Anda:

bmctl create cluster -c cluster1

Sekarang, semua node di cluster1 dijalankan dengan argumen yang diperlukan: cloud-provider: "external"

Semua node juga memiliki kolom berikut yang ditambahkan ke file konfigurasinya:

taints:
- effect: NoSchedule
  key: node.cloudprovider.kubernetes.io/uninitialized
  value: "true"

Kolom ini akan dihapus setelah Anda melakukan inisialisasi penyedia cloud di cluster ini.

kubelet akan dijalankan dengan providerID yang disediakan jika Anda menentukan node ini.