목록전체 글 (28)
ITFragile

구성목표 1. web 배포 방식 : Deployment 디플로이먼트 2. 서비스 : Ingress 설정 - 외부에서 내부 파드로 접속시 포워딩 해주는 로드밸런서 기능 - 인그레스의 URL 주소로 접속하여 서비스를 통해 파드로 전달되도록 설정 3. 볼륨 : 컨피그맵을 볼륨으로 사용 - index.html , index.php 작성 후 컨피그맵 생성하여 볼륨으로 마운트 4. 오토스케일링 : HPA 구성 - 불필요한 리소스 낭비를 줄이고 파드 개수를 리소스 사용량을 기준으로 자동으로 관리하기 위해 사용 1. Ingress 설정 apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: my-ing spec: rules: - host: web.kyungeun..

web server 구성에 필요한 apache2, php, php-mysql 이 합쳐진 이미지를 Dockerfile로 작성하여 빌드하도록 한다. 먼저, 이미지 빌드를 위해 Docker 설치부터 진행한다. 1. Docker 설치 sudo apt-get install ca-certificates curl gnupg lsb-release 2. gpg키 저장할 디렉토리 생성 $ sudo mkdir -p /etc/apt/keyrings 3. gpg 키 저장 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg 4. 도커 설치할 repository 추가 echo "deb [a..

구성 목표 1. DB 배포 방식 : StatefulSet 스테이트풀셋 - 파드들의 순서 및 고유성을 보장하기 때문에 상태가 있는 DB같은 경우 스테이트풀셋으로 배포한다. 이때 클러스터 IP가 없는 헤드리스 서비스(IP주소를 할당하지 않는 방식)를 사용 파드 이름이 고정이고 serviceName 설정을 해서 특정 파드를 지정해서 접속 가능하도록 함. 2. DB 이중화 : Master, Slave로 운영 - mysql 설정 파일 컨피그맵 : Master, Slave 독립적으로 제어 (Slave는 읽기 전용) 3. 서비스 : 각 파드에 따로 접근하기 위해 헤드리스 서비스 이용 - 단, DB를 외부에서 읽기 위한 비헤드리스 서비스도 추가하여, db-read로 접근시 로드밸런서를 통해 아무 노드나 접근 가능하도록..

작업환경 : virtualbox / ubuntu 20.04 Kubespray를 이용한 쿠버네티스 클러스터 설치 Control Plane (마스터 노드) : 1대 node : 3대 Control-node Info name: control-plane01 ip : 192.168.56.11 node01 Info name: node01 ip : 192.168.56.21 node02 Info name: node02 ip : 192.168.56.22 node03 Info name: node03 ip : 192.168.56.23 vagrant ssh control-plane01 1. 키 생성 ssh-keygen 2. 키 복사 ssh-copy-id vagrant@node01 ssh-copy-id vagrant@node0..

앞서 작성한 haproxy.cfg.j2에는 lb서버가 web을 로드밸런싱 할 수 있도록 frontend, backend 정보가 작성되어 있었다. DB도 lb 서버를 통해 백엔드로 전달될 수 있도록 설정한다. 1. haproxy.cfg.j2 수정 # haproxy.cfg.j2 frontend web-lb bind *:80 default_backend webserver option forwardfor backend webserver balance roundrobin {% for host in groups['web'] %} server {{ hostvars[host].inventory_hostname }} {{ hostvars[host]['ansible_facts']['enp0s8']['ipv4']['addr..

1. DB와 WEB을 연결해주기 위해 main 플레이북 하단에 새 파일 연결 # main.yaml - name: DB WEB Connection hosts: web tasks: - import_tasks: php.yaml 2. php 설치 및 index.php 전달 # php.yaml - name: yum install python apt: name: - python3-pymysql - php - php-mysql state: latest - name: copy index.php template: # 템플릿 파일을 지정된 이름으로 원격 서버에 복사 src: index.php dest: /var/www/html - name: restart apache2 service: name: apache2 state:..