网站首页 > 技术文章 正文
第一个是HAP我这个是HPA组合deployment
第一HPA
apiVersion: autoscaling/v2 # 指定使用的Kubernetes Autoscaling API版本为autoscaling/v2
kind: HorizontalPodAutoscaler # 表示这是一个HorizontalPodAutoscaler对象,用于自动调整Pod的副本数
metadata:
name: sprint-lex-hap-memroy-cpu-hpa # 定义HPA的名称为sprint-lex-hap-memroy-cpu-hpa
namespace: teamsnamespace # 指定HPA所属的命名空间为teamsnamespace
spec:
minReplicas: 1 # HPA允许的最小副本数为1
maxReplicas: 4 # HPA允许的最大副本数为4
metrics:
- type: Resource # 指定指标类型为资源指标
resource:
name: cpu # 资源指标的名称为CPU
target:
type: Utilization # 指定目标类型为利用率
averageUtilization: 750 # 目标平均CPU利用率为750%
- type: Resource # 指定指标类型为资源指标
resource:
name: memory # 资源指标的名称为内存
target:
type: Utilization # 指定目标类型为利用率
averageUtilization: 50 # 目标平均内存利用率为50%
scaleTargetRef:
apiVersion: apps/v1 # 目标对象的API版本为apps/v1
kind: Deployment # 目标对象的类型为Deployment
name: sprint-lex-hap-memroy-cpu # 目标对象的名称为sprint-lex-hap-memroy-cpu
第二deployment
kind: Deployment # 表示这是一个Deployment对象,用于定义应用程序的部署
metadata:
namespace: teamsnamespace # 指定部署所在的命名空间为teamsnamespace
name: sprint-lex-hap-memroy-cpu # 指定部署的名称为sprint-lex-hap-memroy-cpu
labels:
194f867a2: enabled # 定义部署的标签,标签名为194f867a2,值为enabled
app: nginx # 定义部署的应用标签,标签名为app,值为nginx
type: pa # 定义部署的类型标签,标签名为type,值为pa
spec:
replicas: 2 # 定义部署的副本数为2,即同时运行的Pod实例数量为2
selector: # 定义标签选择器,用于选择要管理的Pod
matchLabels:
194f867a2: enabled # 标签选择器的条件,要求Pod的标签中必须包含194f867a2=enabled
team: lex # 标签选择器的条件,要求Pod的标签中必须包含team=lex
template: # 定义创建Pod的模板
metadata:
labels:
194f867a2: enabled # Pod的标签,标签名为194f867a2,值为enabled
app: nginx # Pod的标签,标签名为app,值为nginx
type: pa # Pod的标签,标签名为type,值为pa
team: lex # Pod的标签,标签名为team,值为lex
spec: # 定义Pod的规范
serviceAccountName: lex-teamsnamespace-sa # 指定Pod使用的Service Account名称为lex-teamsnamespace-sa
automountServiceAccountToken: false # 禁用自动挂载Service Account Token
imagePullSecrets: # 定义从私有容器镜像仓库拉取镜像所需的认证信息
- name: sprint # 私有镜像仓库的认证信息名称为sprint
containers: # 定义Pod中的容器
- image: eu.gcr.io/company/lex-api-podsdata-collector:1.0.1 # 容器的镜像地址
env: # 定义容器的环境变量
#- name: https_proxy
# value: "192.168.192.51:443"
imagePullPolicy: Always # 定义容器镜像拉取策略为始终拉取
name: docker-container-hello-node # 容器的名称为docker-container-hello-node
resources: # 定义容器的资源限制和请求
requests: # 定义容器的资源请求
memory: "900Mi" # 定义内存请求为900Mi
cpu: "200m" # 定义CPU请求为200m
ephemeral-storage: "2Gi" # 定义临时存
# summary
如何理解deployment的一些字段
- deployment name
```
[lex-mac]$ kubectl get deployment -n lex-namespace|grep lex
mac-lex-hap-memroy-cpu 1/1 1 1 38d
[lex-mac]$ kubectl rollout restart deployment/mac-lex-hap-memroy-cpu -n lex-namespace
deployment.apps/mac-lex-hap-memroy-cpu restarted
```
- get rs replicaSets
```
[lex-mac]$ kubectl get rs -n lex-namespace|grep lex
mac-lex-hap-memroy-cpu-5bbdd6dd55 0 0 0 12m
mac-lex-hap-memroy-cpu-6f89c6b56c 0 0 0 38d
mac-lex-hap-memroy-cpu-7d4b675585 0 0 0 27d
mac-lex-hap-memroy-cpu-7f4f64f6d6 1 1 1 12s
[lex-mac]$ kubectl get pod -n lex-namespace|grep lex
mac-lex-hap-memroy-cpu-6f89c6b56c-wqdhm 1/1 Terminating 0 7m56s
mac-lex-hap-memroy-cpu-7f4f64f6d6-znjwd 1/1 Running 0 23s
```
- get replicaSets uid
$ kubectl get replicaSets mac-lex-hap-memroy-cpu-7f4f64f6d6 -n lex-namespace -o jsonpath='{.metadata.uid}'
093d3479-8f24-4131-abbb-e0f6a3131b5a
- kubectl patch 尝试
```
[lex-mac]$ kubectl patch deployment sprint-lex-hap-memroy-cpu --patch '{"spec": {"selector": {"matchLabels": {"194f867a2": "enabled"}}}}' -n teamsnamespace
deployment.apps/sprint-lex-hap-memroy-cpu patched (no change)
[lex-mac]$ kubectl patch deployment sprint-lex-hap-memroy-cpu --patch '{"spec": {"selector": {"matchLabels": {"team": "lex"}}}}' -n teamsnamespace
deployment.apps/sprint-lex-hap-memroy-cpu patched (no change)
[lex-mac]$ kubectl patch deployment sprint-lex-hap-memroy-cpu --patch '{"spec": {"selector": {"matchLabels": {"team": "lex2"}}}}' -n teamsnamespace
The Deployment "sprint-lex-hap-memroy-cpu" is invalid:
* spec.template.metadata.labels: Invalid value: map[string]string{"194f867a2":"enabled", "app":"nginx", "team":"lex", "type":"pa"}: `selector` does not match template `labels`
* spec.selector: Invalid value: v1.LabelSelector{MatchLabels:map[string]string{"194f867a2":"enabled", "team":"lex2"}, MatchExpressions:[]v1.LabelSelectorRequirement(nil)}: field is immutable
这个报错 是 selector` does not match template `labels` 表面的命令是是针对的selector 看样子是针对的spec.template.metadata.labels ?
```
- 对应关系能找到 也是OK的 但是好像更新都不行 随意改值没什么用 ?对于有些字段来说确实如此
```
kubectl patch deployment sprint-lex-hap-memroy-cpu --patch '{"spec": {"selector": {"matchLabels": {"team": "lex"}}}}' -n teamsnamespace OK
kubectl patch deployment sprint-lex-hap-memroy-cpu --patch '{"spec": {"template": {"metadata": {"labels": {"team": "lex"}}}}}' -n teamsnamespace OK
deployment.apps/sprint-lex-hap-memroy-cpu patched (no change)
kubectl patch deployment patch-demo --patch '{"spec": {"template": {"spec": {"containers": [{"name": "patch-demo-ctr-2","image": "redis"}]}}}}'
kubectl patch deployment sprint-lex-hap-memroy-cpu --patch '{"spec": {"template": {"metadata": {"team": "lex2"}}}}' -n teamsnamespace
kubectl patch deployment sprint-lex-hap-memroy-cpu --patch '{"spec": {"template": {"matchLabels": {"team": "lex2"}}}}' -n teamsnamespace
kubectl get hpa sprint-lex-hap-memroy-cpu-hpa -n teamsnamespace
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE
sprint-lex-hap-memroy-cpu-hpa Deployment/sprint-lex-hap-memroy-cpu 5%/50%, 1%/750% 1 4 1 39d
```
```
猜你喜欢
- 2024-09-27 XSLT 元素 x元素是啥
- 2024-09-27 「airTest」 airTest入门与原理 airtest assert
- 2024-09-27 用人脸识别抓取王思聪吃热狗——真香
- 2024-09-27 必学组合函数INDEX和MATCH,真的比VLOOKUP函数好用?分情况,未必
- 2024-09-27 python模拟哔哩哔哩滑块登入验证的实现
- 2024-09-27 opencv多目标匹配 opencv多目标识别
- 2024-09-27 Python OpenCV 的知识体系梳理 opencv-python-tutorial
- 2024-09-27 「技术分享」截图录屏-截长图的实现原理
- 2024-09-27 视觉信息辅助激光导航AGV的应用 智能agv的激光导航包含
- 2024-09-27 自动点赞工具软件的技术实现(艾思软件)
你 发表评论:
欢迎- 最近发表
-
- 在 Spring Boot 项目中使用 activiti
- 开箱即用-activiti流程引擎(active 流程引擎)
- 在springBoot项目中整合使用activiti
- activiti中的网关是干什么的?(activiti包含网关)
- SpringBoot集成工作流Activiti(完整源码和配套文档)
- Activiti工作流介绍及使用(activiti工作流会签)
- SpringBoot集成工作流Activiti(实际项目演示)
- activiti工作流引擎(activiti工作流引擎怎么用)
- 工作流Activiti初体验及在数据库中生成的表
- Activiti工作流浅析(activiti6.0工作流引擎深度解析)
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)