Mengonfigurasi cluster Anda untuk menggunakan OpenStack

Google Distributed Cloud khusus software mendukung penggunaan OpenStack sebagai platform cloud pribadi. Panduan ini menjelaskan cara mengonfigurasi cluster agar dapat bekerja dengan penyedia cloud eksternal. Menjalankan penginstalan cluster khusus software Google Distributed Cloud di OpenStack memungkinkan Anda menggunakan layanan OpenStack berikut:

  • Infrastructure as a Service (IaaS)

  • Load Balancing as a Service (LBaaS)

  • Penyimpanan

Mengonfigurasi cluster untuk bekerja dengan OpenStack terdiri dari langkah-langkah berikut:

  • Saat membuat cluster, Anda menambahkan anotasi baremetal.cluster.gke.io/external-cloud-provider

  • Anotasi ini menyebabkan Google Distributed Cloud menambahkan tanda kubelet cloud-provider=external

  • Kemudian, kubelet menambahkan node.cloudprovider.kubernetes.io/uninitialized:NoSchedule taint ke node cluster

Konfigurasi ini memungkinkan Anda dan OpenStack memiliki proses inisialisasi node. Misalnya, Anda dapat men-deploy software Google Distributed Cloud di OpenStack untuk menyediakan resource OpenStack Load Balancing as a Service (LBaaS) secara otomatis atau untuk memanfaatkan kemampuan OpenStack lainnya. Resource LBaaS dapat menggantikan resource MetalLB untuk mengekspos Layanan 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.

Dokumen ini hanya membahas cara mengonfigurasi cluster untuk digunakan dengan OpenStack. Panduan berikut akan memandu Anda melalui contoh deployment:

  • Men-deploy cluster di OpenStack memandu Anda melakukan contoh deployment cluster hybrid di mesin virtual (VM) OpenStack. Deployment menggunakan skrip untuk menyederhanakan penginstalan. Panduan ini juga menunjukkan salah satu cara untuk mengaktifkan load balancing sebagai Layanan (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 OpenStack LBaaS, Anda tidak dapat mengubah konfigurasi untuk beralih ke resource MetalLB. Pastikan Anda menginisialisasi cluster dengan konfigurasi penyedia cloud yang benar.

  • Pastikan Anda memiliki akses ke komputer yang ingin dikonfigurasi.

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

Mengubah file konfigurasi cluster

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 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. 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 bersama dengan alamat IP.

File konfigurasi cluster contoh 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

Buat 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 cluster1 berjalan 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 menginisialisasi penyedia cloud di cluster ini.

  • kubelet berjalan dengan providerID yang Anda tentukan dalam file konfigurasi cluster.

Langkah berikutnya