Ceph est très pratique à utiliser comme stockage partagé dans les k8. Ceph est un système de stockage distribué à l'ancienne, très mature et puissant. Il prend en charge trois modes (stockage rapide, stockage de système de fichiers et stockage d'objets), alors comment utiliser dans k8s Qu'en est-il de l'utilisation de ceph ?
Rook est un outil d'orchestration de stockage cloud natif open source qui fournit une plate-forme, un cadre et un support pour diverses solutions de stockage pour une intégration native avec des environnements cloud natifs. Rook transforme le logiciel de stockage en un service de stockage auto-géré, auto-évolutif et auto-réparateur en automatisant le déploiement, le démarrage, la configuration, le provisionnement, la mise à l'échelle, les mises à niveau, les migrations, la reprise après sinistre, la surveillance et la gestion des ressources. La couche sous-jacente de Rook utilise les fonctionnalités fournies par les plates-formes de gestion, de planification et d'orchestration de conteneurs natives du cloud pour fournir ces fonctionnalités.
Rook utilise des fonctions étendues pour l'intégrer profondément dans l'environnement cloud natif et offre une expérience transparente pour la planification, la gestion du cycle de vie, la gestion des ressources, la sécurité, la surveillance, etc. Rook prend actuellement en charge Ceph, NFS, Minio Object Store et CockroachDB .
Les images utilisées pour le déploiement sont les suivantes :
Étant donné que la source de l'image est à l'étranger, elle ne peut pas être téléchargée en Chine. Ici, vous devez modifier certaines images ou télécharger des balises à l'avance. L'opération est la suivante :
cd rook/deploy/examples/
#(registry.aliyuncs.com/google_containers/<image>:<tag>),后四个镜像我FQ下
docker pull registry.aliyuncs.com/google_containers/csi-node-driver-registrar:v2.5.1
docker tag registry.aliyuncs.com/google_containers/csi-node-driver-registrar:v2.5.1 registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.5.1
docker pull registry.aliyuncs.com/google_containers/csi-snapshotter:v6.1.0
docker tag registry.aliyuncs.com/google_containers/csi-snapshotter:v6.1.0 registry.k8s.io/sig-storage/csi-snapshotter:v6.1.0
docker pull registry.aliyuncs.com/google_containers/csi-attacher:v4.0.0
docker tag registry.aliyuncs.com/google_containers/csi-attacher:v4.0.0 registry.k8s.io/sig-storage/csi-attacher:v4.0.0
docker pull registry.aliyuncs.com/google_containers/csi-resizer:v1.6.0
docker tag registry.aliyuncs.com/google_containers/csi-resizer:v1.6.0 registry.k8s.io/sig-storage/csi-resizer:v1.6.0
docker pull registry.aliyuncs.com/google_containers/csi-resizer:v1.6.0
docker tag registry.aliyuncs.com/google_containers/csi-resizer:v1.6.0 registry.k8s.io/sig-storage/csi-resizer:v1.6.0
docker pull registry.aliyuncs.com/google_containers/csi-provisioner:v3.3.0
docker tag registry.aliyuncs.com/google_containers/csi-provisioner:v3.3.0 registry.k8s.io/sig-storage/csi-provisioner:v3.3.0
② Déployer l'opérateur Rook
cd rook/deploy/examples
kubectl create -f crds.yaml -f common.yaml -f operator.yaml
# 检查
kubectl -n rook-ceph get pod
Maintenant que l'opérateur Rook est en cours d'exécution, vous pouvez ensuite créer un cluster Ceph. Afin de ne pas affecter le cluster après le redémarrage, assurez-vous que la valeur de l'attribut set dataDirHostPath est un chemin d'hôte valide :
cd rook/deploy/examples
kubectl apply -f cluster.yaml
④ Déployer l'outil Rook Ceph
cd rook/deploy/examples
kubectl create -f toolbox.yaml
⑤ Déployer le tableau de bord Ceph
cd rook/deploy/examples
kubectl apply -f dashboard-external-https.yaml
# 获取 dashboard admin密码
kubectl -n rook-ceph get secret rook-ceph-dashboard-password -o jsonpath="{['data']['password']}"| base64 -d
Afficher l'état du cluster Ceph via Ceph Dashboard :
# 查看对外端口
kubectl get svc -n rook-ceph
⑥ vérifier
kubectl get pods,svc -n rook-ceph
⑦ Afficher l'état du cluster ceph via le module d'outils ceph-tool