선언형 오브젝트

심규환·2022년 1월 21일
0

Kubernetes

목록 보기
3/5
post-thumbnail

1. 오브젝트 생성

yaml 또는 json 파일로 오브젝트를 정의하고 원하는 디렉터리에 모아놓고 다음과 같은 명령어를 입력하면 오브젝트가 실행된다.
오브젝트 생성 명령은 선언형 오브젝트명령형 커맨드, 명령형 오브젝트가 있는데. 섞어서 쓰면 안된다!

다음은 예시이다.
object 디렉터리를 만들고 simple_deployment.yaml을 정의했다.

	apiVersion: apps/v1
		kind: Deployment
		metadata:
		  name: nginx-deployment
		spec:
		  selector:
		    matchLabels:
		      app: nginx
		  minReadySeconds: 5
		  template:
		    metadata:
		      labels:
		        app: nginx
		    spec:
		      containers:
		      - name: nginx
		        image: nginx:1.14.2
		        ports:
        - containerPort: 80
  • object 디렉터리 안의 오브젝트 모두 실행
    #kubectl apply -f ./object/

  • kubectl get을 사용하여 정보 출력
    #kubectl get -f ./object/simple_deployment.yaml -o yaml

2. 오브젝트 업데이트

1) 기존

  • nginx-deployment를 보면 pod가 1개인 것을 확인할 수 있다.

2) Scale Up

#kubectl scale deployment/nginx-deployment --replicas=2

  • pod 개수 2개로 설정

3) nginx의 버전을 올려보자. nginx1:1.14.2(기존) -> nginx:1.16.1

  • 새로운 오브젝트 yaml 파일을 작성

Update_deployment.yaml

	apiVersion: apps/v1
		kind: Deployment
		metadata:
		  name: nginx-deployment
		spec:
		  selector:
		    matchLabels:
		      app: nginx
		  template:
		    metadata:
		      labels:
		        app: nginx
		    spec:
		      containers:
		      - name: nginx
		        image: nginx:1.16.1 # update the image
		        ports:
		        - containerPort: 80

4) 기존 버전과 업데이트 버전과의 차이점을 출력

#kubectl apply -f ./object/update_deployment.yaml

<확인>
#kubectl describe deployment/nginx-deployment
#kubectl get -f ./object/update_deployment.yaml -o yaml

3. 오브젝트 삭제

오브젝트 삭제는 명령어 커맨드를 이용하는 것을 권장한다. 이유는 무엇을 삭제하는지 명확하게 알 수 있기 때문이다.

#kubectl delete -f ./simple_deployment.yaml

  • 파일을 지우는게 아닌, deployment에 올라가 있는 오브젝트를 지운다.

#kubectl get deployment

profile
장생농씬가?

0개의 댓글