1. 실습 의도

 1.1. WordPress 애플리케이션 실행 (가정 : 노드 PC 3대 연결되어 있는 상태, DB Pod 실행 중)

   1.1.1. Deployment를 통해 WordPress 애플리케이션을 실행하는 두 개의 Pod를 생성

   1.1.2. 각 Pod는 동일한 WordPress 컨테이너를 실행하며, 데이터베이스(192.168.166.141)와 연동

 1.2. 서비스화

   1.2.1. svc-word라는 NodePort 타입의 Service를 생성하여 클러스터 외부에서 WordPress 애플리케이션에 접근

   1.2.2. 외부 클라이언트는 클러스터 노드 IP와 포트(32000번)를 사용하여 WordPress 애플리케이션에 요청 가능

 1.3. 고가용성과 부하 분산

   1.3.1. Deployment를 통해 동일한 Pod 2개를 유지, 한 Pod에 문제가 생기더라도 다른 Pod가 트래픽을 처리

   1.3.2. Service는 트래픽을 두 Pod로 균등하게 분산

 

2. 세부 방법

  2.1. .yml 파일 생성 : vi word.yml

  2.2. 코드 입력

apiVersion: apps/v1
kind: Deployment
metadata:
  name: dep-word
  labels:
    app: word
spec:
  selector:
    matchLabels:
      rep: word
  replicas: 2
  template:
    metadata:
      name: dep-word
      labels:
        rep: word
    spec:
      containers:
      - name: wordpress
        image: wordpress
        imagePullPolicy: Never
        env:
        - name: WORDPRESS_DB_HOST
          value: 192.168.166.141
        - name: WORDPRESS_DB_NAME
          value: wordpress
        - name: WORDPRESS_DB_USER
          value: root
        - name: WORDPRESS_DB_PASSWORD
          value: It12345!
        ports:
        - containerPort: 80

---

apiVersion: v1
kind: Service
metadata:
  name: svc-word
  labels:
    run: word
spec:
  type: NodePort
  ports:
  - port: 80
    targetPort: 80
    nodePort: 32000
    protocol: TCP
  selector: 
    rep: word

 

  2.3. 실행 : kubectl apply -f word.yml

  2.4. 확인 : watch -n 2 kubectl get pods,replicaset,deploy,svc -o wide --show-labels

+ Recent posts

# 드래그 금지