k8s pod level resource limit definitions for all containers to use
This is an example of a yaml that shows k8s pod level resource limit defintions where containers will shared among themselves.
Yaml can be shown here :-
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
namespace: default
labels:
app: my-app
spec:
replicas: 2
revisionHistoryLimit: 5
selector:
matchLabels:
app: my-app
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
template:
metadata:
labels:
app: my-app
spec:
# Pod-level resources: shared by all containers in the pod.
# Stable in Kubernetes 1.37; on older versions it needs the
# PodLevelResources feature gate (beta/on by default from 1.34).
resources:
requests:
cpu: "1"
memory: "512Mi"
limits:
cpu: "2"
memory: "1Gi"
terminationGracePeriodSeconds: 30
securityContext:
runAsNonRoot: true
seccompProfile:
type: RuntimeDefault
containers:
- name: app
image: my-app:1.0.0 # replace with your image and tag
imagePullPolicy: IfNotPresent
ports:
- name: http
containerPort: 8080
env:
- name: SIDECAR_URL
value: "http://localhost:9000"
readinessProbe:
httpGet:
path: /healthz
port: http
initialDelaySeconds: 5
periodSeconds: 10
livenessProbe:
httpGet:
path: /healthz
port: http
initialDelaySeconds: 15
periodSeconds: 20
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop: ["ALL"]
- name: sidecar
image: my-sidecar:1.0.0 # replace with your image and tag
imagePullPolicy: IfNotPresent
ports:
- name: sidecar
containerPort: 9000
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop: ["ALL"]
---
apiVersion: v1
kind: Service
metadata:
name: my-app
namespace: default
labels:
app: my-app
spec:
type: ClusterIP
selector:
app: my-app
ports:
- name: http
port: 80
targetPort: http
Comments