![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cqCsfN/btrIddqIC0r/F2jleqJk3TpsaU1Zh8eTsK/img.png)
0. POD 1. Replicaset 2. Deployment 레플리카셋은 명령어로 따로 만들 수 없다 그렇기 때문에 yaml파일로 이미지를 하나 세팅해주고 만드는 식으로 만들어주어야 한다 replicaset은 선언적 언어로 만들어졌기 때문에 수동으로 지우더라도 다시 생성된다 이렇게 replicaset 실습 wordpress+mysql 8.0으로 구성된 pod 해당 pod를 replicaset으로 구성 pod는 두개로 시작 하나의 pod 삭제 후 재생성 확인 pod 갯수를 4개로 늘리고 배치된 node 확인 pod 갯수를 다시 2개로 줄이고 배치된 node 확인
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/currT5/btrHId5KRZL/ln1dsNkKGCSLEYAUyTFkBK/img.png)
간혹 자동으로 받은 join 키가 안먹히는 경우가 있다 수동으로 받는 토큰과 키로 접속하면 접속이 잘 된다 수동적으로 토큰을 생성하는 법 # kubeadm token create # openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //' 하면 토큰과 접속키가 생성된다 이것으로 노드에서 join 해주면 된다 [명령어] kubeadm join [master IP:port] --token [발급받은 토큰] --discovery-token-ca-cert-hash sha256:[발급받은 키] POD는 아이피가 같아 ..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/AFBmu/btrG24OAGrc/2qhm37JimahbKjlIhV0IQ1/img.png)
형상관리 + 버전관리 형상관리 = 문서관리 (소스코드 관리) 형상관리와 버전관리는 늘 같이 따라붙는다 작업물을 수정할 때 문서와 버전관리를 동반해서 진행하면 작업물의 관리가 쉽다 Local Repository - GIT Remote Repository - GITHUB, GIT NET, GIT Bucket GIT ≠ GITHUB 다르다 GIT 설치할 때 이부분만 다르게 체크해주었다 설치하고나면 볼 수 있는 기본 GIT 창 디렉터리를 하나 만들어서 init로 메인 레포지토리로 사용할 준비를 한다 .git 폴더의 내용물은 삭제하면 안된다 그냥 두자 상태 확인은 status로 한다 [기본 명령어] git status : 변경된 파일의 상태를 확인 git log : 파일들의 변경점을 확인 - -p : 변경점의 로..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/z38bC/btrFQYhODBk/cAAS1Zu8kLbKbrzFciBbA0/img.png)
#! /bin/bash sudo su - setenforce 0 yum install -y wget httpd wget https://ko.wordpress.org/latest-ko_KR.tar.gz tar xvfz latest-ko_KR.tar.gz cp -a wordpress/* /var/www/html/ cp /var/www/html/wp-config-sample.php /var/www/html/wp-config.php sed -i 's/'database_name_here'/'mysql'/g' /var/www/html/wp-config.php sed -i 's/'username_here'/'root'/g' /var/www/html/wp-config.php sed -i 's/'password_here..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dSFge5/btrFNFJcp8R/llAkwq3CFZbgCGeNABD8Y0/img.png)
구글 클라우드에서 자체적으로 DNS를 생성할 수도 있다 영역 이름과 DNS 이름을 지정해주면 만들 수 있다 이 때 DNS이름은 hosting.kr에서 받은 도메인을 사용하자 DNS를 생성하면 기본적인 SOA와 NS가 주어진다 NS를 열어보면 네임서버로 사용할 수 있는 도메인이 나온다 이것을 hosting.kr에서 네임서버명으로 등록한다 끝의 .을 빼주어야 등록이 된다 레코드 세트를 추가해보자 DNS 이름을 붙이고 도메인을 붙일 서버의 공인 IP를 가져와 넣어준다 그럼 레코드 하나가 추가된다 여기에 httpd와 dns 방화벽을 각각 추가해주면 nslookup에서도 도메인을 찾을 수 있고, 해당 서버에서 만든 페이지가 도메인으로도 연결이 된다 ftp를 설치하고 기본 설정을 마친 뒤 GCP에서 방화벽을 열면 ..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/kGCAf/btrFpvApEeP/V2TIUWmL0AGQd2NDUoRFQ0/img.png)
RDS AWS에서 데이터베이스를 컨트롤할 수 있는 서비스이다 다음과 같은 DB서버를 지원한다 일단은 익숙한 MySQL을 사용해보기로 한다 돈을 아끼기 위해 프리 티어를 사용한다 DB 인스턴스 식별자는 AWS에서 구분하기 위한 DB 고유의 이름이다 자격 증명은 DB 내에 접근하기 위해 사용되며, database root user라고 생각하면 된다 인스턴스 구성은 사용 목적에 맞게 선택 VPC와 서브넷, 보안 그룹, 네트워크도 기존 목적에 맞춰 설정한다 가용 영역은 사용하는 리전에 맞춰 선택한다 데이터베이스 이름은 php파일이 이 이름을 인식한다 php 파일에서 설정해둔대로 적어주자 생성된 RDS의 정보 만들어두었던 VPC의 정보가 적용되었고, 접속을 하기 위한 엔드포인트가 생성된 것이 보인다 nslooku..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/boOnBM/btrFmmDD8oj/PaG9AbPqrstKthsmurDC4k/img.png)
life cycle 인스턴스가 생성되고 수정, 삭제되는 과정 EBS (Elastic Block Store) 인스턴스 두 개 생성 하나를 Bastion으로 만든다 다른쪽 인스턴스로 접속이 되는 것을 확인 EC2의 왼쪽 카테고리를 보면 볼륨이 있다 여기 가보면 방금 만든 인스턴스의 볼륨이 목록에 뜬다 지우면 부팅이 안됨 (부팅디스크임) 어느 인스턴스에 연결되었는지도 뜬다 구분하기 쉽게 이름을 붙여주면 좋음 디스크를 하나 추가해보자 볼륨 생성으로 이동 이런 설정들이 가능하다 크기는 5GiB로 설정했다 생성하고 조금 기다리면 사용 가능으로 뜬다 이 볼륨을 우클릭하면 볼륨 연결을 할 수 있다 인스턴스를 선택하면 디바이스 이름과 함께 안내가 뜬다 이제 연결해보자 정상적으로 연결됐다면 연결된 인스턴스에 해당 인스턴스..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bA05C0/btrFaONM0SP/Vp5JSkF9FjkPmesvaKXkgk/img.png)
-m : 키페어의 확장자 -f : 키페어의 이름 -q : 질문하지 않음 -N : 비밀번호 (""은 비밀번호 생성을 생략) 새 키페어를 만들어둔다 aws cli 명령어로 퍼블릭 키를 임포트하는 명령어 " " 안에 들어가는 이름은 aws 콘솔에서 보여지는 이름이므로 자유롭게 지정한다 VPC를 2Tier로 하나 생성해둔다 네트워크 ACL에서 vpc의 방화벽 규칙을 설정할 수 있다 우측의 인바운드 규칙 편집으로 수정 vpc에 들어갈 서브넷들도 생성해주고 인터넷 게이트웨이도 만들어서 vpc와 연결한 뒤 라우팅 테이블 편집으로 넣어주자 이 상태에서 NAT gate를 PUBLIC_A에 둔다 그렇게 해주면 DB끼리의 통신도 가능하고, 외부로의 통신도 가능하다 (DB업데이트가 가능해짐) 그림으로 그려본 구성 NAT 게이..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cCEPwr/btrEXFp4KIb/G2SymrDDVnCDKfE465KAZ1/img.png)
cmd에서 먼저 만들어둔 key 파일을 첫번째 서버에 옮겨둔다 public 키는 인스턴스 생성 시 부여했기 때문에 개인 키만 옮기면 된다 그런데 이제 그냥 접속하려고하면 문제가 생긴다 개인 키 자체의 권한 때문에 생긴 문제이다 디렉터리로 가서 확인해보면 id_rsa의 권한이 664로 너무 많이 오픈되어있는 것을 확인할 수 있다 소유자 외의 권한을 싹 날려주고 다시 접속하면 안정적으로 접속이 가능하다 다른 서브넷에 속한 인스턴스를 추가로 만들어 내부 IP로 접속해도 무사히 이용할 수 있게된다 그림으로 그려보면 이런 느낌
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/beRX9g/btrE1uHjQSg/LqqLwcXU9xxwrW0PrCkGe0/img.png)
EC2의 카테고리 중에는 네트워크 및 보안이 있다 여기에서 키 페어를 생성할 수 있다 putty에서도 비슷한 것을 만들 수 있다 여기서 받아서 실행해보면 이런 화면이다 Generate를 눌러서 창 위에서 마우스를 마구 움직여주자 그래야 설치된다 거짓말같지만 진짜임 Save를 눌러서 공개 키와 개인 키를 저장해준다 모자를 쓰고있는 쪽이 개인 키 openssh용 export도 한번 해주자 만들어진 키는 이런 모습 어쨌거나 제멋대로 생김 cmd창에서 keygen을 사용하는 명령어 프라이빗 키 형식에는 두 가지가 있다 pem과 ppk인데 pem이 보편적이고, ppk는 putty에서 쓴다 이 키를 cmd창에서도 만들 수 있다 keygen 명령어를 사용한 키 생성 스크립트를 이용한 키 생성에 대비해 암호는 만들지않..