kubernetes掛載cephfs
1 生成ceph-secret
cat /etc/ceph/ceph.client.admin.keyring
[client.admin]
key = AQDlG99ZVJhfExAAFVT/ttJBgqOKcyY5INX5Cw==
將key base64處理
echo "AQDlG99ZVJhfExAAFVT/ttJBgqOKcyY5INX5Cw=="|base64
QVFEbEc5OVpWSmhmRXhBQUZWVC90dEpCZ3FPS2N5WTVJTlg1Q3c9PQo=
2 創建secret
cat ceph-secret.yml
apiVersion: v1
kind: Secret
metadata:
name: ceph-secret
data:
key: QVFEbEc5OVpWSmhmRXhBQUZWVC90dEpCZ3FPS2N5WTVJTlg1Q3c9PQo=
3 創建pvc
cat ceph-pvc.yml
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: cephfs
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 8Gi
4 創建pv
cat ceph-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
name: cephfs
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteMany
cephfs:
monitors:
- 192.168.100.96:6789
path: /
user: admin
secretRef:
name: ceph-secret
5 創建RC
cat app-rc.yaml
apiVersion: v1
kind: ReplicationController
metadata:
name: rc-fish
labels:
name: fish
spec:
replicas: 1
template:
metadata:
labels:
app: fish
spec:
containers:
- name: fish
image: registry:5000/fish:7.5
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
protocol: TCP
resources:
limits:
cpu: 100m
memory: 128Mi
volumeMounts:
- name: cephfs
mountPath: /var/log/nginx
volumes:
- name: cephfs
persistentVolumeClaim:
claimName: cephfs
依次創建secret,pvc,pv,RC
kubectl create -f ceph-secret.yml
kubectl create -f ceph-pvc.yml
kubectl create -f ceph-pv.yml
kubectl create -f app-rc.yaml
查看創建的secret,pvc,pv
root@mon2:~# kubectl get secrets
NAME TYPE DATA AGE
ceph-secret Opaque 1 3d
default-token-50p5c kubernetes.io/service-account-token 3 3d
root@mon2:~# kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESSMODES STORAGECLASS AGE
cephfs Bound cephfs 10Gi RWX 3d
root@mon2:~# kubectl get pv
NAME CAPACITY ACCESSMODES RECLAIMPOLICY STATUS CLAIM STORAGECLASS REASON AGE
cephfs 10Gi RWX Retain Bound default/cephfs 3d