Vagrant 설치한 뒤 아래 환경을 구축했다는 전제로 Vagrant 가상머신 각각에 docker를 설치하여 그 안에서 wordpress를 구현을 해볼 예정이다. 아래 내용을 참고하면 된다. 이와 관련하여 궁금한 점은 지난 포스팅을 참고하면 된다.
<Ubuntu 18.04 Vagrant 설치 및 기본 사용법, 명령어>
Ubuntu 18.04 Vagrant 설치 및 기본 사용법, 명령어
VMware나 VirtualBox처럼 가상머신에 가상 컴퓨터가 많이 올라가있으면 부팅이 안 되는 현상이 발생할 수 있다. 그렇기 때문에 안 쓰는 가상 컴퓨터는 싹 정리해주는 과정이 사전에 필요하다. Kubernete
simroot.tistory.com
* 준비사항 : Vagrant로 만들었던 3개의 가상머신 kube-control1, kube-node1, kube-node2
wordpress 구현 실습은 kube-control1에서 진행한다.
도커를 사용하는 것 처럼 먼저 도커 레포지토리를 추가하고 패키지를 설치해주어야 한다.
<도커엔진 설치>
Install Docker Engine on Ubuntu
docs.docker.com
위 본문 내용을 참고하여서 도커 레포지토리와 GPG key, 도커엔진을 설치해준다.
docker로 접근하는 경로는 일반 사용자로는 실행되지 않으며, root 계정이어야 한다. 따라서 명령어 앞에 sudo를 사용하거나 일반 사용자도 사용할 수 있도록 docker 그룹을 추가해줘야 한다.
vagrant@kube-control1:~$ sudo usermod -aG docker vagrant
vagrant@kube-control1:~$ id
uid=1000(vagrant) gid=1000(vagrant) groups=1000(vagrant)
docker 보조그룹을 추가해주었다. 권한추가를 하고나서 바로 적용되는 것은 아니고, 재접속을 해줘야 한다.
vagrant@kube-control1:~$ exit
user@test:~/vagrant/kubernetes$ vagrant ssh kube-control1
vagrant@kube-control1:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
-> 일반 사용자로도 docker ps 명령이 permission denied 에러가 나지 않고 잘 실행된다.
wordpress
이제 wordpress를 구축할 환경이 마련되었다.
이후 dockerhub에서 wordpress image를 다운로드한다. 참고로 이미지의 버전(tag) 중 latest가 디폴트값으로 설정되어있다. 주의할 점은 오늘의 latest와 내일의 latest는 다를 수 있기 때문에 가능한 latest태그를 사용하는 것이 아니라 버전을 지정해주는 것이 원칙이다. 간단한 실습을 할 거지만 안정적인 구성을 위해 최신버전보다는 나온지 조금 된 버전으로 사용한다. 5.7버전을 이용하도록 하자.
도커허브에 들어가보면 이 이미지들을 어떻게 사용할 수 있는지 가이드들이 나와있다. How to use this image가 적혀져있는 곳을 보면 환경변수들을 지정할 수 있다.
-e WORDPRESS_DB_HOST=...
-e WORDPRESS_DB_USER=...
-e WORDPRESS_DB_PASSWORD=...
-e WORDPRESS_DB_NAME=...
기본적으로 wordpress의 포트는 80번포트이며 dettach인 -d 옵션을 사용하여 동작시키면 된다. 그리고 중요한 것은 run을 할 때 볼륨지정을 해준다는 것이다.
* 볼륨 : /var/www/html
* 워드프레스는 포트포워딩을 해줘야 함.
MySQL
도커허브 MySQL official 이미지에 보면 이것도 8버전과 5버전이 나와있다. 대부분 5버전대를 주로 사용하기 때문에 실습은 5.7버전으로 다운로드 받아서 진행한다. 추가로 자주 사용하는 환경변수 3가지도 있으며 이것 또한 docker run 실행시 -d 모드로 사용한다.
MYSQL_DATABASE
MYSQL_USER
MYSQL_PASSWORD
* 볼륨 : /var/lib/mysql
control plane인 cube-control1에서 아래와 같이 구현한다.
vagrant@kube-control1:~$ docker pull wordpress:5.7
vagrant@kube-control1:~$ docker pull mysql:5.7
vagrant@kube-control1:~$ docker run -d --name wpdb -e MYSQL_ROOT_PASSWORD=toor -e MYSQL_DATABASE=wpdb -e MYSQL_USER=wp -e MYSQL_PASSWORD=wppass -v wp-vol:/var/lib/mysql mysql:5.7
vagrant@kube-control1:~$ docker run -d -p 8080:80 --name wp --link wpdb:wpdb -e WORDPRESS_DB_HOST=wpdb -e WORDPRESS_DB_USER=wp -e WORDPRESS_DB_PASSWORD=wppass -e WORDPRESS_DB_NAME=wpdb -v wp-vol:/var/www/html wordpress:5.7
wordpress와 mysql 이미지 5.7버전을 pull(다운로드)한 뒤, DB, wordpress 순서로 docker run 해준다.
워드프레스는 80번포트를 사용하기 때문에 8080번으로 지정했을 때 확인할 수 있도록 -p 옵션으로 포트포워딩을 해주었다.
--link를 해줌으로써 db와 연동시켰다.
run할 때 자주 사용하는 환경변수들을 각각 지정해주었고, wp-vol이라는 볼륨을 생성하여 각각 위치를 연결시켰다. 따라서 아래와 같이 확인할 수 있다.
vagrant@kube-control1:~$ docker volume ls
local wp-vol
wp-vol 확인됨.
이제 새 탭에서 kube-control1의 ip주소를 입력한 뒤, 8080포트로 접근하면 워드프레스 회원가입하는 화면이 등장한다. 아이디와 비밀번호를 입력하고 로그인하면 메인 페이지가 확인된다.
주소탭 검색 : 192.168.100.11:8080 -> 회원가입 진행 -> 로그인 -> 아래 결과화면
결과적으로 wordpress가 구현되었고, 이제 이 안에서 글을 남기고 댓글을 작성하는 내용들이 mysql db에 저장되게 된다. 간단하게 작업해볼 수 있는 docker로 구현해보는 wordpress 테스트였다. 항상 모든 실습을 마무리할 때에는 vagrant를 halt해서 잠시 멈춰주도록 한다. 그렇지 않으면 호스트 컴퓨터를 종료할 수가 없기 때문이다.
user@test:~/vagrant/kubernetes$ vagrant halt
'Kubernetes' 카테고리의 다른 글
[쿠버네티스] Vagrant를 이용한 kubeadm 클러스터 업그레이드(Version에 대하여) (0) | 2021.06.18 |
---|---|
Ubuntu 18.04 LTS, Vagrant를 이용한 쿠버네티스 아키텍처 설치 (0) | 2021.06.18 |
쿠버네티스란 무엇인가? (0) | 2021.06.17 |
마이크로서비스와 Devops에 대하여 (0) | 2021.06.17 |
Ubuntu 18.04 Vagrant 설치 및 기본 사용법, 명령어 (0) | 2021.06.15 |