@作者:閆乾苓
文章目錄
- 4.4.3 部署seaweedfs集群
- 4.4.4 驗證集群運行狀態
- 4.4.5 測試集群功能
4.4.3 部署seaweedfs集群
集群Yaml示例
apiVersion: seaweed.seaweedfs.com/v1
kind: Seaweed
metadata:name: seaweed1namespace: default
spec:image: chrislusf/seaweedfs:latestvolumeServerDiskCount: 1master:replicas: 3volumeSizeLimitMB: 1024volume:replicas: 3requests:storage: 5GistorageClassName: "local-storage"filer:replicas: 2s3: true # 啟用S3 API persistence:enabled: truestorageClassName: "local-storage"resources:requests:storage: 2Giconfig: |[leveldb2]enabled = truedir = "/data/filerldb2"# S3相關配置可以在這里添加 [s3]enabled = true
報錯提示,crd中filer.persistence沒有這個字段:
kubectl apply -f cluster_seaweedfs.yaml
error: error validating "cluster_seaweedfs.yaml": error validating data: ValidationError(Seaweed.spec.filer): unknown field "persistence" in com.seaweedfs.seaweed.v1.Seaweed.spec.filer; if you choose to ignore these errors, turn validation off with --validate=false
需要部署最新的crd yaml
Kubectl apply -f seaweedfs-operator/config/crd/bases/seaweed.seaweedfs.com_seaweeds.yaml
重新部署集群:
[root@master cluster]# kubectl apply -f cluster_seaweedfs.yaml
seaweed.seaweed.seaweedfs.com/seaweed1 created
4.4.4 驗證集群運行狀態
查看pod 運行狀態:
[root@master cluster]# kubectl get pod
NAME READY STATUS RESTARTS AGE
seaweed1-filer-0 1/1 Running 0 2m39s
seaweed1-filer-1 1/1 Running 0 2m39s
seaweed1-master-0 1/1 Running 1 (3m8s ago) 3m12s
seaweed1-master-1 1/1 Running 1 (3m8s ago) 3m12s
seaweed1-master-2 1/1 Running 2 (2m51s ago) 3m12s
seaweed1-volume-0 1/1 Running 1 (2m30s ago) 2m39s
seaweed1-volume-1 1/1 Running 1 (2m30s ago) 2m39s
seaweed1-volume-2 1/1 Running 3 (99s ago) 2m39s
seaweedfs-operator-5c44d464cc-7bl8g 1/1 Running 0 132m
查看pvc狀態,STATUS顯示正常應該都為Bound 狀態
[root@master cluster]# kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
mount0-seaweed1-volume-0 Bound seaweedfs-volume-pv-2 5Gi RWO local-storage 4m57s
mount0-seaweed1-volume-1 Bound seaweedfs-volume-pv-1 5Gi RWO local-storage 4m57s
mount0-seaweed1-volume-2 Bound seaweedfs-volume-pv-3 5Gi RWO local-storage 4m57s
seaweed1-filer-seaweed1-filer-0 Bound seaweedfs-filer-pv-2 2Gi RWO local-storage 4m57s
seaweed1-filer-seaweed1-filer-1 Bound seaweedfs-filer-pv-1 2Gi RWO local-storage 4m57s
查看pv, STATUS 顯示正常應該都為Bound 狀態
[root@master cluster]# kubectl get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
seaweedfs-filer-pv-1 2Gi RWO Retain Bound default/seaweed1-filer-seaweed1-filer-1 local-storage 8m18s
seaweedfs-filer-pv-2 2Gi RWO Retain Bound default/seaweed1-filer-seaweed1-filer-0 local-storage 8m18s
seaweedfs-volume-pv-1 5Gi RWO Retain Bound default/mount0-seaweed1-volume-1 local-storage 8m18s
seaweedfs-volume-pv-2 5Gi RWO Retain Bound default/mount0-seaweed1-volume-0 local-storage 8m18s
seaweedfs-volume-pv-3 5Gi RWO Retain Bound default/mount0-seaweed1-volume-2 local-storage 8m18s
svc默認都為ClusterIP類型,為方便使用,本例將master和filer改為NodePort類型(修改過程略),修改后查看svc的狀態如下:
[root@master cluster]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 11d
seaweed1-filer NodePort 10.101.219.113 <none> 8888:32082/TCP,18888:30125/TCP,8333:32697/TCP 12m
seaweed1-filer-peer ClusterIP None <none> 8888/TCP,18888/TCP,8333/TCP 12m
seaweed1-master NodePort 10.100.21.71 <none> 9333:30145/TCP,19333:32207/TCP 12m
seaweed1-master-peer ClusterIP None <none> 9333/TCP,19333/TCP 12m
seaweed1-volume-0 ClusterIP 10.103.109.209 <none> 8444/TCP,18444/TCP 12m
seaweed1-volume-1 ClusterIP 10.103.155.224 <none> 8444/TCP,18444/TCP 12m
seaweed1-volume-2 ClusterIP 10.104.119.13 <none> 8444/TCP,18444/TCP 12m
seaweed1-volume-peer ClusterIP None <none> 8444/TCP,18444/TCP 12m
seaweedfs-operator ClusterIP 10.101.55.140 <none> 8080/TCP 142m
seaweedfs-operator-webhook ClusterIP 10.106.70.105 <none> 443/TCP 142m 137m
4.4.5 測試集群功能
瀏覽器訪問master webUI查看集群運行信息:
瀏覽器訪問filer webUI 測試filer文件管理(上傳,下載,創建目錄,刪除)測試
查看k8s node 節點pv映射的數據目錄,已經有數據寫入。
[root@node1 data]# ls seaweedfs-filer-pv-data/ seaweedfs-volume-pv-data/ -l
seaweedfs-filer-pv-data/:
總用量 4
drwxr-xr-x 10 root root 4096 7月 3 15:58 filerldb2seaweedfs-volume-pv-data/:
總用量 41012
-rw-r--r-- 1 root root 25166344 7月 3 16:14 1.dat
-rw-r--r-- 1 root root 96 7月 3 16:14 1.idx
-rw-r--r-- 1 root root 146 7月 3 16:13 1.vif
-rw-r--r-- 1 root root 16802960 7月 3 16:14 3.dat
-rw-r--r-- 1 root root 112 7月 3 16:14 3.idx
-rw-r--r-- 1 root root 146 7月 3 16:13 3.vif
-rw-r--r-- 1 root root 36 7月 3 15:57 vol_dir.uuid
使用aws cli測試S3 服務。
Operator部署的集群默認沒有配置Accessid和Accesskey,所以配置為空即可。
aws configure
AWS Access Key ID [****************ykey]:
AWS Secret Access Key [****************cret]:
Default region name [us-east-1]:
Default output format [None]:
創建bucket和上傳文件測試:
[root@node3 ~]# aws --endpoint-url=http://192.168.61.21:32697 s3 ls
[root@node3 ~]# aws --endpoint-url=http://192.168.61.21:32697 s3 mb s3://test-bucket
make_bucket: test-bucketecho aaa > file01.txt
[root@node3 ~]# aws --endpoint-url=http://192.168.61.21:32697 s3 cp file01.txt s3://test-bucket/
upload: ./file01.txt to s3://test-bucket/file01.txt
filer webUI 同步顯示bucket和文件已經上傳。