欢迎关注我的公众号:

目前刚开始写一个月,一共写了18篇原创文章,文章目录如下:

istio多集群探秘,部署了50次多集群后我得出的结论

istio多集群链路追踪,附实操视频

istio防故障利器,你知道几个,istio新手不要读,太难!

istio业务权限控制,原来可以这么玩

istio实现非侵入压缩,微服务之间如何实现压缩

不懂envoyfilter也敢说精通istio系列-http-rbac-不要只会用AuthorizationPolicy配置权限

不懂envoyfilter也敢说精通istio系列-02-http-corsFilter-不要只会vs

不懂envoyfilter也敢说精通istio系列-03-http-csrf filter-再也不用再代码里写csrf逻辑了

不懂envoyfilter也敢说精通istio系列http-jwt_authn-不要只会RequestAuthorization

不懂envoyfilter也敢说精通istio系列-05-fault-filter-故障注入不止是vs

不懂envoyfilter也敢说精通istio系列-06-http-match-配置路由不只是vs

不懂envoyfilter也敢说精通istio系列-07-负载均衡配置不止是dr

不懂envoyfilter也敢说精通istio系列-08-连接池和断路器

不懂envoyfilter也敢说精通istio系列-09-http-route filter

不懂envoyfilter也敢说精通istio系列-network filter-redis proxy

不懂envoyfilter也敢说精通istio系列-network filter-HttpConnectionManager

不懂envoyfilter也敢说精通istio系列-ratelimit-istio ratelimit完全手册

————————————————

storage:

pv pvc sc之间的关系

pv:

•PV全称叫做Persistent Volume,持久化存储卷。它是用来描述或者说用来定义一个存储卷的,这个通常都是有运维或者数据存储工程师来定义。

Volume类型:

•Kubernetes提供了众多的volume类型,包括emptyDir、hostPath、gcePersistentDisk、awsElasticBlockStore、gitRepo、secret、nfs、iscsi、glusterfs、persistentVolumeClaim、rbd、flexVolume、cinder、cephfs、flocker、downwardAPI、fc、azureFile、configMap、vsphereVolume等

pv类型:

accessModes:

accessModes:支持三种类型

•ReadWriteMany 多路读写,卷能被集群多个节点挂载并读写

•ReadWriteOnce 单路读写,卷只能被单一集群节点挂载读写

•ReadOnlyMany 多路只读,卷能被多个集群节点挂载且只能读

persistentVolumeReclaimPolicy:

也有三种策略,这个策略是当与之关联的PVC被删除以后,这个PV中的数据如何被处理

•Retain 当删除与之绑定的PVC时候,这个PV被标记为released(PVC与PV解绑但还没有执行回收策略)且之前的数据依然保存在该PV上,但是该PV不可用,需要手动来处理这些数据并删除该PV。

•Delete 当删除与之绑定的PVC时候

•Recycle 这个在1.14版本中以及被废弃,取而代之的是推荐使用动态存储供给策略,它的功能是当删除与该PV关联的PVC时,自动删除该PV中的所有数据

pvc:

•PVC 的全称是:PersistentVolumeClaim(持久化卷声明),PVC 是用户存储的一种声明,PVC 和 Pod 比较类似,Pod 消耗的是节点,PVC 消耗的是 PV 资源,Pod 可以请求 CPU 和内存,而 PVC 可以请求特定的存储空间和访问模式。对于真正使用存储的用户不需要关心底层的存储实现细节,只需要直接使用 PVC 即可。

Pv&pvc绑定:

这个PVC就会和上面的PV进行绑定,为什么呢?它有一些原则:

•PV和PVC中的spec关键字段要匹配,比如存储(storage)大小。

•PV和PVC中的storageClassName字段必须一致

•1.当pv的容量大于pvc的需求时,pvc可以成功自动绑定pv;

•2.当pv的容量小于pvc的需求时,pvc无法绑定该pv;

•3.pv和pvc的绑定关系是一一对应的.

•4.pv/pvc的创建顺序是:pv -> pvc -> pod

•5.pv/pvc的销毁顺序是:pod -> pvc -> pv,顺序一定不要错

storageClass:

Kubernetes集群管理员通过提供不同的存储类,可以满足用户不同的服务质量级别、备份策略和任意策略要求的存储需求。动态存储卷供应使用StorageClass进行实现,其允许存储卷按需被创建。如果没有动态存储供应,Kubernetes集群的管理员将不得不通过手工的方式类创建新的存储卷。通过动态存储卷,Kubernetes将能够按照用户的需要,自动创建其需要的存储。

emptyDir:

•emptyDir类型的volume在pod分配到node上时被创建,kubernetes会在node上自动分配 一个目录,因此无需指定宿主机node上对应的目录文件。这个目录的初始内容为空,当Pod从node上移除时,emptyDir中的数据会被永久删除。

