20220227作业
-
HPA控制器实现pod弹性伸缩
(1)手动扩容 kubectl autoscale deployment magedu-tomcat-app1-deployment --min=3 --max=5 --cpu-percent=30 -n magedu (2)通过编写yaml进行扩容 apiVersion: autoscaling/v1 kind: HorizontalPodAutoscaler metadata: namespace: magedu name: magedu-tomcat-app1-podautoscaler labels: app: magedu-tomcat-app1 version: v2beta1 spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: magedu-tomcat-app1-deployment minReplicas: 2 maxReplicas: 10 targetCPUUtilizationPercentage: 60
-
CI/CD,基于Jenkins和gitlab实现代码部署和回滚
(1)手动更新image: kubectl set image deployment/magedu-tomcat-app1-deployment magedu-tomcat-app1-container=192.168.1.138/magedu/nginx:v1.20.2.23.23 -n magedu (2)查看历史更新记录 kubectl rollout history deployment magedu-tomcat-app1-deployment -n magedu (3)回滚到上一版本: kubectl rollout undo deployment magedu-tomcat-app1-deployment -n magedu (4)回滚到指定版本 kubectl rollout undo deployment magedu-tomcat-app1-deployment --to-revision=2 -n magedu
-
node亲和及反亲和,pod亲和及反亲和,污点与容忍
(1)node打标签: kubectl label node 192.168.1.74 project=magedu kubectl label node 192.168.1.74 disktype=ssd (2)yaml中指定node标签: nodeSelector: project: magedu disktype: ssd (3)yaml中指定nodename nodeName: 192.168.1.73 (4)存在多matchExpressions,只要其中一个满足就可以
点击查看代码
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions: #匹配条件1,多个values可以调度
- key: disktype
operator: In
values:
- ssd # 只有一个value是匹配成功也可以调度
- hdd
- matchExpressions: #匹配条件2,多个matchExpressions加上以及每个matchExpressions values只有其中一个value匹配成功就可以调度
- key: project
operator: In
values:
- mmm #即使这俩条件2的都匹配不上也可以调度
- nnn
(5)存在多key,必须全部满足才可以调度
点击查看代码
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions: #匹配条件1
- key: disktype
operator: In
values:
- ssd
- hdd #同个key的多个value只有有一个匹配成功就行
- key: project #条件1和条件2必须同时满足,否则不调度
operator: In
values:
- magedu
(6)非强制亲和调度
点击查看代码
affinity:
nodeAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 80
preference:
matchExpressions:
- key: project
operator: In
values:
- mageduX
- weight: 60
preference:
matchExpressions:
- key: disktype
operator: In
values:
- ssdX
(7)强制亲和+非强制亲和
点击查看代码
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution: #硬限制
nodeSelectorTerms:
- matchExpressions: #硬匹配条件1
- key: "kubernetes.io/role"
operator: NotIn
values:
- "master" #硬性匹配key 的值kubernetes.io/role不包含master的节点,即绝对不会调度到master节点(node反亲和)
preferredDuringSchedulingIgnoredDuringExecution: #软限制
- weight: 80
preference:
matchExpressions:
- key: project
operator: In
values:
- magedu
- weight: 100
preference:
matchExpressions:
- key: disktype
operator: In
values:
- ssd
(8)node反亲和
点击查看代码
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions: #匹配条件1
- key: disktype
operator: NotIn
values:
- hdd #绝对不会调度到hdd的节点
(9)pod软亲和
点击查看代码
affinity:
podAffinity:
#requiredDuringSchedulingIgnoredDuringExecution:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 100
podAffinityTerm:
labelSelector:
matchExpressions:
- key: project
operator: In
values:
- python
topologyKey: kubernetes.io/hostname
namespaces:
- magedu
(10)pod硬亲和
点击查看代码
affinity:
podAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: project
operator: In
values:
- python
topologyKey: "kubernetes.io/hostname"
namespaces:
- magedu
(11)pod强制反亲和
点击查看代码
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: project
operator: In
values:
- python
topologyKey: "kubernetes.io/hostname"
namespaces:
- maged
(12)node打污点
kubectl taint node 192.168.1.74 key1=value1:NoSchedule
(13)node去除污点
kubectl taint node 192.168.1.74 key1=value1:NoSchedule-
(14)当前 taint effect 支持如下三个选项:
NoSchedule :表示k8s将不会将Pod调度到具有该污点的Node上 PreferNoSchedule :表示k8s将尽量避免将Pod调度到具有该污点的Node上 NoExecute :表示k8s将不会将Pod调度到具有该污点的Node上,同时会将Node上已经存在的Pod驱逐出去
(15)yaml中污点编辑
点击查看代码
tolerations:
- key: "key1"
operator: "Equal"
value: "value1"
effect: "NoSchedule"
-
Promethus基础
prometheus server: 主服务,接受外部http请求,收集,存储与查询数据等 promethues targets: 静态收集的目标服务数据 service discovery: 动态发现服务 promethues alerting: 报警通知 push gateway: 数据收集代理服务器(类似于zabbix proxy) data visualization and export: 数据可视化与数据导出(访问客户端)
本文作者:没有猫的猫奴
本文链接:https://www.cnblogs.com/cat1/p/15945571.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步