본문 바로가기

DevOps/쿠버네티스

[쿠버네티스 기초]spring boot rest application POD 배포하기(part2)

 

준비물

  • 20min

  • 쿠버네티스가 준비된 클러스터환경

  • Intellij or eclipse

  • docker

docker hub에 올라간 이미지 쿠버네티스에 배포

※ 쿠버네티스의 kubectl 명령어에 대해서는 쿠버네티스 kubectl 설명 및 예제 모음(바로가기) 포스트 참고
 
1. 쿠버네티스에 docker hub 관련 secret을 등록한다.
(쿠버네티스 시크릿? - OAuth token, password 등 민감 정보를 Object type으로 선언)
 

$ kubectl create secret docker-registry my-secret --docker-server=hub.docker.com --docker-username=choco4235 --docker-password=password1234 --docker-email=choco4325@gmail.com

 

2. sample.yaml 작성

apiVersion: apps/v1beta2 # for versions before 1.8.0 use apps/v1beta1
kind: Deployment
metadata:
  name: rest-sample-app-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: rest-sample-app
  template:
    metadata:
      labels:
        app: rest-sample-app
    spec:
      containers:
      - name: rest-sample-app
        image: choco4235/rest-sample-app:latest
        ports:
        - containerPort: 8080
        imagePullPolicy: Always

 

3. sample.yaml deploy

 

$ kubectl create -f sample.yaml

4. deploy 정상적으로 되었는지 확인

 

$ kubectl get deployments

$ kubectl get pod

5. sample-service.yaml 작성

apiVersion: v1
kind: Service
metadata:
  name: rest-sample-app-service
spec:
  ports:
    - name: "8080"
      port: 8081
      targetPort: 8080
  selector:
    app: rest-sample-app
  type: NodePort
 

 

 

6. sample-service.yaml 배포

 

$ kubectl apply -f sample-service.yaml

7. 정상적으로 service가 활성화 되었는지 확인, port 확인

 

$ kubectl get service

8. pod 상세 정보 확인, ip 확인

 

$ kubectl describe pod rest-sample-app-deployment-5fd8bf-kdbbr

9. chrome에서 pod에 해당하는 ip, port 입력하여 호출 확인

 

End of Document.

반응형