준비물
-
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.
반응형
'DevOps > 쿠버네티스' 카테고리의 다른 글
쿠버네티스 kubectl 설명 및 예제 모음 (902) | 2018.07.07 |
---|---|
쿠버네티스 로그 아키텍쳐 개요 및 방법 (1257) | 2018.07.05 |
쿠버네티스 RBAC(Role-based Access Control) 상세 설명 및 예제 (1234) | 2018.06.26 |
[쿠버네티스 기초]spring boot rest application POD 배포하기(part1) (1422) | 2018.06.25 |
젠킨스(with 쿠버네티스 플러그인)가 쿠버네티스에서 동작하는 원리, 생명주기, 특징 (955) | 2018.06.24 |
쿠버네티스 yaml 선언시 어떤 apiVersion을 사용해야 할까? (1420) | 2018.06.24 |