•emptyDir Volume主要用于某些应用程序无需永久保存的临时目录,多个容器的共享目录等。

apiVersion: v1
kind: Pod
metadata:name: emptydir-pv
spec:containers:- name: tomcatimage: tomcat:9imagePullPolicy: IfNotPresentports:- containerPort: 8080volumeMounts:- name: app-logsmountPath: /usr/local/tomcat/logs- name: busyboximage: busybox:latestimagePullPolicy: IfNotPresentcommand: ["sh", "-c", "tail -f /logs/catalina*.log"]volumeMounts:- name: app-logsmountPath: /logsvolumes:- name: app-logsemptyDir: {}

hostPath:

apiVersion: v1
kind: Pod
metadata:name: mypod
spec:containers:- image: nginxname: mynginxvolumeMounts:- mountPath: /usr/share/nginx/htmlname: htmlvolumes:- name: htmlhostPath:path: /datatype: DirectoryOrCreate

Type:

configmap:

apiVersion: v1
data:myapp.conf: |server {listen       8080;server_name  myapp.test;location / {root   /usr/share/nginx/html;index  index.html index.htm;}}
kind: ConfigMap
metadata:name: nginx-config
---apiVersion: v1
kind: Pod
metadata:name: nginxlabels:app: myapptier: frontend
spec:containers:- name: myappimage: nginxports: - name: httpcontainerPort: 80volumeMounts:- name: nginxconfmountPath: /etc/nginx/conf.d/readOnly: truevolumes:- name: nginxconfconfigMap:name: nginx-config

cecret:

apiVersion: v1
kind: Pod
metadata:name: secret-pv
spec:containers:- name: test-containerimage: nginxvolumeMounts:- name: secret-volumemountPath: /etc/secret-volumevolumes:- name: secret-volumesecret:secretName: test-secret

local:

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:name: local-storage
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
---
apiVersion: v1
kind: PersistentVolume
metadata:name: example-pvlabels:pv: mypv
spec:capacity:storage: 2GivolumeMode: FilesystemaccessModes:- ReadWriteOncepersistentVolumeReclaimPolicy: DeletestorageClassName: local-storagelocal:path: /data/vol1nodeAffinity:required:nodeSelectorTerms:- matchExpressions:- key: kubernetes.io/hostnameoperator: Invalues:- 192.168.198.155
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:name: my-pvc
spec:accessModes:- ReadWriteOnce storageClassName: local-storageresources:requests:storage: 1Gi
#  selector:
#    matchLabels:
#      pv: mypv---
apiVersion: v1
kind: Pod
metadata:name: local-pv
spec:containers:- name: test-containerimage: nginxvolumeMounts:- name: local-volumemountPath: /usr/share/nginx/htmlvolumes:- name: local-volumepersistentVolumeClaim:claimName: my-pvc

nfs:

yum -y install rpcbind nfs-utils
vim /etc/exports
/nfs 192.168.198.0/24(rw,no_root_squash,no_all_squash,sync)
exportfs  -rv
systemctl start rpcbind systemctl start nfs
mount  -t nfs 192.168.198.156:/nfs /mnt
Chmod 755 /usr/share/nginx/htmlapiVersion: v1
kind: PersistentVolume
metadata:name: nfs-pv001labels:name: nfs-pv001storetype: nfs
spec:storageClassName: normalaccessModes:- ReadWriteMany- ReadWriteOnce- ReadOnlyManycapacity:storage: 500MipersistentVolumeReclaimPolicy: Retainnfs:path: /nfsserver: 192.168.198.156
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:name: nfs-pvc
spec:accessModes:- ReadWriteOnce storageClassName: normalresources:requests:storage: 100Mi
---
apiVersion: v1
kind: Pod
metadata:name: nfs-pv
spec:containers:- name: test-containerimage: nginxvolumeMounts:- name: nfs-volumemountPath: /usr/share/nginx/htmlvolumes:- name: nfs-volumepersistentVolumeClaim:claimName: nfs-pvc

subPath:

apiVersion: v1
kind: PersistentVolume
metadata:name: nfs-pv001labels:name: nfs-pv001storetype: nfs
spec:storageClassName: normalaccessModes:- ReadWriteMany- ReadWriteOnce- ReadOnlyManycapacity:storage: 500MipersistentVolumeReclaimPolicy: Retainnfs:path: /nfsserver: 192.168.198.156
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:name: nfs-pvc
spec:accessModes:- ReadWriteOnce storageClassName: normalresources:requests:storage: 100Mi
---
apiVersion: v1
kind: Pod
metadata:name: nfs-pv
spec:containers:- name: test-containerimage: nginxvolumeMounts:- name: nfs-volumesubPath: testmountPath: /usr/share/nginx/htmlvolumes:- name: nfs-volumepersistentVolumeClaim:claimName: nfs-pvc

