Menjalankan software Distributed Cloud only for bare metal di OpenStack memungkinkan Anda mengintegrasikan cluster dengan Infrastructure as a Service (IaaS), Load Balancing as a Service (LBaaS), dan Storage OpenStack. Mengonfigurasi cluster Anda untuk penyedia cloud eksternal mendelegasikan proses inisialisasi node ke OpenStack.
Anda dapat menyediakan resource LBaaS OpenStack secara otomatis, bukan MetalLB, untuk mengekspos Service yang berjalan di cluster Anda ke tenant OpenStack lain atau di luar jaringan OpenStack. Untuk mengetahui informasi selengkapnya tentang fitur dan manfaat OpenStack, lihat dokumentasi OpenStack.
Contoh terkait
Dokumen ini hanya membahas cara mengonfigurasi cluster Anda untuk digunakan dengan OpenStack. Panduan berikut akan memandu Anda melalui contoh deployment:
Men-deploy cluster di OpenStack akan memandu Anda melalui contoh deployment cluster hybrid di virtual machine (VM) OpenStack. Deployment menggunakan skrip untuk menyederhanakan penginstalan. Panduan ini juga menunjukkan salah satu cara untuk mengaktifkan load balancing as a Service (LBaaS).
Mengonfigurasi Penyedia Cloud OpenStack untuk Kubernetes menunjukkan cara menginstal Penyedia Cloud OpenStack di cluster yang telah di-deploy di OpenStack. Penyedia Cloud OpenStack tidak diperlukan untuk menggunakan software Google Distributed Cloud dengan OpenStack.
Sebelum memulai
Tentukan cluster mana yang perlu menggunakan resource LBaaS OpenStack.
Setelah membuat cluster yang dikonfigurasi untuk menggunakan resource LBaaS OpenStack, Anda tidak dapat mengubah konfigurasi untuk beralih ke resource MetalLB. Pastikan Anda melakukan inisialisasi cluster dengan konfigurasi penyedia cloud yang benar.
Pastikan Anda memiliki akses ke mesin yang ingin dikonfigurasi.
Pelajari lebih lanjut cara menjalankan cloud-controller-manager dalam dokumentasi Kubernetes.
Mengubah file konfigurasi cluster Anda
Penyedia Cloud Kubernetes OpenStack mengharuskan kubelet berjalan di semua
node dengan argumen berikut:
cloud-provider: "external"
Untuk memastikan cluster Anda memenuhi persyaratan ini, tambahkan anotasi baremetal.cluster.gke.io/external-cloud-provider: "true" ke file konfigurasi cluster di bagian metadata sebelum Anda membuat cluster.
Entri dalam 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. Google Distributed Cloud membuat providerID dengan format seperti
baremetal://MACHINE_ADDRESS untuk setiap mesin node. Jika ingin memiliki providerID yang berbeda, Anda dapat menentukannya untuk setiap node beserta alamat IP.
Contoh file konfigurasi cluster berikut menunjukkan cara menentukan
providerID untuk node cluster Anda:
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-cluster1
spec:
clusterName: cluster1
nodes:
- address: 172.18.0.2
+ providerID: some-prefix3://unique-string3
Membuat cluster Anda
Setelah mengedit file konfigurasi, gunakan perintah berikut untuk melakukan inisialisasi cluster Anda:
bmctl create cluster -c cluster1
Untuk mengetahui informasi selengkapnya tentang cara membuat cluster, lihat Ringkasan pembuatan cluster.
Konfigurasi node
Saat Anda membuat cluster yang dikonfigurasi untuk OpenStack, node cluster akan mengalami perubahan berikut:
Semua node di
cluster1berjalan dengan argumen yang diperlukan:cloud-provider: "external".Semua node juga memiliki taint berikut yang ditambahkan ke file konfigurasinya:
taints: - effect: NoSchedule key: node.cloudprovider.kubernetes.io/uninitialized value: "true"Taint ini akan dihapus setelah Anda melakukan inisialisasi penyedia cloud di cluster ini.
kubeletberjalan denganproviderIDyang Anda tentukan dalam file konfigurasi cluster.