[k8s] Pods 구성 및 도메인 연동 실습
문제
wordpress 이미지를 3개의 파드로 구성된 디플로이먼트로 생성하시오. 이후 해당 파드의 내용물이 https://mydomain.click/wp 라는 URL로 외부에 출력되도록 만드시오.
1. NameSpace 생성
kubectl create namespace wordpress
2. Ingress Controller 설치
외부 요청을 클러스터 내부의 여러 서비스로 "경로 기반' "호스트기반"으로 라우팅 하기 위해 설치
helm upgrade --install ingress-nginx ingress-nginx --repo https://kubernetes.github.io/ingress-nginx --namespace ingress-nginx --create-namespace --set controller.admissionWebhooks.enabled=false
3. Deployment, Ingress, Service 생성
yaml 구성
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: wordpress
labels:
app: wordpress
spec:
replicas: 3
selector:
matchLabels:
app: wordpress
template:
metadata:
labels:
app: wordpress
spec:
containers:
- name: wordpress-con
image: wordpress:latest
ports:
- containerPort: 80 # ✅ 오타 수정
---
apiVersion: v1
kind: Service
metadata:
name: wordpress-service # ✅ 밑줄 제거
spec:
selector:
app: wordpress
ports:
- port: 80
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: wordpress-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
ingressClassName: nginx
rules:
- http:
paths:
- path: /wordpress
pathType: Prefix
backend:
service:
name: wordpress-service
port:
number: 80