Local PV是从kuberntes 1.10开始引入,本质目的是为了解决hostPath的缺陷。通过PV控制器与Scheduler的结合,会对local PV做针对性的逻辑处理,从而,让Pod在多次调度时,能够调度到同一个Node上。

这次,测试了一下将local PV挂载到一个httpd的应用上。

要注意,pvc是按namespace提供的。还有,matchExpressions作匹配的主机名规则。

一,local-pv.yaml

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: local-storage
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: local-pv-sda
spec:
  capacity:
    storage: 100Gi
  accessModes:
  - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  storageClassName: local-storage
  local:
    path: /data/pv
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - spark-docker
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: local-pvc-sda
  namespace: in-demo
spec:
  accessModes:
  - ReadWriteOnce
  storageClassName: local-storage
  resources:
    requests:
      storage: 10Gi

二,httpd.yaml

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: httpd
  namespace: in-demo
spec:
  replicas: 2
  revisionHistoryLimit: 5
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 0
  template:
    metadata:
      labels:
        app: httpd-dm
    spec:
      terminationGracePeriodSeconds: 60
      restartPolicy: Always
      containers:
      - name: httpd
        image: httpd:alpine
        imagePullPolicy: IfNotPresent
        volumeMounts:
        - name: storage-localpv
          mountPath: "/usr/local/apache2/htdocs"
      volumes:
      - name: storage-localpv
        persistentVolumeClaim:
          claimName: local-pvc-sda
---
apiVersion: v1
kind: Service
metadata:
    name: httpd-svc
    namespace: in-demo
spec:
  ports:
    - name: http-port
      port: 80
      targetPort: 80
  selector:
    app: httpd-dm

最新文章

  1. magic方法的magic
  2. WCF自寄宿
  3. Java如何将html转以后的字符转化成正常显示的字符
  4. 【Windows 10 IoT - 2】LED闪烁及动画绘制(树莓派 Pi2)
  5. linux内核分析 课程总结
  6. JQery w3school学习第一章 标签的隐藏和显示
  7. IOS开发—数据库的使用
  8. 数列极限---和Gauss(取整)函数有关
  9. NOI2011 兔兔与蛋蛋游戏
  10. uva10934 Dropping water balloons
  11. android中ScrollView和GridView/ListView共存时,ScrollView不在顶部的解决方法
  12. ps-ef|grep-vgrep|grepsep|awk'{print"kill-9"$2}'|sh 这个表达式到底是什么意思啊?
  13. fs模块练习
  14. Android Multimedia框架总结(三)MediaPlayer中创建到setDataSource过程
  15. Confluence 6 配置管理员联系页面
  16. 浅谈 CSS 预处理器: 为什么要使用预处理器?
  17. Java知多少(46)try和catch的使用
  18. js仿ppt,在线演示文档:Impress.js
  19. 832. Flipping an Image
  20. Oracle中INTERSECT,MINUS,UNION,UNION ALL用法

热门文章

  1. sonatype nexus安装教程
  2. itms-services 方式安装ipa 无法连接到网址(eg. 我用的ip:172.26.167.82)
  3. .NET Core EF框架使用SQL server 2008数据库分页问题:Incorrect syntax near 'OFFSET'. Invalid usage of the option NEXT in the FETCH statement
  4. Gitlab CI/CD
  5. XMLHttpRequest原生方法
  6. Java代码质量检查checkstyle, pmd, cpd, p3c,findbugs, jacoco, sonarquebe以及和Jenkins集成
  7. 趣文:如何通过给MM修电脑培养感情[转]
  8. 关于“关于C#装箱的疑问”帖子的个人看法 (原发布csdn 2017年10月07日 10:21:10)
  9. 如何提高sql查询性能到达优化程序的目的
  10. Vuex实现状态管理