22
03月
2023
摘要:k8s 自动扩缩
新建一个my-app.yaml文件
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app-deployment
namespace: dev
#uid: 2f365299-c285-4624-aa4e-4cdd88ecbc39 #这个是级联删除的作用
labels:
app: my-app
spec:
replicas: 6
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 100
podAffinityTerm:
labelSelector:
matchExpressions:
- key: app
operator: In
values:
- my-app
topologyKey: "kubernetes.io/hostname"
containers:
- name: my-app
image: $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:v$BUILD_NUMBER
ports:
- containerPort: 80
---
kind: Service
apiVersion: v1
metadata:
name: my-app-server
namespace: dev
labels:
app: my-app-server
spec:
ports:
- name: http-my-app
protocol: TCP
port: 9001
targetPort: 80
nodePort: 32393
selector:
app: my-app
type: NodePort
sessionAffinity: None
---
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: my-app-deployment
namespace: dev
#ownerReferences: #这个是级联删除的作用
#- apiVersion: apps/v1
# blockOwnerDeletion: true
# controller: true
# kind: Deployment
# name: my-app-deployment
# uid: 2f365299-c285-4624-aa4e-4cdd88ecbc39
spec:
maxReplicas: 20
metrics:
- resource:
name: memory
target:
averageValue: 2Gi
type: AverageValue
type: Resource
- resource:
name: cpu
target:
averageUtilization: 60
type: Utilization
type: Resource
minReplicas: 5
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: my-app-deployment
命令行执行:
kubectl apply -f my-app.yaml
非特殊说明,本文版权归HPay所有,转载请注明出处.
本文类型: Java工具