스펙문서로 pod / service 띄우기

알파로그·2023년 7월 4일
0

Kubernetes

목록 보기
10/15

✏️ 필요성

  • 지금까지 방식은 deployment 와 Service 을 띄우고,
    추가적인 환경설정이 필요하면 yaml 문서를 직접 수정해줘야 했다.
  • 하지만 이러한 과정들을 문서화해서 deployment 와 service 를 완성된 상태로 띄울 수 있다.

✏️ 문서 생성하기

  • yml 문서를 직접 생성할 수 있지만,
    이미 생성된 service 의 문서를 저장해 재사용 할 수 있다.
    - 포스팅에서는 Service 만 다루고 있지만,
    deployment 도 같은 방식으로 띄울 수 있다.

📍 문서를 보관할 디렉토리 만들기

mkdir -p /kube/service && cd /kube/service

📍 생성된 service 의 스펙 문서 복제

  • 아래 명령어로 이미 생성되어있는 service 의 스팩문서를 확인할 수 있다.
kubectl get service/서비스명 -o yaml
  • 이 방식을 이용해 생성했던 디렉토리로 문서를 복사한다.
    • 혹시 유실될 수 있는 문제를 방지하기 위해 해당 문서는 origin 으로 표시해준 다음,
      origin 문서를 복사하는 방식으로 사용한다.
kubectl get service/서비스명 -o yaml > /kube/service/service.yaml.origin
  • 이렇게 생성된 origin 문서에서 필요없는 부분은 아래와 같이 삭제해준다.
    • 기준은 내가 생성할 때 명시하지 않았던 값들이다.
    • 이제 문서가 필요할 때 마다 origin 을 제거해준 상태로 복사해서 사용하면 된다.
apiVersion: v1
kind: Service
metadata:
  labels:
    app: webserver-hello
  name: webserver-hello
  namespace: default
spec:
  ports:
  - port: 8080
    protocol: TCP
    targetPort: 80
  selector:
    app: webserver-hello
  sessionAffinity: ClientIP
  type: ClusterIP

📍 생성한 문서로 service 띄우기

  • 만약 기존에 같은 이름의 service 가 있다면 삭제해주어야 한다.
kubectl apply -f 문서디렉토리/문서명
# EX)
kubectl apply -f /kube/service.yaml
  • 준비된 문서를 기반으로 service 가 정상적으로 생성되었다.
NAME                      TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
service/kubernetes        ClusterIP   10.96.0.1       <none>        443/TCP    8h
service/webserver-hello   ClusterIP   10.106.125.92   <none>        8080/TCP   7s
profile
잘못된 내용 PR 환영

0개의 댓글