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

免费网站建设咨询手工企业网站模板

免费网站建设咨询,手工企业网站模板,商务网站内容建设教程,网络营销推广的手段一#xff0c;前言 上一篇#xff0c;介绍了 k8s ConfigMap 管理服务环境变量#xff1b; 本篇#xff0c;介绍 k8s 污点和容忍度#xff1b; 二#xff0c;污点与容忍度介绍 通过污点和容忍度配置可以干预 Pod 部署到特定的节点#xff1b; 比如#xff1a; 不想让…一前言 上一篇介绍了 k8s ConfigMap 管理服务环境变量 本篇介绍 k8s 污点和容忍度 二污点与容忍度介绍 通过污点和容忍度配置可以干预 Pod 部署到特定的节点 比如 不想让某些服务、deploy、pod 部署到某台机器上 专门负责部署 mysql 的机器可以设置污点默认不能部署其他服务 污点和容忍度 在 Kubernetes 中 Pod 被部署到 Node 上面去的规则和逻辑是由 Kubernetes 的调度组件根据 Node 的剩余资源地位以及其他规则自动选择调度的但前端和后端往往服务器资源的分配都是不均衡的甚至有的服务只能让特定的服务器来跑在这种情况下我们选择自动调度是不均衡的就需要人工去干预匹配选择规则了这时候就需要在给 Node 添加一个叫做污点的东西以确保 Node 不被 Pod 调度到当你给 Node 设置一个污点后除非给 Pod 设置一个相对应的容忍度否则 Pod 才能被调度上去。这也就是污点和容忍的来源污点的格式是 keyvalue可以自定义自己的内容就像是一组 Tag 一样Node_Name 为要添加污点的 node 名称key 和 value 为一组键值对代表一组标示标签NoSchedule 则为不被调度的意思和它同级别的还有其他的值PreferNoSchedule 和 NoExecute 三清理环境 先清理一下现有环境释放出资源 [rootk8s-master deployment]# kubectl get pods NAME READY STATUS RESTARTS AGE pay-v1-655587b6f5-gv8hc 1/1 Running 0 24h user-v1-9f4d589cc-rdmnz 1/1 Running 0 10m v4-57b4cf7fd9-zcl45 0/1 ImagePullBackOff 0 5d23h v4-fb4cd75f5-bf2pf 0/1 ImagePullBackOff 0 40h// 删掉 pay-v1 的部署(pay-v1 的容器会被干掉) [rootk8s-master deployment]# kubectl delete deploy pay-v1 deployment.apps pay-v1 deleted[rootk8s-master deployment]# kubectl get pods NAME READY STATUS RESTARTS AGE user-v1-9f4d589cc-rdmnz 1/1 Running 0 13m v4-57b4cf7fd9-zcl45 0/1 ImagePullBackOff 0 5d23h v4-fb4cd75f5-bf2pf 0/1 ImagePullBackOff 0 40h四设置污点 为 k8s-node 设置污点 kubectl taint nodes [Node_Name] [key][value]:NoSchedule // 添加污点-k8s-nodes 不部署 pay-v1 [rootk8s-master deployment]# kubectl taint nodes k8s-node pay-v1true:NoSchedule node/k8s-node tainted//查看污点 [rootk8s-master deployment]# kubectl describe node k8s-node Name: k8s-node Roles: none Labels: beta.kubernetes.io/archamd64beta.kubernetes.io/oslinuxkubernetes.io/archamd64kubernetes.io/hostnamek8s-nodekubernetes.io/oslinux Annotations: flannel.alpha.coreos.com/backend-data: {VNI:1,VtepMAC:96:c0:15:7d:c1:a9}flannel.alpha.coreos.com/backend-type: vxlanflannel.alpha.coreos.com/kube-subnet-manager: trueflannel.alpha.coreos.com/public-ip: 172.17.178.106kubeadm.alpha.kubernetes.io/cri-socket: /var/run/dockershim.socknode.alpha.kubernetes.io/ttl: 0volumes.kubernetes.io/controller-managed-attach-detach: true CreationTimestamp: Wed, 22 Dec 2021 00:41:20 0800 // 以下就是污点信息-如果部署的名称是 pay-v1k8s-node 不参与调度 Taints: pay-v1true:NoSchedule Unschedulable: false Lease:HolderIdentity: k8s-nodeAcquireTime: unsetRenewTime: Wed, 05 Jan 2022 15:35:38 0800 Conditions:Type Status LastHeartbeatTime LastTransitionTime Reason Message---- ------ ----------------- ------------------ ------ -------NetworkUnavailable False Fri, 24 Dec 2021 17:43:49 0800 Fri, 24 Dec 2021 17:43:49 0800 FlannelIsUp Flannel is running on this nodeMemoryPressure False Wed, 05 Jan 2022 15:32:38 0800 Fri, 24 Dec 2021 18:22:47 0800 KubeletHasSufficientMemory kubelet has sufficient memory availableDiskPressure False Wed, 05 Jan 2022 15:32:38 0800 Fri, 24 Dec 2021 18:22:47 0800 KubeletHasNoDiskPressure kubelet has no disk pressurePIDPressure False Wed, 05 Jan 2022 15:32:38 0800 Fri, 24 Dec 2021 18:22:47 0800 KubeletHasSufficientPID kubelet has sufficient PID availableReady True Wed, 05 Jan 2022 15:32:38 0800 Fri, 24 Dec 2021 18:22:47 0800 KubeletReady kubelet is posting ready status Addresses:InternalIP: 172.17.178.106Hostname: k8s-node Capacity:cpu: 2ephemeral-storage: 41152812Kihugepages-1Gi: 0hugepages-2Mi: 0memory: 951856Kipods: 110 Allocatable:cpu: 2ephemeral-storage: 37926431477hugepages-1Gi: 0hugepages-2Mi: 0memory: 849456Kipods: 110 System Info:Machine ID: 20211123171600472607520636465043System UUID: 71F14756-1816-4DFF-86DF-5129F0234463Boot ID: 336150f9-ea6b-4de6-b4f5-c06967b5b344Kernel Version: 3.10.0-1160.45.1.el7.x86_64OS Image: CentOS Linux 7 (Core)Operating System: linuxArchitecture: amd64Container Runtime Version: docker://20.10.12Kubelet Version: v1.20.4Kube-Proxy Version: v1.20.4 PodCIDR: 10.244.1.0/24 PodCIDRs: 10.244.1.0/24 Non-terminated Pods: (6 in total)Namespace Name CPU Requests CPU Limits Memory Requests Memory Limits AGE--------- ---- ------------ ---------- --------------- ------------- ---default user-v1-9f4d589cc-rdmnz 0 (0%) 0 (0%) 0 (0%) 0 (0%) 17mdefault v4-57b4cf7fd9-zcl45 0 (0%) 0 (0%) 0 (0%) 0 (0%) 5d23hdefault v4-fb4cd75f5-bf2pf 0 (0%) 0 (0%) 0 (0%) 0 (0%) 40hingress-nginx ingress-nginx-controller-6b6497d95d-9j7qn 100m (5%) 0 (0%) 90Mi (10%) 0 (0%) 13dkube-system kube-flannel-ds-ckhq8 100m (5%) 100m (5%) 50Mi (6%) 50Mi (6%) 14dkube-system kube-proxy-sp6r2 0 (0%) 0 (0%) 0 (0%) 0 (0%) 14d Allocated resources:(Total limits may be over 100 percent, i.e., overcommitted.)Resource Requests Limits-------- -------- ------cpu 200m (10%) 100m (5%)memory 140Mi (16%) 50Mi (6%)ephemeral-storage 0 (0%) 0 (0%)hugepages-1Gi 0 (0%) 0 (0%)hugepages-2Mi 0 (0%) 0 (0%) Events: none生效 pay-v1 部署配置deployment-pay-v1.yaml [rootk8s-master deployment]# kubectl apply -f deployment-pay-v1.yaml deployment.apps/pay-v1 created[rootk8s-master deployment]# kubectl get pods NAME READY STATUS RESTARTS AGE pay-v1-655587b6f5-k26lx 0/1 Pending 0 19s user-v1-9f4d589cc-rdmnz 1/1 Running 0 20m v4-57b4cf7fd9-zcl45 0/1 ImagePullBackOff 0 5d23h v4-fb4cd75f5-bf2pf 0/1 ImagePullBackOff 0 40h新创建的podpay-v1-655587b6f5-k26lx 处于 Pending 状态 [rootk8s-master deployment]# kubectl describe pod pay-v1-655587b6f5-k26lx Name: pay-v1-655587b6f5-k26lx Namespace: default Priority: 0 Node: none Labels: apppay-v1pod-template-hash655587b6f5 Annotations: none Status: Pending IP: IPs: none Controlled By: ReplicaSet/pay-v1-655587b6f5 Containers:nginx:Image: nginx:payPort: 80/TCPHost Port: 0/TCPEnvironment: noneMounts:/var/run/secrets/kubernetes.io/serviceaccount from default-token-q4qxd (ro) Conditions:Type StatusPodScheduled False Volumes:default-token-q4qxd:Type: Secret (a volume populated by a Secret)SecretName: default-token-q4qxdOptional: false QoS Class: BestEffort Node-Selectors: none Tolerations: node.kubernetes.io/not-ready:NoExecute opExists for 300snode.kubernetes.io/unreachable:NoExecute opExists for 300s Events:Type Reason Age From Message---- ------ ---- ---- -------Warning FailedScheduling 3s (x3 over 75s) default-scheduler 0/2 nodes are available: 1 node(s) had taint {node-role.kubernetes.io/master: }, that the pod didnt tolerate, 1 node(s) had taint {pay-v1: true}, that the pod didnt tolerate.报错了调度失败共 2 个节点0 个可用 k8s-node 污点效果生效 五设置容忍度 为 Pod 设置容忍度 想让 Pod 被调度过去需要在 Pod 一侧添加相同的容忍度才能被调度到给 Pod 设置一组容忍度以匹配对应的 Node 的污点key 和 value 是你配置 Node 污点的 key 和 valueeffect 是 Node 污点的调度效果和 Node 的设置项也是匹配的operator 是运算符equal 代表只有 key 和 value 相等才算数。当然也可以配置 exists 代表只要 key 存在就匹配不需要校验 value 的值 修改前 deployment-pay-v1.yaml apiVersion: apps/v1 #API版本号 kind: Deployment #资源类型部署 metadata:name: pay-v1 #资源名称 spec:selector:matchLabels:app: pay-v1 #告诉deployment根据规则匹配相应的Pod进行控制和管理matchLabels字段匹配Pod的label值replicas: 1 #声明Pod副本的数量template:metadata:labels:app: pay-v1 #Pod名称spec: #描述Pod内的容器信息containers:- name: nginx #容器的名称image: nginx:pay #镜像ports:- containerPort: 80 #容器内映射的端口修改后 apiVersion: apps/v1 #API版本号 kind: Deployment #资源类型部署 metadata:name: pay-v1 #资源名称 spec:selector:matchLabels:app: pay-v1 #告诉deployment根据规则匹配相应的Pod进行控制和管理matchLabels字段匹配Pod的label值replicas: 1 #声明Pod副本的数量template:metadata:labels:app: pay-v1 #Pod名称spec: #描述Pod内的容器信息tolerations:- key: pay-v1value: trueoperator: Equaleffect: NoSchedulecontainers:- name: nginx #容器的名称image: nginx:pay #镜像ports:- containerPort: 80 #容器内映射的端口生效配置 [rootk8s-master deployment]# kubectl apply -f deployment-pay-v1.yaml deployment.apps/pay-v1 configured// pay-v1的 pod 成功 Running [rootk8s-master deployment]# kubectl get pods NAME READY STATUS RESTARTS AGE pay-v1-6cd6d4cc78-sgvnv 1/1 Running 0 45s user-v1-9f4d589cc-rdmnz 1/1 Running 0 86m v4-57b4cf7fd9-zcl45 0/1 ImagePullBackOff 0 6d1h v4-fb4cd75f5-bf2pf 0/1 ImagePullBackOff 0 42h// 容忍污点部署到了k8s-node上 [rootk8s-master deployment]# kubectl describe pod pay-v1-6cd6d4cc78-sgvnv Name: pay-v1-6cd6d4cc78-sgvnv Namespace: default Priority: 0 Node: k8s-node/172.17.178.106六修改 node 节点的污点 先删除 pay-v1 的部署 [rootk8s-master deployment]# kubectl delete deploy pay-v1 deployment.apps pay-v1 deleted// 之前是 pay-v1true 这次是 pay-v11 [rootk8s-master deployment]# kubectl taint nodes k8s-node pay-v11:NoSchedule --overwrite node/k8s-node modified[rootk8s-master deployment]# kubectl apply -f deployment-pay-v1.yaml deployment.apps/pay-v1 created// pending 了 [rootk8s-master deployment]# kubectl get pods NAME READY STATUS RESTARTS AGE pay-v1-6cd6d4cc78-shfp9 0/1 Pending 0 20s user-v1-9f4d589cc-rdmnz 1/1 Running 0 91m v4-57b4cf7fd9-zcl45 0/1 ImagePullBackOff 0 6d1h v4-fb4cd75f5-bf2pf 0/1 ImagePullBackOff 0 42h为什么是 pending 呢因为污点不被允许 这时因为在 yaml 中的配置是 spec: #描述Pod内的容器信息tolerations:- key: pay-v1value: trueoperator: Equaleffect: NoSchedulekey 和 value 都要相等才可以但 value 是 1不相等 修改改为存在 key 即可不关心 value 值 spec: #描述Pod内的容器信息tolerations:- key: pay-v1operator: Existseffect: NoSchedule[rootk8s-master deployment]# vi deployment-pay-v1.yamlapiVersion: apps/v1 #API版本号 kind: Deployment #资源类型部署 metadata:name: pay-v1 #资源名称 spec:selector:matchLabels:app: pay-v1 #告诉deployment根据规则匹配相应的Pod进行控制和管理matchLabels字段匹配Pod的label值replicas: 1 #声明Pod副本的数量template:metadata:labels:app: pay-v1 #Pod名称spec: #描述Pod内的容器信息tolerations:- key: pay-v1operator: Existseffect: NoSchedulecontainers:- name: nginx #容器的名称image: nginx:pay #镜像ports:- containerPort: 80 #容器内映射的端口[rootk8s-master deployment]# kubectl apply -f deployment-pay-v1.yaml deployment.apps/pay-v1 configured// 成功 Running [rootk8s-master deployment]# kubectl get pods NAME READY STATUS RESTARTS AGE pay-v1-6d6cdc544b-fbhdd 1/1 Running 0 28s user-v1-9f4d589cc-rdmnz 1/1 Running 0 97m v4-57b4cf7fd9-zcl45 0/1 ImagePullBackOff 0 6d1h v4-fb4cd75f5-bf2pf 0/1 ImagePullBackOff 0 42h即匹配规则可以自由指定容忍规则也可以自由指定 七删除 Node 的污点 kubectl taint nodes k8s-node pay-v1- // 最后的 - 就是删除的意思[rootk8s-master ~]# kubectl taint nodes k8s-node pay-v1- node/k8s-node untainted // 在k8s-node节点上取消污点取消污点后就可以随便部署了 八如何在 master 上布署 pod master 之所以不能部署 pod是因为有污点 // 添加污点 [rootk8s-master ~]# kubectl taint nodes k8s-node pay-v1true:NoSchedule --overwrite node/k8s-node modified// 删掉部署 [rootk8s-master ~]# kubectl delete deploy pay-v1 deployment.apps pay-v1 deleted// 查看k8s-master污点信息 [rootk8s-master ~]# kubectl describe node k8s-master Name: k8s-master Taints: node-role.kubernetes.io/master:NoSchedule Unschedulable: false修改 pay-v1 配置将 tolerations 容忍度修改为 node-role.kubernetes.io/master使之匹配 [rootk8s-master deployment]# vi deployment-pay-v1.yaml apiVersion: apps/v1 #API版本号 kind: Deployment #资源类型部署 metadata:name: pay-v1 #资源名称 spec:selector:matchLabels:app: pay-v1 #告诉deployment根据规则匹配相应的Pod进行控制和管理matchLabels字段匹配Pod的label值replicas: 1 #声明Pod副本的数量template:metadata:labels:app: pay-v1 #Pod名称spec: #描述Pod内的容器信息tolerations:- key: node-role.kubernetes.io/masteroperator: Existseffect: NoSchedulecontainers:- name: nginx #容器的名称image: nginx:pay #镜像ports:- containerPort: 80 #容器内映射的端口// 部署 [rootk8s-master deployment]# kubectl apply -f deployment-pay-v1.yaml deployment.apps/pay-v1 created查看部署 pod: [rootk8s-master deployment]# kubectl get pods NAME READY STATUS RESTARTS AGE pay-v1-6db6455b8-np2hw 1/1 Running 0 37s user-v1-9f4d589cc-rdmnz 1/1 Running 0 18h v4-57b4cf7fd9-zcl45 0/1 ImagePullBackOff 0 6d17h v4-fb4cd75f5-bf2pf 0/1 ImagePullBackOff 0 2d10h[rootk8s-master deployment]# kubectl describe pod pay-v1-6db6455b8-np2hw Name: pay-v1-6db6455b8-np2hw Namespace: default Priority: 0 Node: k8s-master/172.17.178.105可以发现pod 被部署到了 master 节点上 九结尾 本篇介绍了 k8s 污点和容忍度 下一篇待定
http://www.dnsts.com.cn/news/87451.html

