apiVersion: v1
kind: Pod
metadata:
name: kubernetes-simple-pod
labels:
app: kubernetes-simple-pod
spec:
containers:
- name: kubernetes-simple-pod
image: arisu1000/simple-container-app:latest
resources:
requests:
cpu: 0.1
memory: 200M
limits:
cpu: 0.5
memory: 1G
ports:
- containerPort: 8080
requests 필드는 최소 자원 요구량을 나타내며, 노드에 최소 자원 요구량만큼 여유가 있어야 파드를 스케줄링할 수 있다. 여유 자원이 있는 노드가 없다면 상태는 Pending상태로 실행되지않고, 클러스터 안에 자원 여유가 생길때까지 대기한다. limits 필드는 최대 사용가능한 범위를 나타낸다.
Mem 단위는 기본 바이트이며 십진법 접두어(K,M,G...)를 사용할 수 있다. CPU 단위는 코어 개수로 표시되는데, 일반적으로 코어개수라고하면 1,2,3,4 등 정수로만 설정할 수 있다고 오해할 수 있다. 위를 예시로 request필드 값이 0.1이고 limits 필드값이 0.5이다. CPU 코어하나의 연산량이 100이라고 할 때 10%만큼 연산능력을 할당한다는 의미고 50%까지만 활용하도록 제한한다는 의미이다.
디플로이먼트를 edit나 yaml 파일을 수정하여 재배포가 가능하다.
디플로이먼트 파일의 변경 내역은 kubectl rollout history deploy 디플로이먼트 명으로 확인할 수 있다.
어떤 변경사항이 있었는지 상세보기를 원한다면 kubectl rollout history deploy 디플로이먼트 명 --revisions=리비전숫자를 입력하면 된다
보이는 것처럼 CHANGE-CAUSE 값이 none으로 표기되고 있는데, 변경 내용을 메모하고 싶다면 yaml 파일에서 .metadata.annotations.kubernetes.io/change-cause:에 데이터를 추가하면 된다
-- 디플로이먼트 변경 히스토리
root@k8s-master1:~/kubespray/inventory/test/group_vars/k8s_cluster# k rollout history deploy nginx-deployment
deployment.apps/nginx-deployment
REVISION CHANGE-CAUSE
1 <none>
2 <none>
3 <none>
-- 디플로이먼트 히스토리 상세
root@k8s-master1:~/kubespray/inventory/test/group_vars/k8s_cluster# k rollout history deploy nginx-deployment --revision=3
deployment.apps/nginx-deployment with revision #3
Pod Template:
Labels: app=nginx-deployment
pod-template-hash=75c99c94fb
Containers:
nginx-deployment:
Image: nginx:1.10.1
Port: 80/TCP
Host Port: 0/TCP
Environment: <none>
Mounts: <none>
Volumes: <none>
-- 디플로이먼트 롤백
root@k8s-master1:~/kubespray/inventory/test/group_vars/k8s_cluster# k rollout undo deploy nginx-deployment
deployment.apps/nginx-deployment rolled back
-- 히스토리 변경 내용 메모
root@k8s-master1:~/kubespray/inventory/test/group_vars/k8s_cluster# vi nginx-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx-deployment
annotations:
kubernetes.io/change-cause: version 1.10.1
root@k8s-master1:~/kubespray/inventory/test/group_vars/k8s_cluster# k apply -f nginx-deployment.yaml
-- 히스토리 CHANGE-CAUSE
root@k8s-master1:~/kubespray/inventory/test/group_vars/k8s_cluster# k rollout history deploy nginx-deployment
deployment.apps/nginx-deployment
REVISION CHANGE-CAUSE
3 <none>
4 <none>
5 version 1.10.1