kubernetes部署常用应用

本文详细介绍了如何在Kubernetes中使用StatefulSet部署Nginx、MySQL和Redis等有状态应用,包括配置PersistentVolumeClaim、挂载NFS存储以及设置NodePort服务。同时讨论了StatefulSet相对于Deployment在有状态应用部署中的优势和配置差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Deployment部署

部署nginx

如何创建 nfs storageClass 详见link

下面是将nginx容器里的/usr/share/nginx/html挂载在nfs storageClass共享的目录下

vim nginx.yaml
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: nginx-nfs-pvc
spec:
  accessModes: [ "ReadWriteOnce" ]
  storageClassName: "nfs-storage"
  resources:
    requests:
      storage: 10Mi
---
kind: Deployment
apiVersion: apps/v1
metadata:
  name: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx
        volumeMounts:
        - name: www
          mountPath: /usr/share/nginx/html
      volumes:
        - name: www
          persistentVolumeClaim:
            claimName: nginx-nfs-pvc
---
apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  selector:
    app: nginx
  type: NodePort # service类型
  ports:
  - port: 80
    nodePort: 30001 # 指定绑定的node的端口(默认的取值范围是:30000-32767), 如果不指定,会默认分配
    targetPort: 80

应用上面的资源

kubectl apply -f nginx.yaml

查看pv与pvc

kubectl get pv && kubectl get pvc

在这里插入图片描述

查看nfs storageClass共享的目录(该目录由创建nfs storageClass的配置路径决定),我这里是/root/nfs

ls /root/nfs

在这里插入图片描述

进入上面的共享目录,创建一个index.html文件

cd default-nginx-nfs-pvc-pvc-40bb028a-f2e0-459f-8ab1-5acb4106c270
echo "hello k8s" > index.html

访问服务

curl 127.0.0.1:30001

在这里插入图片描述

部署mysql

vim mysql.yaml
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: mysql-nfs-pvc
spec:
  accessModes: [ "ReadWriteOnce" ]
  storageClassName: "nfs-storage"
  resources:
    requests:
      storage: 5Gi
---

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mysql
spec:
  replicas: 1
  selector:
    matchLabels:
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值