相关文章:

  • 电子商务网站建设与管理案例如何将网站开发成微信小程序
  • 长春网长春网站建设络推广旺店通app手机企业版下载
  • 枣庄学习建设网站培训徐州英才网最新招聘信息
  • 深圳龙华区住房和建设局网站京东app下载官网免费下载
  • 网站开发代理报价表网站建设费用的账务处理
  • 做网站要霸屏吗全球云邮登陆网站
  • 用网站模板做网站wordpress站点标题副标题换行
  • 口碑好的网站开发公司营销策略都有哪些
  • 鄂州商城网站建设建设银行网站电脑版
  • 甜品店网站建设scratch网站开发
  • 网站建设常州青之峰备案需要网站空间
  • 网站新版礼嘉网络推广
  • 无锡网站建设唯唯网络seogw
  • 利用表单大师做网站嵌入式开发板哪款好
  • 做丝网网站哪个好代理公司名称
  • 做个人网站怎么做免费看的logo图片
  • 网站前台设计软件免费建网站平台哪个好
  • 大气的企业网站网站域名如何申请
  • 网站没有关键词的弊端惠州搜索引擎优化
  • 网页设计与网站建设完全学习手册免费企业电话名录
  • 周口航迪科技网站建设公司怎么样WordPress文章相册修改
  • 公司做网站之前要准备什么网站开发 保密期限
  • 阿里云如何搭建网站网站个人空间
  • 做网站运营有前途页面设计的像胶囊怎么形容
  • 百度站长工具怎么查排名陈木胜怎么死的
  • 郑州网站seo外包徐老师在那个网站做发视频下载
  • 网站后台编辑器内容不显示微信推广软件首选帝搜软件
  • 地方建立网站做SEM武威市凉州区建设局网站
  • 专注郑州网站建设做网站汉中
  • 备案 添加网站甘州区住房和城乡建设局网站