Ceph Mimicバージョンでは、MDSの安定性など多くの改善と最適化が行われています。KubernetesクラスタでCephを使用する際には、特にCephFSが必要となり、そのためMDSの安定性が求められます。したがって、この記事ではCeph Mimicバージョンを使用してクラスタを構築します。
Mimicバージョンの詳細なアップデートについては以下のリンクをご覧ください:
Ceph Mimic リリースノート
クラスタのデプロイ
Kubernetesクラスタのセットアップが完了したら、次にCephクラスタの構成を行います。
| ホスト名 | IPアドレス | 役割 | OS |
|---|---|---|---|
| master01 | 192.168.1.188 | mon/osd/mgr | CentOS 7.5最小インストール |
| master02 | 192.168.1.189 | mon/osd/mgr | CentOS 7.5最小インストール |
| master03 | 192.168.1.191 | mon/osd/mgr | CentOS 7.5最小インストール |
| node-01 | 192.168.1.193 | osd | CentOS 7.5最小インストール |
2.1 基本的な環境設定
2.1.1 ファイアウォールの停止とSELinuxの無効化
すべてのノードで実行してください:
[root@master01 ~]# systemctl stop firewalld
[root@master01 ~]# systemctl disable firewalld
[root@master01 ~]# sed -i 's/enforcing/disabled/' /etc/selinux/config
[root@master01 ~]# setenforce 0
2.1.2 NTPの設定
すべてのノードで実行してください:
[root@master01 ~]# yum install ntp ntpdate -y
[root@master01 ~]# timedatectl set-ntp yes
2.1.3 /etc/hostsの編集
[root@master01 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.185 cluster.kube.com
192.168.1.188 master01
192.168.1.189 master02
192.168.1.191 master03
192.168.1.193 node01
2.1.4 SSHのパスワードレスアクセス設定
[root@master01 ~]# ssh-keygen # Enterキーを押し続ける
[root@master01 ~]# ssh-copy-id root@192.168.1.188
2.2 Cephのインストール(全てのノード)
2.2.1 CephのYumリポジトリ設定
[root@master01 ~]# cat /etc/yum.repos.d/ceph.repo
[Ceph]
name=Ceph packages for $basearch
baseurl=http://download.ceph.com/rpm-mimic/el7/$basearch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
[Ceph-noarch]
name=Ceph noarch packages
baseurl=http://download.ceph.com/rpm-mimic/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
[ceph-source]
name=Ceph source packages
baseurl=http://download.ceph.com/rpm-mimic/el7/SRPMS
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
2.2.2 EPELリポジトリのインストール
[root@master01 ~]# yum install -y epel-release
2.2.3 Cephおよびceph-deployのインストール
[root@master01 ~]# yum install -y ceph ceph-deploy
2.2.4 Cephのバージョン確認
[root@master01 ~]# ceph -v
ceph version 13.2.4 (b10be4d44915a4d78a8e06aa31919e74927b142e) mimic (stable)
2.3 MONサービスのデプロイ(デプロイノードのみ)
[root@master01 ~]# cd /etc/ceph
# 3つのMONノードを作成
[root@master01 ceph]# ceph-deploy new master01 master02 master03
# MONの初期化
[root@master01 ceph]# ceph-deploy mon create-initial
2.4 MGRサービスのデプロイ
[root@master01 ~]# cd /etc/ceph
[root@master01 ceph]# ceph-deploy mgr create master01 master02 master03
# 構成ファイルを全クラスタノードに同期
[root@master01 ceph]# ceph-deploy admin master01 master02 master03 node01
2.5 OSDサービスのデプロイ
[root@master01 ~]# cd /etc/ceph
# OSDとして使用するディスクをフォーマット
[root@master01 ceph]# ceph-deploy disk zap master01 /dev/sdb
[root@master01 ceph]# ceph-deploy osd create --data /dev/sdb master01
2.6 Dashboardの有効化
[root@master01 ~]# ceph mgr module enable dashboard # Dashboardの有効化
[root@master01 ~]# ceph dashboard create-self-signed-cert
[root@master01 ~]# ceph dashboard set-login-credentials admin admin # 管理者ユーザー作成
[root@master01 ~]# ceph mgr services # サービスの確認
2.7 MDSサービスのデプロイ
[root@master01 ~]# cd /etc/ceph
[root@master01 ceph]# ceph-deploy mds create master01 master02 master03
2.8 ファイルシステムの作成
# データプールの作成
[root@master01 ~]# ceph osd pool create datapool 256 256
# メタデータプールの作成
[root@master01 ~]# ceph osd pool create metapool 256 256
# ファイルシステムの作成
[root@master01 ~]# ceph fs new cephfs metapool datapool
2.9 クラスタサービスの確認
[root@master01 ~]# ceph -s
cluster:
id: 087099a6-b310-40ac-8631-9d3436141f66
health: HEALTH_OK
services:
mon: 3 daemons, quorum master01,master02,master03
mgr: master01(active), standbys: master02, master03
mds: cephfs-1/1/1 up {0=master03=up:active}, 2 up:standby
osd: 8 osds: 8 up, 8 in
data:
pools: 2 pools, 512 pgs
objects: 22 objects, 2.2 KiB
usage: 8.0 GiB used, 272 GiB / 280 GiB avail
pgs: 512 active+clean