k8s创建部署nignx, 并挂载nfs挂载共享存储
-
nfs服务端及客户端安装
请查看我的另一篇博客:https://blog.csdn.net/weixin_44020899/article/details/107283650 -
创建pvc和pv
过程中遇到的问题
创建pvc和pv后,发现pvc一直处于pending状态,困惑许久,发现pvc中的accessModes和pv中的不一致。所以这里要注意:
storageClassName: pvc和pvc要一致。
accessModes:pvc和pvc要一致。
存储大小:pvc会匹配大小相近的进行绑定。
pvc.yaml
点击查看代码
# 创建pv
apiVersion: v1
kind: PersistentVolume
metadata:
name: pvctest
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: mytest
nfs:
path: /nfs
server: 192.168.1.14
---
# 创建pvc
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mypvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
storageClassName: mytest
- 通过deployment控制器创建pod
nginx-deploy.yaml
点击查看代码
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: nginx
name: mysql-deployment
spec:
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- ports:
- containerPort: 80
name: nginx
image: nginx:v1
imagePullPolicy: IfNotPresent
volumeMounts:
- mountPath: /usr/share/nginx/html
name: nfspv1
volumes:
- metadata:
name: nfspv1
persistentVolumeClaim:
claimName: mypvc
replicas: 1
- 创建svc,暴露端口
nginx-svc.yaml
点击查看代码
apiVersion: v1
kind: Service
metadata:
labels:
app: nginx
name: nginx-svc
spec:
ports:
- port: 80
name: server
nodePort: 30320
targetPort: 80
protocol: TCP
selector:
app: nginx
type: NodePort
说明:这里将容器中/usr/share/nginx/html挂载到nfs存储上
编辑index.html
测试访问:
在浏览器访问测试
本星球包含了海量运维、安全、设计微服务k8s、Python干货分享、提供最完整的指引,帮助你轻松掌握ChatGPT理论和实战应用场景、如何变现、如何正确使用AI!!时代赋予的机遇,你可躺平,但生活从不手软,你赚的每一分钱都是成长的变现!!赶紧抓住这个巨大的风口红利,建议跟着这个课程来学习,相信能带你成为ChatGPT、技术大师!