구글 클라우드 플랫폼의 무료 평가판을 이용하기 위한 계정을 만들었다.
구글 계정에 로그인 후 compute engine에 접속한다 (https://console.cloud.google.com/compute)
쿠버네티스 클러스터를 구성하기 위해 동일한 인스턴스 5개를 생성할 것이다. 다른 설정은 변경하지 않고, 부팅 디스크만 Ubuntu 환경으로 변경해 줄 예정이다.
나는 ubuntu 16.04 버전을 사용하였다.
동일한 인스턴스를 총 5개 생성하였다.
마스터 노드인 instance-1 서버에서 다른 서버에 원격 접속(SSH)이 가능하도록 설정할 예정이다.
마스터 노드 #1에 접속한다. instance-1 오른쪽의 SSH를 눌러서 서버에 접속한다.
SSH 키를 생성하는 명령을 수행한다. 명령을 실행하면 키를 생성할 위치와 최초 생성할 비밀번호를 묻는데, 아무것도 입력하지 않고 엔터를 눌러서 기본 값으로 생성한다.
ssh-keygen -t rsa
키를 생성하면 ls -al .ssh/ 명령어로 확인할 수 있다.
cat .ssh/id_rsa.pub 명령어로 출력되는 키를 클립보드에 복사해 둔다.
GCP에서 메타데이터 > ssh키 > 수정 > 복사해둔 키 추가 > 저장
이렇게 저장하면 등록한 공개 키를 생성한 모든 서버에 자동으로 배포한다. 다른 인스턴스에 들어가서 cat .ssh/authorized_key 명령어를 수행하면, 해당 파일 안에 이미 공개키가 배포되어 있는 것을 확인할 수 있다.
instance-1 에서 ssh instance-2 hostname 명령어를 쳐보면, 처음 접속할때는 핑거프린트를 남길 것인지 묻는다. 그러면 yes를 입력하고 엔터를 누른다. 결과로 호스트네임 응답이 출력되면 SSH 설정이 잘 이뤄진 것을 확인할 수 있다.
Kubespray 설치
마스터 노드 역할인 instance-1에서 수행한다.
$sudo apt update
$sudo apt upgrade #우분투 패키지 매니저를 최신 상태로 업데이트
$sudo apt -y install python-pip #pip 설치
$git clone https://github.com/kubernetes-sigs/kubespray.git
$cd kuberspray/
$git checkout -b v2.16.0
$git status
On branch v2.16.0
nothing to commit, working directory clean
$sudo pip install -r requirements.txt
requirements.txt를 설치해줄 때 에러가 발생해서 엄청 고생했다.
pip명령어 실행 시, syntax eroor 랑 /tmp/pip-build-n4bOh2/pip/가 없다는 에러같은게 많이 났었다.
나는 pip 버전을 아래 명령어로 업데이트 해주니 해결된 것 같다.
$curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py
$python get-pip.py
$sudo pip install --upgrade pip==20.3.4
해결 후 다시 requirements.txt를 설치해주면 ansible을 사용할 수 있게 된다.
$cp -rfp inventory/sample inventory/mycluster
$ls inventory/mycluster
group_vars inventory.ini
$sudo apt install tree
$tree inventory/mycluster/group_vars/ #group_vars디렉터리 구조 확인 가능
$vi inventory/mycluster/inventory.ini
inventory.ini 환경 설정파일 수정 후 클러스터를 구성하는 명령 실행 (20분이상 소요)
$ansible-playbook -i inventory/mycluster/inventory.ini -v --become --become-user=root cluster.yml
'보안 및 개발 > Infra & Cloud' 카테고리의 다른 글
Cisco Smart Install 설정 (0) | 2021.02.22 |
---|---|
인코딩 문제 (0) | 2020.10.23 |
주정통 인프라진단 참고사항 (0) | 2020.09.08 |
AWS 도메인 설정 방법 및 가비아 도메인 연결 (0) | 2019.12.12 |