GKE di Bare Metal mendukung penggunaan OpenStack sebagai platform cloud pribadi. Panduan ini menjelaskan cara mengonfigurasi GKE di cluster Bare Metal agar dapat digunakan dengan penyedia cloud eksternal. Dengan menjalankan GKE pada cluster Bare Metal di OpenStack, Anda dapat menggunakan layanan OpenStack berikut:
Infrastructure as a Service (IaaS)
Load balancing as a Service (LBaaS)
Penyimpanan
Konfigurasi cluster agar berfungsi dengan OpenStack terdiri dari hal-hal berikut:
Saat membuat cluster, Anda menambahkan anotasi
baremetal.cluster.gke.io/external-cloud-provider
Anotasi ini menyebabkan GKE di Bare Metal menambahkan flag kubelet
cloud-provider=external
Selanjutnya, kubelet menambahkan taint
node.cloudprovider.kubernetes.io/uninitialized:NoSchedule
ke node cluster
Konfigurasi ini memungkinkan Anda dan OpenStack memiliki proses init node. Misalnya, Anda dapat men-deploy GKE di Bare Metal di OpenStack untuk menyediakan resource OpenStack Load Balancing as a Service (LBaaS) secara otomatis atau memanfaatkan kemampuan OpenStack lainnya. Resource LBaaS dapat menggantikan resource MetalLB untuk mengekspos Layanan yang berjalan di GKE Anda pada cluster Bare Metal ke tenant OpenStack lainnya atau di luar jaringan OpenStack. Untuk 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 GKE pada cluster Bare Metal di OpenStack akan memandu Anda dalam melakukan deployment sampel GKE pada cluster hybrid Bare Metal pada 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 OpenStack Cloud Provider di GKE pada cluster Bare Metal yang telah di-deploy di OpenStack. Penyedia Cloud OpenStack tidak diperlukan untuk menggunakan GKE di Bare Metal dengan OpenStack.
Sebelum memulai
Tentukan cluster GKE mana yang perlu menggunakan resource OpenStack LBaaS.
Setelah membuat cluster yang dikonfigurasi untuk menggunakan resource OpenStack LBaaS, 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 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 GKE Anda memenuhi persyaratan ini, tambahkan
anotasi baremetal.cluster.gke.io/external-cloud-provider: "true"
ke file konfigurasi
cluster di bagian metadata sebelum membuat
cluster tersebut.
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 lainnya memerlukan format khusus untuk
providerID
. GKE di Bare Metal menghasilkan 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 Anda 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 dalam
cluster1
dijalankan 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.
kubelet
berjalan denganproviderID
yang Anda tentukan dalam file konfigurasi cluster.