K8S 使用cephfs 作为持久化存储

1、查看ceph的key
#进入ceph集群的管理主机

ceph auth get-key client.admin | base64

#得到这个串,下面使用

2、k8s里面添加一个密码
c

at <<eof >ceph-secret.yaml
apiVersion: v1
kind: Secret
metadata:
  name: ceph-secret
data:
  key: 这里输入上面得到的串
eof
kubectl apply -f ceph-secret.yaml #添加密码

3、K8S里面添加一个PV(持久存储盘)

cat <<eof >test-pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: test-pv
spec:
  capacity:
    storage: 2Gi
  accessModes:
    - ReadWriteMany
  cephfs:
    monitors:
      - 10.41.10.81:6789,10.41.10.82:6789,10.41.10.83:6789
    path: /
    user: admin
    readOnly: false
    secretRef:
      name: ceph-secret
  persistentVolumeReclaimPolicy: Recycle
eof
kubectl apply -f test-pv.yaml #添加一个PV

4、K8S里面添加一个PVC(持久存储盘声明)

cat <<eof >test-pvc.yaml
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: test-pvc3
spec:
  accessModes:
    - ReadWriteMany
  volumeName: test-pv
  resources:
    requests:
      storage: 2Gi
eof      
kubectl apply -f test-pvc.yaml #添加PVC

5、K8S里面添加一个部署

cat <<eof > test-centos
apiVersion: apps/v1
kind: Deployment
metadata:
  name: test-centos
spec:
  replicas: 1
  selector:
    matchLabels:
      app: test-centos
  template:
    metadata:
      labels:
        app: test-centos
    spec:
      containers:
      - name: test-centos
        image: 10.41.10.81:5000/centos
        command: ["/bin/sh"]
        args: ["-c","while true;do echo hello;sleep 1000;done"]
        volumeMounts:
          - mountPath: "/data"
            name: data
      volumes:
        - name: data
          persistentVolumeClaim:
            claimName: test-pvc3
eof
kubectl apply -f test-centos.yaml   #添加部署         

4、测试

kubectl get pods
kubectl exec -it test-centos-7c7bd5c9b4-6fc5w /bin/sh #进入已经运行的pod

进入Pod

#以下内容在pod里面执行
cd /data
touch test
touch 20200414
exit

进入ceph的管理节点

#以下内容在ceph集群的管理服务器上运行
cd /ceph #这个目录是已经挂载的ceph目录,挂载方法见另外一篇文章
ls

#这里会看到刚刚新建的两个文件,说明我们的操作是符合预期的。

你可能感兴趣的:(IT运维,K8S,Linux)