728x90
반응형
# YAML 형식의 리소스 매니페스트
kubectl run 명령어로 해당 서비스를 수행하는것도 문제가 되지 않는다. 허나, 관리 및 재사용 목적으로 서비스를 조금 더 유연하게 사용하고자 한다면 deployment를 활용하는것이 바람직하다. yaml 파일로 작성하고, 만약 버전의 변경이나 업데이트가 된다면 yaml내용만 수정하여 다시 배포하면 자동으로 변경된 내용이 적용되기 때문에 관리가 편리해진다.
# 실행파일 생성
vim jenkins-deploy.yaml
- 아래의 내용을 작성하고 저장하자.
apiVersion: apps/v1
kind: Deployment
metadata:
name: deploy-jenkins
labels:
app: jenkins-test
spec:
replicas: 3
selector:
matchLabels:
app: jenkins-test
template:
metadata:
labels:
app: jenkins-test
spec:
containers:
- name: jenkins
image: jenkins/jenkins:lts
ports:
- containerPort: 8080
- 생성한 yaml 파일을 실행하자.
kubectl create -f jenkins-deploy.yaml
kubectl get all
kubectl get pod
# pod을 일부러 삭제하기
kubectl delete pod [pod id]
kubectl get pod
- 정상적으로 돌아온것을 확인 가능
kubectl get rs
kubectl describe rs [pod-id]
- pod를 삭제 하였지만 바로 다시 살아나서 서비스가 되고 있는것을 확인 할 수 있다.
# 레이블 조회
kubectl get pod
kubectl get pod --show-labels
ec2-user:~/environment/yaml $ kubectl get pod --show-labels
NAME READY STATUS RESTARTS AGE LABELS
deploy-jenkins-7dcdf75b94-gngq8 0/1 Pending 0 3m29s app=jenkins-test,pod-template-hash=7dcdf75b94
deploy-jenkins-7dcdf75b94-r2tq4 0/1 Pending 0 3m29s app=jenkins-test,pod-template-hash=7dcdf75b94
deploy-jenkins-7dcdf75b94-t2j8f 0/1 Pending 0 116s app=jenkins-test,pod-template-hash=7dcdf75b94
ec2-user:~/environment/yaml $
# app과 관련된 레이블 생성
kubectl label pod [pod-id] app-
kubectl get pod
- 명령어: kubectl label pod deploy-jenkins-7dcdf75b94-gngq8 app-
ec2-user:~/environment/yaml $ kubectl label pod deploy-jenkins-7dcdf75b94-gngq8 app-
pod/deploy-jenkins-7dcdf75b94-gngq8 labeled
ec2-user:~/environment/yaml $ kubectl get pod --show-labels
NAME READY STATUS RESTARTS AGE LABELS
deploy-jenkins-7dcdf75b94-gngq8 0/1 Pending 0 4m38s pod-template-hash=7dcdf75b94
deploy-jenkins-7dcdf75b94-hbr5l 0/1 Pending 0 5s app=jenkins-test,pod-template-hash=7dcdf75b94
deploy-jenkins-7dcdf75b94-r2tq4 0/1 Pending 0 4m38s app=jenkins-test,pod-template-hash=7dcdf75b94
deploy-jenkins-7dcdf75b94-t2j8f 0/1 Pending 0 3m5s app=jenkins-test,pod-template-hash=7dcdf75b94
- 라벨링 하기: 4s 로 표시되는 신규 라벨이 생성된 것을 확인 할 수있다.
ec2-user:~/environment/yaml $ kubectl get pod --show-labels
NAME READY STATUS RESTARTS AGE LABELS
deploy-jenkins-7dcdf75b94-7zrjx 0/1 Pending 0 4s app=jenkins-test,pod-template-hash=7dcdf75b94
deploy-jenkins-7dcdf75b94-gngq8 0/1 Pending 0 8m40s pod-template-hash=7dcdf75b94
deploy-jenkins-7dcdf75b94-hbr5l 0/1 Pending 0 4m7s pod-template-hash=7dcdf75b94
deploy-jenkins-7dcdf75b94-r2tq4 0/1 Pending 0 8m40s app=jenkins-test,pod-template-hash=7dcdf75b94
deploy-jenkins-7dcdf75b94-t2j8f 0/1 Pending 0 7m7s app=jenkins-test,pod-template-hash=7dcdf75b94
ec2-user:~/environment/yaml $
# 스케일링하기
kubectl scale deploy deploy-jenkins --replicas=5
# app이 있는 pod만 조회하기
kubectl get pod -l app
728x90
반응형
'⭐ Kubernetes & EKS > EKS' 카테고리의 다른 글
EKS 리소스 삭제(Delete) (0) | 2021.10.09 |
---|---|
EKS 점검사항 (0) | 2021.10.08 |
EKS pod, nodes 의 자원 모니터링 (kubectl top) (0) | 2021.10.06 |
EKS Liveness Probe, Readiness Probe, Startup Probe (0) | 2021.10.05 |
EKS Jenkins 디스크럽터 작성 (0) | 2021.10.05 |