当前位置: 首页 > news >正文

网络服务器类型路由器优化大师

网络服务器类型,路由器优化大师,云商城的网站建设,广州官方网站建设在《研发工程师玩转Kubernetes——PVC通过storageClassName进行延迟绑定》一文中,我们利用Node亲和性,让Pod部署在节点ubuntud上。因为Pod使用的PVC可以部署在节点ubuntuc或者ubuntud上,而系统为了让Pod可以部署成功,则让PVC与Pod…

在《研发工程师玩转Kubernetes——PVC通过storageClassName进行延迟绑定》一文中,我们利用Node亲和性,让Pod部署在节点ubuntud上。因为Pod使用的PVC可以部署在节点ubuntuc或者ubuntud上,而系统为了让Pod可以部署成功,则让PVC与Pod亲和的ubuntud上的PV绑定。这样Pod在自身节点亲和性和PVC上都满足了条件。
在这里插入图片描述
在一些业务场景下,我们通过磁盘来保存数据,而程序通过数据设置自身状态。如果一旦一个Pod崩溃,我们希望新补充的Pod可以延续之前的状态。这个时候我们就可以使用PV的节点亲和性来完成上述调度。
在这里插入图片描述

PersistentVolume

下面PersistentVolume配置的节点亲和性要求资源只会在ubuntuc或者ubuntud上创建。

# default_storage_class_pv_ubuntucd.yaml
apiVersion: v1
kind: PersistentVolume
metadata:name: default-storage-class-pv-ubuntucdlabels:volume: lb-default-storage-class-pv
spec:capacity:storage: 1MivolumeMode: FilesystemaccessModes:- ReadWriteOncepersistentVolumeReclaimPolicy: Retainlocal:path: /tmpnodeAffinity:required:nodeSelectorTerms:- matchExpressions:- key: kubernetes.io/hostnameoperator: Invalues:- ubuntuc- ubuntud

PersistentVolumeClaim

PVC直接和上述PV绑定。

# default_storage_class_pvc_600k.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: default-storage-class-pvc-600k
spec:resources:requests:storage: 600KiaccessModes:- ReadWriteOnceselector:matchLabels:volume: lb-default-storage-class-pv

Deployment

下面这个Deployment会创建2个Pod。由于Pod的反亲和性,它们被强制要求调度到不同Node上。

# default_deployment_one_on_node.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: default-pv-app-one-on-node-deployment
spec:replicas: 2selector:matchLabels:app: default-pv-app-one-on-nodetemplate:metadata:labels:app: default-pv-app-one-on-nodespec:containers:- name: default-pv-app-one-on-nodeimage: busyboxcommand: ["/bin/sh", "-c", "if [ -f /tempdir/lockfile ] && ! { set -C; 2>/dev/null >/tempdir/lockfile; }; then tail -f /tempdir/lockfile; else exec 3>/tempdir/lockfile; if [ -n \"$POD_NAME\" ]; then name=$POD_NAME; else name=\"unknown\"; fi; while true; do echo \"this is $name.$name write something to lockfile\"; echo \"$name write something to lockfile\" >&3; sleep 1; done; fi"]  volumeMounts:- name: default-pvc-volumemountPath: /tempdirenv:- name: POD_NAMEvalueFrom:fieldRef:fieldPath: metadata.namevolumes:- name: default-pvc-volumepersistentVolumeClaim:claimName: default-storage-class-pvc-600kaffinity:podAntiAffinity:requiredDuringSchedulingIgnoredDuringExecution:- labelSelector:matchExpressions:- key: appoperator: Invalues:- default-pv-app-one-on-nodetopologyKey: "kubernetes.io/hostname"

实验

查看Pod状态

kubectl get pod -o wide
NAME                                                    READY   STATUS    RESTARTS   AGE   IP             NODE      NOMINATED NODE   READINESS GATES
default-pv-app-one-on-node-deployment-76bf96bb5-7tzxd   1/1     Running   0          21s   10.1.202.210   ubuntud   <none>           <none>
default-pv-app-one-on-node-deployment-76bf96bb5-mtk67   1/1     Running   0          21s   10.1.43.207    ubuntuc   <none>           <none>

