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.