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

'Kubernetes' 카테고리의 다른 글
| Kubernetes : 로드밸런싱 (0) | 2024.12.23 |
|---|---|
| Kubernetes : 트래픽 라우팅 (Ingress Controller 설정) (1) | 2024.12.23 |
| Kubernetes : WEB 서비스 (WordPress) ↔ MySQL 연동 및 서비스 구축 (1) | 2024.12.19 |
| Kubernetes : WEB 서비스 (Apache) 구축 (0) | 2024.12.18 |
| Kubernetes : Cluster Node Join (1) | 2024.12.18 |