이재홍의 언제나 최신 Kubernetes - Unit 4. Nginx YAML 설정 파일 작성하기

저작권 안내
  • 책 또는 웹사이트의 내용을 복제하여 다른 곳에 게시하는 것을 금지합니다.
  • 책 또는 웹사이트의 내용을 발췌, 요약하여 강의 자료, 발표 자료, 블로그 포스팅 등으로 만드는 것을 금지합니다.

Nginx YAML 설정 파일 작성하기

이재홍 http://www.pyrasis.com

Unit 3.2 Nginx 웹서버 실행하기에서 kubectl 명령으로 Nginx 디플로이먼트와 서비스를 만들어보았습니다. 하지만 kubectl로는 세부 옵션을 설정하기 불편하므로, 이번에는 같은 Nginx 디플로이먼트와 서비스를 YAML 파일로 작성해서 만들어보겠습니다.

쿠버네티스에서는 설정파일을 매니페스트(manifest)라고 부르며 YAML 형식으로 작성합니다(JSON 형식도 가능합니다). YAML은 JSON과 호환되는 슈퍼셋이지만, 중괄호({})가 없고, 문자열을 따옴표("")로 묶지 않아도 됩니다. 특히, 계층 관계를 들여쓰기로 표현하는데, 이 문서에서는 계층 관계를 스페이스 2칸으로 표현하겠습니다.

Nginx 디플로이먼트

다음 내용을 deployment.yaml 파일로 저장합니다.

deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: hello-nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: hello-nginx
  template:
    metadata:
      labels:
        app: hello-nginx
    spec:
      containers:
        - name: hello-nginx
          image: nginx:latest
          ports:
            - containerPort: 80

다음 명령을 실행하여 deployment.yaml 파일로 디플로이먼트를 생성합니다.

$ kubectl create -f deployment.yaml
deployment.apps/hello-nginx created

Nginx 서비스

이번에는 서비스를 생성해보겠습니다. 다음 내용을 service.yaml 파일로 저장합니다.

service.yaml
apiVersion: v1
kind: Service
metadata:
  name: hello-nginx
spec:
  selector:
    app: hello-nginx
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
  type: ClusterIP

다음 명령을 실행하여 service.yaml 파일로 서비스를 생성합니다.

$ kubectl create -f service.yaml
service/hello-nginx created

그럼 kubectlport-forward 기능을 사용해서 서비스에 접근해보겠습니다.

$ kubectl port-forward service/hello-nginx 8000:80
Forwarding from 127.0.0.1:8000 -> 80
Forwarding from [::1]:8000 -> 80

그림 4-1 Nginx 서비스와 디플로이먼트

웹 브라우저를 열고 http://127.0.0.1:8000에 접속하면 Welcome to nginx!가 표시될 것입니다.

디플로이먼트와 서비스 삭제

디플로이먼트와 서비스를 삭제하려면 kubectl delete -f 명령을 사용합니다.

$ kubectl delete -f deployment.yaml
$ kubectl delete -f service.yaml

디플로이먼트와 서비스 설정 변경

deployment.yaml 파일과 service.yaml 파일을 수정한 뒤 변경된 설정을 적용하려면 kubectl apply -f 명령을 사용합니다.

$ kubectl apply -f deployment.yaml
$ kubectl apply -f service.yaml

저작권 안내

이 웹사이트에 게시된 모든 글의 무단 복제 및 도용을 금지합니다.
  • 블로그, 게시판 등에 퍼가는 것을 금지합니다.
  • 비공개 포스트에 퍼가는 것을 금지합니다.
  • 글 내용, 그림을 발췌 및 요약하는 것을 금지합니다.
  • 링크 및 SNS 공유는 허용합니다.

Published

2022-10-22