본문 바로가기

k8s 실전 프로젝트/2. Application 빌드와 배포

2. EKS에 Wordpress 설치

1. WordPress 설치

1) WordPress를 EKS cluster에 설치

bitnami charts 레포지토리를 사용해 WordPress를 EKS cluster에 설치한다.
Cloud9 Workspace 터미널에선 아래와 같은 명령을 실행해 WordPress 및 해당 데이터베이스를 배포하면 된다.

# Create a namespace wordpress
kubectl create namespace wordpress-cwi

# Add the bitnami Helm Charts Repository
helm repo add bitnami https://charts.bitnami.com/bitnami

# helm repository list 조회
helm repo list

# Deploy WordPress in its own namespace
helm -n wordpress-cwi install understood-zebu bitnami/wordpress

위의 chart가 생성한 것은 아래와 같다. (생성되는데 까지 약 5~10분 정도 소요된다.)

- 2개의 persistent volumes
- 다수의 secrets
- MariaDB를 위한 1개의 StatefulSet
- WordPress를 위한 1개의 배포

-# 생성된 pod 상태 확인

seungkim:~/environment $ kubectl get pod
NAME                                    READY   STATUS    RESTARTS   AGE
my-release-mariadb-0                    1/1     Running   0          4m18s
my-release-wordpress-5b47857bbb-xzfct   1/1     Running   0          4m18s

2) 배포 상태 확인

kubectl -n wordpress-cwi rollout status deployment understood-zebu-wordpress

제대로 배포됐다면 아래와같이 화면에 나타난다.

2. WordPress 접속

1) public URL 테스트

* LoadBalancer를 사용할 수 있으려면 몇 분이 소요된다.

WordPress 사이트의 URL을 출력한다.

export SERVICE_URL=$(kubectl get svc -n wordpress-cwi understood-zebu-wordpress --template "{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}")

echo "Public URL: http://$SERVICE_URL/"

2) 시작 페이지 확인

위에 출력된 URL로 들어가보면 샘플 템플릿이 적용된 WordPress 사이트가 나온다.

3) admin 인터페이스 테스트

위의 상태로는 관리자 페이지로 들어갈 수 없다.
관리자 URL과 패스워드를 설정해준다.

export ADMIN_URL="http://$SERVICE_URL/admin"
export ADMIN_PASSWORD=$(kubectl get secret --namespace wordpress-cwi understood-zebu-wordpress -o jsonpath="{.data.wordpress-password}" | base64 --decode)

echo "Admin URL: http://$SERVICE_URL/admin
Username: user
Password: $ADMIN_PASSWORD"

# 아래와 같은 정보가 출력된것을 확인 할 수 있다.
seungkim:~/environment $ export ADMIN_URL="http://$SERVICE_URL/admin"
seungkim:~/environment $ export ADMIN_PASSWORD=$(kubectl get secret --namespace wordpress-cwi understood-zebu-wordpress -o jsonpath="{.data.wordpress-password}" | base64 --decode)
seungkim:~/environment $ echo "Admin URL: http://$SERVICE_URL/admin
> Username: user
> Password: $ADMIN_PASSWORD"
Admin URL: http://a79f8932b5a0942a39b7324883c8a29a-519472971.ap-northeast-2.elb.amazonaws.com/admin
Username: user
Password: bCKcd4Nmwk

4) Admin URL 테스트

위에서 출력된 Admin URL을 들어가면 다음 화면이 표시된다.

5) Admin 페이지 로그인

Username or Email Address : user
Password : 위에 출력된 비밀번호
로그인 이후 아래와 같은 화면으로 이동됐다면 EKS cluster에서 MariaDB가 지원하는 Wordpress 설치를 성공적으로 실행한 것이다.

이로써 AWS EKS에서 Wordpress를 실행하는 구성에 대해서 알아보았다.

 

- 끝 -