apiVersion: apps/v1 kind: Deployment # Deployment 기본 정보 metadata: name: spring-deployment # Deployment 이름 # Deployment 세부 정보 spec: replicas: 3 # 생성할 파드의 복제본 개수 selector: matchLabels: app: backend-app # 아래에서 정의한 Pod 중 'app: backend-app'이라는 값을 가진 파드를 선택 # 배포할 Pod 정의 template: metadata: labels: # 레이블 (= 카테고리) app: backend-app spec: containers: - name: spring-container # 컨테이너 이름 image: spring-server # 컨테이너를 생성할 때 사용할 이미지 imagePullPolicy: IfNotPresent # 로컬에서 이미지를 먼저 가져온다. 없으면 레지스트리에서 가져온다. ports: - containerPort: 8080 # 컨테이너에서 사용하는 포트를 명시적으로 표현 env: - name: DB_HOST value: mysql-service # Service의 name만 입력하면 다른 서비스와 통신할 수 있다. - name: DB_PORT value: "3306" # 숫자값을 문자로 인식하게 만들기 위해 쌍따옴표 붙여야 한다. - name: DB_NAME value: kub-practice - name: DB_USERNAME value: root - name: DB_PASSWORD value: wrong-password
$ kubectl apply -f spring-deployment.yaml $ kubectl rollout restart deployment spring-deployment
$ kubectl get pods

$ kubectl logs [파드명]

apiVersion: apps/v1 kind: Deployment # Deployment 기본 정보 metadata: name: spring-deployment # Deployment 이름 # Deployment 세부 정보 spec: replicas: 3 # 생성할 파드의 복제본 개수 selector: matchLabels: app: backend-app # 아래에서 정의한 Pod 중 'app: backend-app'이라는 값을 가진 파드를 선택 # 배포할 Pod 정의 template: metadata: labels: # 레이블 (= 카테고리) app: backend-app spec: containers: - name: spring-container # 컨테이너 이름 image: spring-server # 컨테이너를 생성할 때 사용할 이미지 imagePullPolicy: IfNotPresent # 로컬에서 이미지를 먼저 가져온다. 없으면 레지스트리에서 가져온다. ports: - containerPort: 8080 # 컨테이너에서 사용하는 포트를 명시적으로 표현 env: - name: DB_HOST value: mysql-service # Service의 name만 입력하면 다른 서비스와 통신할 수 있다. - name: DB_PORT value: "3306" # 숫자값을 문자로 인식하게 만들기 위해 쌍따옴표 붙여야 한다. - name: DB_NAME value: kub-practice - name: DB_USERNAME value: root - name: DB_PASSWORD value: password123
$ kubectl apply -f spring-deployment.yaml $ kubectl rollout restart deployment spring-deployment
$ kubectl get pods