Sc provisioner:

•Storage Classes | Kubernetes

allowVolumeExpansion:

•是否允许调整大小

•gcePersistentDisk
•awsElasticBlockStore
•Cinder
•glusterfs
•rbd
•Azure File
•Azure Disk
•Portworx
•FlexVolumes
•CSI

k8s资源之pvpvcsc相关推荐

  1. client-go入门之3:解析 yaml 文件并创建 k8s 资源对象

    我们使用 k8s 提供的命令行工具 kubeclt 可以很方便地使用kubectl apply -f xx.yaml从 yaml 文件创建 k8s 的资源对象,但使用 client-go 的时候,通常 ...

  2. 理解 K8s 资源更新机制,从一个 OpenKruise 用户疑问开始

    作者 | 酒祝  阿里云技术专家 背景 OpenKruise 是阿里云开源的大规模应用自动化管理引擎,在功能上对标了 Kubernetes 原生的 Deployment / StatefulSet 等 ...

  3. 利用K8S技术栈打造个人私有云(连载之:K8S资源控制)

    [利用K8S技术栈打造个人私有云系列文章目录] 利用K8S技术栈打造个人私有云(连载之:初章) 利用K8S技术栈打造个人私有云(连载之:K8S集群搭建) 利用K8S技术栈打造个人私有云(连载之:K8S ...

  4. 从OpenKruise用户疑问开始理解K8s资源更新机制

    云栖号资讯:[点击查看更多行业资讯] 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 背景 OpenKruise 是阿里云开源的大规模应用自动化管理引擎,在功能上对标了 Kuberne ...

  5. 一个漂亮的k8s资源可视化工具--kubeview

    kubeview的 github仓库地址:https://github.com/benc-uk/kubeview kubeview 简介 kubeview是k8s集群的资源可视化工具.kubeview ...

  6. k8s三 | 使用YAML文件创建k8s资源对象

    参考资料:从Docker到Kubernetes进阶-阳明 目录标题 一.YAML基础 1. Maps 2. Lists 二.使用Yaml创建k8s资源对象 1. 使用Yaml创建创建Pod 2. 使用 ...

  7. CoreDNS与k8s资源对象详解-Day03

    1. K8s DNS 官网地址:https://github.com/coredns/coredns https://coredns.io/ https://coredns.io/plugins 1. ...

  8. k8s资源监控和日志管理

    k8s资源监控和日志管理 k8s监控资源使用率 查看集群资源状态 kubectl get cs显示scheduler Unhealthy,controller-manager Unhealthy 监控 ...

  9. k8s资源清单和Pod

    k8s资源清单和Pod 1 资源清单-介绍和常用字段 1.1 K8s中的资源分类 1.2 YAML格式 1.3 YAML数据类型 1.4 常用字段的解释 2.资源清单-容器的生命周期解析 2.1 Po ...

最新文章

  1. java签名算法阻止 设置_java数字签名算法之RSA
  2. Python Qt GUI设计:QPrinter打印图片类(基础篇—21)
  3. KindEditor ASP.NET 上传/浏览服务器 附源码
  4. Nginx 多站点配置
  5. Windows下编程需要看哪些书
  6. 7.使用reserve避免不必要的内存分配
  7. mysql gui 有哪些_推荐五款较好的MySQLGUI工具
  8. C# 读取EXCEL文件的三种经典方法
  9. python十个评委打分_八个评委打分,通过筛选确定最佳评委和最差评委。
  10. LeetCode 第 3 题(Longest Substring Without Repeating Characters)
  11. centos 6 编译emacs-24.5
  12. python初学小结三:文件、集合、函数、变量等
  13. html中div页面布局,前端入门篇(二):利用Div + CSS快速布局页面
  14. win10c盘扩容_三招给你的C盘瘦身
  15. Android集成微信登录-无法收到微信登录回调结果
  16. 阿里云Maven仓库pom文件配置
  17. php进销存bom,金太郎进销存带你了解BOM物料清单
  18. 黑盒测试具体有哪些操作步骤?
  19. C语言学习(十)C语言中的小数
  20. 公众号原主体营业执照已注销 如何办理账号迁移和公证书?

热门文章

  1. 对待小动物需要多一份爱心
  2. 钢条切割(记忆型递归)dp
  3. ACM/ICPC 2017 Nanning Regional 总结
  4. freesurfer recon-all并行运算parallel
  5. 很短,很文艺,很唯美。这才是真正的英文经典
  6. SQL语句编写经典50题
  7. 中秋节,送礼当如唐骏--管理=感动+被感动
  8. 云防护是什么?为何使用云防护?
  9. 生物信息学缘起——linux篇(六)for和while循环
  10. python程序中每条语句以分号结尾,在Python程序中,每条语句末尾必须添加分号。...