blog 배포하기

띠로리·2024년 7월 26일

데브옵스 개념 정리

목록 보기
13/13


blog.choigang.com 도메인으로 블로그 배포하기!

간단하게 용어를 정리해보자.
Ingress : 클러스터 내의 서비스에 대한 외부 접근을 관리하는 API 오브젝트이며, 일반적으로 HTTP를 관리한다.
Node : 클러스터의 일부이며, 쿠버네티스에 속한 워커 머신을 뜻한다.
Service : Pod 집합을 식별하는 쿠버네티스 서비스이다.

1. 서비스 도메인 구성하기

  • ingress-www.choigang.com.yaml 파일 작성

    본인의 도메인에 맞춰서 host를 작성한다.

---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-nginx-demo
  namespace: default
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
spec:
  ingressClassName: nginx
  rules:
    - host: www.choigang.com
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: ingress-nginx-demo
                port:
                  number: 80
  • choigang.com.zone 파일 수정

    IP 주소를 작성하기 위해 pod를 생성하고 ingress를 조회해보자.

    kubectl create -f ingress-www.choigang.com.yaml
    kubectl get ingress -w
    > ingress-nginx-demo   nginx   www.choigang.com   10.10.0.240   80      6m22s

    위 결과에 적혀있는 10.10.0.240을 가지고 zone 파일을 수정해보자.

    필요없는 도메인은 지우고, wwwblog를 추가한다.

    혹시 작동하지 않는다면, 시리얼번호를 1 올려보자.

$TTL    4200
choigang.com.              IN      SOA     dns1.choigang.com. admin.choigang.com. (
                                        2024071905      ; Serial
                                        7200            ; Refresh
                                        3600            ; Retry
                                        604800          ; Expire
                                        7200)           ; NegativeCacheTTL

                        IN      NS      dns1.example.com.

demo.io.                IN      A       10.10.0.10
www                     IN      A       10.10.0.240
blog                    IN      A       10.10.0.240
  • choigang.com.zone 파일 적용

    zone 파일의 수정 내용을 반영하기 위해 아래 커맨드를 사용한다.

    systemctl restart named
  • ingress-blog.choigang.com.yaml 파일 작성

    마찬가지로 host를 본인의 설정에 맞게 잘 바꿔서 작성해준다.

---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-nginx-blog
  namespace: default
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
spec:
  ingressClassName: nginx
  rules:
    - host: blog.choigang.com
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: blog
                port:
                  number: 8080
  kubectl create -f ingress-blog.demo.io.yaml

위에서 작성한 yaml 파일들로 쿠버네티스 pod를 만든다.

kubectl create -f ingress-www.choigang.com.yaml
kubectl create -f ingress-blog.choigang.com.yaml

이때, 각 파일의 host를 내가 기존에 만들어둔 도메인(www.choigang.com)으로 잘 작성해야한다. 아니면 페이지가 안 열리거나 에러가 뜨게 된다.

모두 잘 적용됐다면 각 도메인으로 접속했을 때 아래와 같은 화면이 뜬다.

왼쪽이 blog.choigang.com, 오른쪽이 www.choigang.com이다.

profile
차곡 차곡 기록 쌓기

2개의 댓글

comment-user-thumbnail
2024년 7월 26일

오호 글 잘 읽어보았습니다.
도메인을 갖고 계신다면 앞으로의 계획이 무엇인지 궁금합니다.
웹 호스팅과 연결하여서 웹사이트를 운영하시는 건가요?

1개의 답글