Sovereign Cloud Stack

Eine Plattform — standardisiert, entwickelt und betrieben von Vielen.

Ceph-Bereitstellung mit Rook

Rafael te Boekhorst 14. Oktober 2024

Ceph-Bereitstellung mit Rook

Da ceph-ansible nun veraltet ist, unterstützt die SCS Referenzimplementierung jetzt die Bereitstellung von Ceph mithilfe von Rook, einem “graduated-level cloud-native project”.

OSISM-Referenzimplementierung

In OSISM wird Rook mit den offiziell empfohlenen Helm Charts. bereitgestellt. Ansible wird verwendet, um die Helm-Charts sowohl für den Rook Operator als auch für die Rook Custom Resoruce Definitions (CRD’s) zu installieren.

Die Rook-Bereitstellung wurde auch in das OSISM-Testbed integriert. Wenn Sie ein laufendes Testbed haben, können Sie sich mit make login einloggen und die verschiedenen OSISM-Befehle im Zusammenhang mit Rook anzeigen, indem Sie osism apply eingeben:

dragon@testbed-manager:/opt/configuration/scripts/deploy$ osism apply | grep rook
| rook                                                             | rook           |
| rook-cleanup                                                     | rook           |
| rook-crd                                                         | rook           |
| rook-fetch-keys                                                  | rook           |
| rook-helm                                                        | rook           |
| rook-operator                                                    | rook           |

Um ein minimal funktionsfähigen Rook-Cluster auf dem Testbed zu installieren, können Sie das Hilfsskript unter /opt/configuration/scripts/deploy/100-rook-services.sh, verwenden. Dieses Skript automatisiert die Installation von k3s und führt dann die folgenden Befehle aus:

osism apply rook-operator
osism apply rook
osism apply rook-fetch-keys

# Dies informiert die cephclient-Rolle, welcher Clienttyp installiert werden soll.
echo "cephclient_install_type: rook" >> /opt/configuration/environments/infrastructure/configuration.yml
osism apply cephclient

Hinweis: Der Ceph-Client in OSISM ist speziell für Rook konfiguriert. Es handelt sich um eine kleine Rolle, die sicherstellt, dass nur der Rook-Client eingerichtet wird.

Konfiguration

Rook kann durch Bearbeiten der Variablen für das Helm-Chart in der Datei environments/rook/configuration.yml konfiguriert werden. Weitere Informationen zu den verschiedenen Konfigurationsoptionen finden Sie in derSCS-Konfigurationsdokumentation.

Das OSISM-Testbed stellt auf dem Manager-Knoten die folgende Standardkonfigurationsdatei unter /opt/configuration/environments/rook/config.yml bereit:

---
rook_network_public: "192.168.16.0/20"
rook_storage_devicefilter: "^sd[b-c]"
rook_storage_nodes:
  - name: "testbed-node-0"
  - name: "testbed-node-1"
  - name: "testbed-node-2"
## reduce resources to fit into testbed
rook_resources_cephfilesystem:
  limits:
    memory: "4Gi"
  requests:
    cpu: "500m"
    memory: "4Gi"
rook_resources_cephobjecstore:
  limits:
    memory: "2Gi"
  requests:
    cpu: "500m"
    memory: "1Gi"
## set to true to enable monitoring
# rook_monitoring_enabled: true
## set to true to enable cleanup
# rook_cleanup: true

Über den Autor

Rafael Boekhorst
Junior Software Developer @ B1 Systems GmbH
Rafael is a Junior Software Developer with an interest in Open Source Software Development and Linux.