基于kubeoperator安装k8s集群,如果存储选择rook ceph。安装完成以后存储的默认副本数量为3。
对于存储空间有限的测试环境需要将副本数量处理调整,可以换成host-volume或其副本数量设置为1。
下面给出修改rook ceph副本数量的方法。
参考Rook Docs文档,创建一个pod。
- 定义pod
apiVersion: v1
kind: Pod
metadata:
name: rook-ceph-tools
namespace: rook-ceph
spec:
dnsPolicy: ClusterFirstWithHostNet
containers:
- name: rook-ceph-tools
image: rook/ceph-toolbox:v0.8.3
imagePullPolicy: IfNotPresent
env:
- name: ROOK_ADMIN_SECRET
valueFrom:
secretKeyRef:
name: rook-ceph-mon
key: admin-secret
securityContext:
privileged: true
volumeMounts:
- mountPath: /dev
name: dev
- mountPath: /sys/bus
name: sysbus
- mountPath: /lib/modules
name: libmodules
- name: mon-endpoint-volume
mountPath: /etc/rook
hostNetwork: false
volumes:
- name: dev
hostPath:
path: /dev
- name: sysbus
hostPath:
path: /sys/bus
- name: libmodules
hostPath:
path: /lib/modules
- name: mon-endpoint-volume
configMap:
name: rook-ceph-mon-endpoints
items:
- key: data
path: mon-endpoints
- 创建pod
kubectl create -f toolbox.yaml
- 进入pod中
kubectl -n rook-ceph exec -it $(kubectl -n rook-ceph get pod -l "app=rook-ceph-tools" -o jsonpath='{.items[0].metadata.name}') bash
- 在容器中修改副本数量
#查看ceph osd存储池
ceph osd lspools
#获取对应某个存储池的副本数量
ceph osd pool get ${POOL-NAME} size
#设计对应某个存储池的副本数量为1
ceph osd pool set ${POOL-NAME} size 1
修改完成以后,通过ceph manager确认一下副本数量修改是否生效。
image.png
- 注:
自定义configmap rook-config-override中的config,会自动挂载到ceph pod中为/etc/ceph/ceph.conf,达到自定义配置目的。
kubectl -n rook-ceph edit configmap rook-config-override -o yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: rook-config-override
namespace: rook-ceph
data:
config: |
[global]
osd pool ${POOL-NAME} size = 1
网友评论