k8s ceph静态pv 多目录 多端口

news/2024/12/1 0:34:34/

一、准备工作
k8s部署见:
https://blog.csdn.net/oToyix/article/details/117963839
ceph集群部署 见:
https://blog.csdn.net/oToyix/article/details/118307711

yaml文件两个
ceph-nginx-pv-pvc.yaml (PV、PVC定义)
nginx.yaml (Deployment、service)

k8s所有节点安装 ceph-common

yum install ceph-common -y

k8s 部署ceph Secrets

1、从ceph中拿到key值,即ceph中的/etc/ceph/ceph.client.admin.keyring文件中的key部分

cat /etc/ceph/ceph.client.admin.keyring |sed -n '$p'|awk '{print $3}'
AQAXg/dgroPcNRAAdu5nG/5NIFL+1eLLk5hTxA==

也可以

ceph auth get-key client.admin > /secret.txt

2、master中执行

scp /secret.txt root@192.168.0.47:/
kubectl create secret generic ceph-admin-secret --from-file=/secret.txt

二、部署

kubectl apply -f ceph-nginx-pv-pvc.yaml
kubectl apply -f nginx.yaml

内容见下:
cat ceph-nginx-pv-pvc.yaml

apiVersion: v1
kind: PersistentVolume
metadata:name: nginx-html-ceph-pvnamespace: defaultlabels:pv: html-ceph-pv
spec:capacity:storage: 20GaccessModes:- ReadWriteManycephfs:monitors:- 192.168.0.57:6789path: /nginx/htmluser: adminsecretRef:name: ceph-admin-secretreadOnly: falsepersistentVolumeReclaimPolicy: Retain
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: nginx-html-ceph-pvcnamespace: default
spec:accessModes:- ReadWriteManystorageClassName: ""resources:requests:storage: 10Gselector:matchLabels:pv: html-ceph-pv---
apiVersion: v1
kind: PersistentVolume
metadata:name: nginx-conf-ceph-pvnamespace: defaultlabels:pv: conf-ceph-pv
spec:capacity:storage: 20GaccessModes:- ReadWriteManycephfs:monitors:- 192.168.0.57:6789path: /nginx/conf/vhost/www.confuser: adminsecretRef:name: ceph-admin-secretreadOnly: falsepersistentVolumeReclaimPolicy: Retain---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: nginx-conf-ceph-pvcnamespace: default
spec:accessModes:- ReadWriteManystorageClassName: ""resources:requests:storage: 10Gselector:matchLabels:pv: conf-ceph-pv

cat nginx.yaml

kind: Deployment
apiVersion: apps/v1
metadata:name: nginx-v1namespace: defaultlabels:k8s-app: nginx-v1spec:replicas: 1selector:matchLabels:k8s-app: nginx-v1template:metadata:name: nginx-v1labels:k8s-app: nginx-v1spec:containers:- name: nginx-v1image: 'nginx:latest'imagePullPolicy: AlwaysvolumeMounts:- mountPath: /usr/share/nginx/htmlname: nginx-html- mountPath: /etc/nginx/conf.d/vhost/www.confname: nginx-confports:- containerPort: 80volumes:- name: nginx-htmlpersistentVolumeClaim:claimName: nginx-html-ceph-pvc- name: nginx-confpersistentVolumeClaim:claimName: nginx-conf-ceph-pvcrestartPolicy: AlwaysterminationGracePeriodSeconds: 30dnsPolicy: ClusterFirstsecurityContext: {}schedulerName: default-schedulerstrategy:type: RollingUpdaterollingUpdate:maxUnavailable: 25%maxSurge: 25%revisionHistoryLimit: 10progressDeadlineSeconds: 600---
kind: Service
apiVersion: v1
metadata:name: nginx-v1namespace: defaultlabels:k8s-app: nginx-v1spec:type: LoadBalancerports:- name: tcp-8888-81-rpxslport: 8880targetPort: 80nodePort: 30680- name: tcp-8881-80-rpxslport: 8881targetPort: 81nodePort: 30681selector:k8s-app: nginx-v1clusterIP: 10.10.214.146clusterIPs:- 10.10.214.146

查看效果:

[root@master1 ceph_jtpv]# kubectl get pod|grep nginx
nginx-v1-c8fc6c644-jsmcc   1/1     Running   0          36m
[root@master1 ceph_jtpv]# kubectl exec -it nginx-v1-c8fc6c644-jsmcc bash
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead.
root@nginx-v1-c8fc6c644-jsmcc:/#     
root@nginx-v1-c8fc6c644-jsmcc:/# ls /usr/share/nginx/html/
index.html
root@nginx-v1-c8fc6c644-jsmcc:/# ls /etc/nginx/conf.d/vhost/
www.conf
root@nginx-v1-c8fc6c644-jsmcc:/# 
root@nginx-v1-c8fc6c644-jsmcc:/# exit
exit
[root@master1 ceph_jtpv]# curl 192.168.0.47:30680
ceph

----------------------------end


http://www.ppmy.cn/news/562411.html

相关文章

严重: Error starting endpoint java.lang.Exception: Socket bind failed: [730048] ?????????×???(Э?é/????

前几天就发现这么一个问题,但是一直懒得解决~ 严重: Error initializing endpoint java.lang.Exception: Socket bind failed: [730048] ????????????(Э?/???????/???)??????at org.apache.tomcat.util.net.AprEndpoint.init(AprEnd…

JMS

1. JMS基本概念 JMS(Java Message Service) 即Java消息服务。它提供标准的产生、发送、接收消息的接口简化企业应用的开发。它支持两种消息通信模型:点到点(point-to-point)(P2P)模型和发布/订阅(Pub/…

JSM

JSM学习笔记(只是为了记录just for 随记) 一、jsm:(java message service )java 消息服务,用于两个应用程序之间或者分布式系统之间进行消息的异步收发,是一个与具体平台无关的API,类似于JDBC(…

jsc

之前发现一个神器,js代码测试脱离浏览器,mac终端也可以做到 调试js的时候,一般都是用浏览器的开发者工具,这里给大家推荐另外一种,抛开浏览器,在终端执行的方式,Mac内置了一个javascript控制台程序&#xf…

国内各大知名公司薪酬 - zz

公司名   本科月薪  本科年薪   硕士月薪  硕士年薪  补充 北京微软  8000                  10(税后)  研究院助理 研究院 http://www.microsoft.com/china/ ibm研究院              10000    12-15 http://www-900.ibm…

Java --- JUC之JMM

目录 一、JMM的定义 二、JMM三大特性 2.1、可见性 2.2、原子性 2.3、有序性 三、多线程对变量的读写过程 四、happens-before 4.1、happens-before总原则 五、happens-before八条原则 5.1、次序规则 5.2、锁定规则 5.3、volatile变量规则 5.4、传递规则 5.5、线程…

cadence从原理图到pcb

完成原理图设计后,需要进行如下步骤才能开始画PCB: 原理图规制检测(DRC)生成网表新建PCB文件,设置封装路径导入网表设置原点和栅格绘制PCB板框将器件导入PCB 原理图规制检测(DRC) 选中原理图文件,运行Tools->Design Rules C…

Excel管理工具简陋但强大 vs 雷军为何说“没有设计是最好的设计

解密:雷军为何说“没有设计是最好的设计” 雷军洗白:没有刻意的设计才是最好的设计! 有的人开发了10个到50个,甚至几百个Excel管理工具。每个工具里面有VBA代码几千行。 还有个高手,趁过年一个月左右时间完成一个公司用…