前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >k8s安装nginx进阶版

k8s安装nginx进阶版

作者头像
summerking
发布2022-09-19 10:30:23
2830
发布2022-09-19 10:30:23
举报
文章被收录于专栏:summerking的专栏

进阶版部署nginx,使用nfs持久化nginx的 html 和 log 文件

# 1.搭建NFS储存

这里不赘述

# 2.创建nginx的configMap

代码语言:javascript
复制
[root@master ~]# kubectl create configmap nginx-configmap --from-file=${DIR}/nginx/conf/nginx.conf
configmap/confnginx created
# 查看是否创建成功
[root@master ~]# kubectl get configmap 
NAME               DATA   AGE
nginx-configmap    1      23s

# 3.创建PV和PVC

  • pv.yml

点击查看

代码语言:javascript
复制
---
apiVersion: v1
kind: PersistentVolume
metadata: 
  name: nhtml-pv
  labels: 
    pv: nhtml-pv
spec: 
  accessModes: 
    - ReadWriteOnce
  capacity: 
    storage: 2Gi
  persistentVolumeReclaimPolicy: Retain
  storageClassName: nfs
  nfs: 
    path: "/home/summer/nginx/html"
    server: 192.168.0.96

---

apiVersion: v1
kind: PersistentVolume
metadata: 
  name: nlog-pv
  labels: 
    pv: nlog-pv
spec: 
  accessModes: 
    - ReadWriteOnce
  capacity: 
    storage: 2Gi
  persistentVolumeReclaimPolicy: Retain
  storageClassName: nfs
  nfs: 
    path: "/home/summer/nginx/log"
    server: 192.168.0.96

  • pvc.yml

点击查看

代码语言:javascript
复制
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata: 
  name: nhtml-pvc
spec: 
  accessModes: 
    - ReadWriteOnce       
  resources: 
    requests: 
      storage: 1Gi
  storageClassName: nfs  
  selector: 
    matchLabels: 
      pv: nhtml-pv
  
---

kind: PersistentVolumeClaim
apiVersion: v1
metadata: 
  name: nlog-pvc
spec: 
  accessModes: 
    - ReadWriteOnce       
  resources: 
    requests: 
      storage: 1Gi
  storageClassName: nfs 
  selector: 
    matchLabels: 
      pv: nlog-pv 

  • service.yml

点击查看

代码语言:javascript
复制
apiVersion: v1
kind: Service
metadata:
  name: nginx
  labels:
      app: nginx
spec:
  type: NodePort
  ports:
    - port: 80
      targetPort: 80
      nodePort: 2080
  selector:
    app: nginx

  • pod.yml

点击查看

代码语言:javascript
复制
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: nginx
  labels:
    name: nginx
spec:
  serviceName: nginx
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: k8snginx:v1
        imagePullPolicy: Never
        resources:
          limits:
            cpu: 450m
            memory: 4048Mi
          requests:
            cpu: 400m
            memory: 4048Mi
        env:
          - name: TZ
            value: Asia/Shanghai        
        ports:
        - containerPort: 80
        volumeMounts:
        - mountPath: /usr/local/nginx/conf/nginx.conf
          name: vol-conf
          subPath: nginx.conf
        - mountPath: /usr/local/nginx/logs/
          name: vol-log
        - mountPath: /usr/local/nginx/html/
          name: vol-html
      volumes:                                                                                                                                                                                           
      - name: vol-conf
        configMap:
          name: nginx-configmap
      - name: vol-log
        persistentVolumeClaim: 
          claimName: nlog-pvc       
      - name: vol-html
        persistentVolumeClaim: 
          claimName: nhtml-pvc         

# 4.执行yml文件

注意顺序,一般先创建PV,然后PVC申请PV资源,再创建服务与pod

代码语言:javascript
复制
[root@master ~]# kubectl create -f  ${DIR}/nginx/pv.yml
[root@master ~]# kubectl create -f  ${DIR}/nginx/pvc.yml
[root@master ~]# kubectl create -f  ${DIR}/nginx/service.yml
[root@master ~]# kubectl create -f  ${DIR}/nginx/pod.yml

# 5.验证

代码语言:javascript
复制
[root@master]# kubectl get svc
NAME            TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)           AGE
nginx           NodePort    10.111.91.64     <none>        80:2080/TCP       23h
[root@master]# kubectl get pods
NAME                     READY   STATUS    RESTARTS   AGE
nginx-0                  1/1     Running   0          23h
[root@master]# kubectl get configmap
NAME                    DATA   AGE
nginx-configmap         1      5d23h
[root@master]# kubectl get pv
NAME       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM               STORAGECLASS   REASON   AGE
nhtml-pv   2Gi        RWO            Retain           Bound    default/nhtml-pvc   nfs                     3h
nlog-pv    2Gi        RWO            Retain           Bound    default/nlog-pvc    nfs                     3h
[root@master]# kubectl get pvc
NAME        STATUS   VOLUME     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
nhtml-pvc   Bound    nhtml-pv   2Gi        RWO            nfs            3h
nlog-pvc    Bound    nlog-pv    2Gi        RWO            nfs            3h
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-10-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • # 1.搭建NFS储存
  • # 2.创建nginx的configMap
  • # 3.创建PV和PVC
  • # 4.执行yml文件
  • # 5.验证
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档