可以看到两个Pod分别被调度到ubuntuc和ubuntud上。

调整Pod数量

kubectl scale deployment default-pv-app-one-on-node-deployment --replicas 3
kubectl get pod -o wide
NAME                                                    READY   STATUS    RESTARTS   AGE   IP             NODE      NOMINATED NODE   READINESS GATES
default-pv-app-one-on-node-deployment-76bf96bb5-7tzxd   1/1     Running   0          46s   10.1.202.210   ubuntud   <none>           <none>
default-pv-app-one-on-node-deployment-76bf96bb5-mtk67   1/1     Running   0          46s   10.1.43.207    ubuntuc   <none>           <none>
default-pv-app-one-on-node-deployment-76bf96bb5-9wvq5   0/1     Pending   0          3s    <none>         <none>    <none>           <none>

可以看到,新创建的Pod处于Pending状态。当前系统还有ubuntua、ubuntud、ubunutue三个节点,它们由于不能满足Pod对PVC的要求(实际是PVC绑定的PV的要求),而没有被调度到。

kubectl get  nodes
NAME      STATUS   ROLES    AGE     VERSION
ubuntud   Ready    <none>   2d22h   v1.27.4
ubuntuc   Ready    <none>   2d23h   v1.27.4
ubuntue   Ready    <none>   2d22h   v1.27.4
ubuntub   Ready    <none>   2d23h   v1.27.4
ubuntua   Ready    <none>   2d23h   v1.27.4

恢复Pod

kubectl scale deployment default-pv-app-one-on-node-deployment --replicas 2
kubectl delete pod default-pv-app-one-on-node-deployment-76bf96bb5-7tzxd 
kubectl get pod -o wide
NAME                                                    READY   STATUS    RESTARTS   AGE     IP             NODE      NOMINATED NODE   READINESS GATES
default-pv-app-one-on-node-deployment-76bf96bb5-mtk67   1/1     Running   0          2m12s   10.1.43.207    ubuntuc   <none>           <none>
default-pv-app-one-on-node-deployment-76bf96bb5-qqtlm   1/1     Running   0          39s     10.1.202.211   ubuntud   <none>           <none>

可以看到Pod被正确的调度到刚被删掉Pod的Node上,进而可以继续使用它的PV,从而实现服务状态恢复和衔接上的目的。

http://www.ds6.com.cn/news/31320.html

相关文章:

  • 建设网站需要哪些备案网站优化平台
  • 郑州外贸网站建设商家嘉兴seo外包公司费用
  • 商业计划书ppt模板免费下载太原网站建设优化
  • c 怎么做能让窗体访问网站网站开发是做什么的
  • 怎么做网站服务器系统郑州网站推广培训
  • 登封快乐送餐在那个网站做的广告营销推广网站
  • 公司转让一般在什么网seo搜索引擎优化期末及答案
  • 做app网站建设seo 服务
  • 哪些网站可以做兼职靠谱的友情链接搜读
  • 合肥的网站建设剂屏夫唯seo
  • 做网站襄樊西安百度竞价托管代运营
  • 北京网站建设方案飞沐淘宝指数查询
  • 政府网站编辑的要求网络推广运营优化
  • 做网站的公司什么动力seo博客网址
  • 烟台h5网站制作公司网络热词2021流行语
  • 口碑营销5t理论企业网站关键词优化
  • python 做网站 套件信息流推广渠道
  • 怎么弄百度网站合肥seo推广排名
  • 爱尚网站建设市场营销策划方案范文
  • 网页设计作业宽度1366768seo优化关键词排名
  • 高仿做的最好的网站营销咨询服务
  • 网站开发工程师考试重庆seo排名优化费用
  • 做的好的装修公司网站南京网站设计公司
  • 浙江做电缆桥架的公司网站深圳seo公司
  • 平潭建设局网站今日新闻大事
  • wordpress 微信 主题制作长春百度seo公司
  • 贵阳两学一做网站知乎关键词排名优化
  • 台州黄岩住房和城乡建设网站营销托管全网营销推广
  • 口碑好的网站建设哪家好深圳居家办公
  • 做宣传单页的网站上海seo外包