기본적인 kubernetes resource, option 등을 설명한 블로그입니다. 추가적인 기능을 보고싶으시면 docs를 참고바랍니다.
https://kubernetes.io/docs/home/
- resource limits를 초과해서 사용하는 파드들은 restart 시킨다.
spec:
containers:
- name: nginx-container
...
resources:
requests: # 요청
cpu: 200m # 200m = 0.2
memory: 250Mi
limits: # 제한, limits만 있으면 동일한 requests 값이 저장됨.
cpu: 1 # cpu=1 -> 1 AWS vCPU, 1 GCP Core, 1Azure Core, 1Hyperthread
memory: 500Mi
# 1M = 1000K = 1000M, core는 코어 개수 혹은 코어 메모리.
# 1Mi = 1024Ki
# default 1 vCPU, 512Mi
# cpu가 초과되면 throttle되지만, 메모리는 넘어가면 바로 종료된다.
- default로 limit을 정해주기 위해서는 LimitRange type을 지정해줘야한다.
apiVersion: v1
kind: LimitRange
metadata:
name: mem-limit-range
spec:
limits:
- default:
memory: 512Mi
defaultRequest:
memory: 256Mi
type: Container
apiVersion: v1
kind: LimitRange
metadata:
name: cpu-limit-range
spec:
limits:
- default:
cpu: 1
defaultRequest:
cpu: 0.5
type: Container
spec:
containers:
-name: nginx-container
...
env:
- name: [환경변수 이름]
value: [환경변수 값]
# pod container 내의 환경변수 설정.
- controllers : DAEMON SET, DEPLOYMENT->REPLICASET, STATEFULE SETS, CRONJOB->JOB, RESPLICATION CONTROLLER
- Deployment같은 경우 REPLICASET의 상위 개념, 즉 deployment을 생성하면 replicaset도 생성.
- ReplicationController: pod 개수를 보장하며 가장 기본적인 controller
apiVersion: v1
kind: ReplicationController
metadata:
name: rc
spec:
replicas: [배포개수]
selector:
key: value
template:
[container 템플릿]
# selector의 label을 보고 replicas값만큼 유지하고 부족하면 template을 봐서 생성.
# 반드시 selector의 값이 해당 파드 yaml파일에 labels로 있어야 실행된다.
kind: ReplicationController
spec:
replica: 3
selector:
app: webui
template:
metatdata:
name: nginx-pod
labels:
app:webui
spec:
containers:
- name: nginx-container
image:nginx:1.14
- ReplicationController는 pod의 개수만 보장하고 label만 보기때문에 image나 다른 속성을 edit해도 안바뀐다.
'kubernetes, helm, rancher' 카테고리의 다른 글
kubernetes Statefulset, Job, Cronjob (0) | 2021.11.25 |
---|---|
kubernetes ReplicaSet, Deployment, Daemon set (0) | 2021.11.24 |
kubernetes pod, static pod, self-healing, container type (0) | 2021.11.22 |
kubernetes namespace, resourcequota (0) | 2021.11.20 |
kubernetes란? (0) | 2021.11.18 |