ホスト:
MacBook Pro(Apple M2 Max)
VMware Fusion Player バージョン 13.0.2
VM ソフトウェアとハードウェア:
ubuntu 22.04.2
4コアCPU、5Gメモリ、40Gハードドライブ
※各マシンにハードウェアリソースを割り当てることが重要であり、ホストマシンのリソース量を適切に超えると、さまざまな問題が発生します。
IP と役割 (163 はマスター、その他はノード):
192.168.19.163 k8sマスター
192.168.19.161 k8sworker3
192.168.19.162 k8sworker2
192.168.19.164 k8sworker1
k8s スイート:
Kubernetes v1.28.0
Docker バージョン 24.0.5
コンテナー.io 1.6.22
ルーク v1.12.2
1. 各マシンの時間が同期されていることを確認します。
設定リファレンス: Ubuntu で NTP 時刻同期をオンにする_ubuntu 同期時刻_現代の三流魔術師のブログ - CSDN ブログ
2. 各ワーカー ノードに RAW ディスクがあることを確認します。
VM がシャットダウンされたら、設定に「新しいハード ドライブ」を追加するだけです。
新しいハード ディスクを追加して仮想マシンを起動した後、次の lsblk -f を実行して新しいハード ディスク名を表示します。ここでの作成者は nvme0n2 です。FSTYPE 列の値が空であることに注意してください。
マスターを除く 3 つのマシンすべて (k8sworker1、k8sworker2、および k8sworker3) に新しいハードドライブがあることを確認します。
lsblk -f
3. Rook v1.12.2 ソースコードをダウンロードする
git clone --single-branch --branch v1.12.2 https://github.com/rook/rook.git
ここでダウンロードしたディレクトリは /home/zhangzhaokun/rook で、次の手順はこのディレクトリに基づいています。
4. Rook の CSI ミラー アドレスを変更する
rook/deploy/examples ディレクトリに入り、Rook の CSI ミラー アドレスを変更します。元のアドレスは registry.k8s.io ですが、中国では壁のせいでアクセスできません。registry.lank8s.cn に置き換える必要があります。
registry.lank8s.cn とは何かについては、 「Lank8s.cn とは」のドキュメントを参照してください。
cat operator.yaml |grep IMAGE
結果は次のとおりです。
改訂内容は以下のとおりです。
5.operator.yam 設定を変更する
cat operator.yaml |grep DISCOVERY
ROOK_ENABLE_DISCOVERY_DAEMON: "false"
true に変更する必要があります。
6. ルークのイメージを事前に引く
1) Operator.yaml ファイルでイメージを見つけます。
1.1) 「image:」形式の画像ファイルを見つけます。
cat operator.yaml |grep "image:"
結果は次のとおりです。
1.2) 「_IMAGE」形式の画像ファイルを見つけます。
cat operator.yaml |grep "_IMAGE"
結果は次のとおりです。
2)cluster.yaml ファイルでイメージを見つけます。
cat cluster.yaml |grep image
結果は次のとおりです。
3) 事前にcontainerd経由でイメージを取得します
ここでの速度はあなたの性格によって異なります。速度が非常に遅く失敗することもありますが、非常に速い場合もあります。速度が非常に遅い場合は、ネットワークを切り替える(モバイルから通信 WI-FI に切り替えるなど)可能性があります。大きな問題を引き起こします。
sudo ctr images pull docker.io/rook/ceph:v1.12.2
sudo ctr images pull quay.io/csiaddons/k8s-sidecar:v0.7.0
sudo ctr images pull quay.io/ceph/ceph:v17.2.6
sudo ctr images pull quay.io/cephcsi/cephcsi:v3.9.0
sudo ctr images pull registry.lank8s.cn/sig-storage/csi-node-driver-registrar:v2.8.0
sudo ctr images pull registry.lank8s.cn/sig-storage/csi-resizer:v1.8.0
sudo ctr images pull registry.lank8s.cn/sig-storage/csi-provisioner:v3.5.0
sudo ctr images pull registry.lank8s.cn/sig-storage/csi-snapshotter:v6.2.2
sudo ctr images pull registry.lank8s.cn/sig-storage/csi-attacher:v4.3.0
7. ルークをデプロイする
これは、ディレクトリ rook/deploy/examples に入った後にのみ実行されることに注意してください。
kubectl create -f crds.yaml -f common.yaml -f operator.yaml
rook-ceph 名前空間の下にあるすべてのポッドが 1/1 実行中になる必要があることに注意してください。その後、OK とみなされ、次のステップに進むことができます。
kubectl get pods -n rook-ceph
名前の準備完了ステータスが年齢を再開します
rook-ceph-operator-6ff688d999-wkhcb 1/1 実行中 2 (93 分前) 11 時間
rook-discover-86vc8 1/1 実行中 1 (3 時間 32 分前) 11 時間
rook-discover-b56f8 1/1 実行中 1 (3 時間 32 分前) 11 時間
rook-discover-djfqw 1/1 実行中 2 (93 分前) 11 時間
8.cluster.yamlを変更する
変更点その1:
useAllNodes: false
useAllDevices: false
変更 2:
Ceph で使用されるノード名とディスク名を指定すると、OSD ノードがこれらのノード上で実行されます。
nodes:
- name: "k8sworker1"
devices:
- name: "nvme0n2"
- name: "k8sworker2"
devices:
- name: "nvme0n2"
- name: "k8sworker3"
devices:
- name: "nvme0n2"
9. Ceph クラスターのデプロイ
kubectl create -f cluster.yaml
作成が完了したら、Pod のステータスを確認できます。osd-0/1/2、mon-a/b/c などの Pod は後から登場するもので、問題がある場合はステータスが異常になることが多いので注意してください。
ceph クラスターのステータスを表示します。
kubectl get cephcluster -n rook-ceph
10. ceph クライアント ツール ツールボックスをインストールする
kubectl apply -f toolbox.yaml
結果は次のとおりです。 rook-ceph-tools を見つけます。
コマンドラインを入力します:
kubectl exec -it -n rook-ceph rook-ceph-tools-84f9854d5f-cr7kt -- bash
コマンドラインで ceph のステータスを確認します。
ceph -s
ceph osd status
出力は次のとおりです。
11. ダッシュボードの展開
ダッシュボードを展開します。
kubectl create -f dashboard-external-https.yaml
サービスを見る:
kubectl get svc -n rook-ceph
結果は次のとおりです。
ホスト上の任意のワーカーにアクセスすることで、ダッシュボードにアクセスできます。
https://192.168.19.161:31052
デフォルトのユーザー名は admin で、パスワードは次のコードを通じて取得できます。
kubectl -n rook-ceph get secret rook-ceph-dashboard-password -o jsonpath="{['data']['password']}"|base64 --decode && echo
結果は次のとおりです。
a's?6XlvZk'75dc7*X[~