0부터 시작하는 OpenStack 공부 - Instance Migration & 외부 접속

Jaehong Lee·2022년 9월 15일
1
post-thumbnail

1. 현재 구성 환경

이전까지 구성한 환경

  • ISP 게이트 웨이 부터 라우터의 게이트 웨이까지는 같은 네트워크로 Floating Ip 를 사용한다
  • ISP 로부터의 요청은 OVS 의 eth0 으로 들어온다
  • 라우터 게이트 웨이에는 Floating IP 가 할당되며, 인스턴스들에도 SNAT 로 Floating IP 를 할당했다. 따라서 라우터에 해당 Floating IP 로 들어오면, 연결된 인스턴스의 사설 IP 로 변환되어 보내진다
  • 보안 그룹을 통해 INBOUND 규칙을 지정하여 80, 443/TCP 와 22/SSH 접속을 허용하였다

현재 사용 중인 Hyper-Visor

  • 우리는 현재 Hyper-Visor 로 KVM 을 사용하기에 Virsh 명령어를 사용 가능하다

2. login 과정 & Console 연결

로그인 과정

  1. 사용자가 인증서버에 username / password 전송
  2. 인증 서버는 해당 내용을 토대로 DB 조회 및 인증
  3. 인증이 됬다면, 인증 서버는 인증 정보 + 유효기간 + 토큰이 포함된 Token 을 사용자에게 전송
  4. 사용자는 서비스에 API 명령을 API 주소 + TOKEN 과 함께 보냄

Console 연결

Console 연결은 VNC 접속 방식이다

  • 콘솔 연결에는 SSH 가 아닌 별도의 Port 가 있다. 이는 VNC 접속을 위한 Port 이다

  • Cli 환경에서는 virsh console 을 통해 Instance 에 Console 연결이 가능하다

3. Migration

  • 호스트 집합에 들어가면, 현재 인스턴스를 만들 수 있는 가용 영역이 보인다. 우리는 Compute, Storage, Network, Control 모두를 하나로 합쳐 local 에 설치했으므로 하나만 보인다

Instance Migration 방법

OpenStack 에서 Instance 를 Migration 하는 방법

1. 지정된 호스트로의 이동

 openstack server migrate CentOS1 --live Compute_Node-2
  • live 는 서버가 살아있는 상태에서 Migration 해주는 옵션이다. 이는 옮길 호스트를 직접 지정한다

2. 자원 사용률이 가장 적은 호스트를 인식하여 호스트를 지정하지 않아도 자동으로 마이그레이션

  • 위와 같이 compute2 Node 는 배치된 서버가 모두 off 이므로, 다른 Node 보다 자원 사용률이 적다. 이때, 자원 사용률이 가장 많은 Node 의 서버를 자원 사용률이 가장 적은 compute2 Node 로 자동으로 마이그레이션 된다
nova live-migration CentOS1
  • 위와 같이 입력하면, 해당 인스턴스가 위치한 Node 에 가만히 있는게 좋은지, 다른 Node 로 가는게 좋은지 판단하여 Migration 을 해준다

4. VNC 접속 & SSH 접속

외부에서 Instance 로 접속 방법

외부에서 일반 사용자들이 자신이 만든 Instance 에 접근하는 방법

  1. ssh ( cli ) 를 이용 ( private key ) -> 직접 접속
  2. vnc ( gui ) 를 이용 -> 211.183.3.111 에서 Proxy 를 제공한다. 111 로 접근을 하면, Proxy 를 통해 뒤에 있는 Instance 에 접근할 수 있다 -> Proxy 를 이용한 접속

VNC 접속 하기

[root@localhost ~(logged)]# openstack console url show CentOS1 | grep url
| url   | http://211.183.3.111:6080/vnc_auto.html?path=%3Ftoken%3De50047e2-f022-40ab-bdeb-0a6b7805a24a |
  • Instance 상세 정보에서 Url 부분을 확인하자
openstack console url show CentOS1 | grep url | gawk '{print $4}'    http://211.183.3.111:6080/vnc_auto.html?path=%3Ftoken%3Dd632ef67-2adc-483e-8ad2-ab5b9a558931
  • gawk 로 Url 주소만 뽑아주자

  • 해당 주소로 외부에서 vnc 로 접속이 가능하다

SSH 접속 - Cli

ssh -i ~/.ssh/chulsoo.pem -l centos 211.183.3.216
  • Cli 환경에서 위와 같이 key / username / 접속 주소를 통해 Instance 에 SSH 접속이 가능하다

5. 3 Tier 구조 외부 접속

3 Tier 구조 외부 접속 & Auto Scale

  • Node 의 각 서버들을 묶어서 Auto Scale group 을 만들 수 있다. Auto Scale group 을 위해서는 Base 되는 Image 가 필요하다. Auto Scale 시 Image 를 이용해 배포해야 하기 때문이다. DB 는 Auto Scale group 을 잘 만들지 않는다
  • 일반 사용자는 WEB 에만 접속이 가능하지만, 관리자는 모두 접속이 되야하기에 Bastion Host 서버에 SSH 연결을 하여 WEB / WAS/ DB 에 모두 접속이 가능하다

--

6. 헷갈리는 Network 정리

  1. provider-physical-network 가 OVS 를 사용하기에 뒤에 라우터도 같은 네트워크라 라우터 까지 포함되는건지? 아니면 원래 뒤에 연결된거 까지 포함되는 건지

    • isp 게이트웨이 부터 라우터 까지
    • flat 은 isp 에서 스위치를 거쳐 라우터까지의 통신 방법, vlan / vxlan 도 있는데, 우리는 그냥 통신하므로 flat 이다. 그 네트워크에서의 통신 방법으로
      ovs 니까 flat 이 가능하다. 일반 리눅스 브릿지라면 flat 불가능
  2. FLOATING IP 할당시, BR-EX 는 .111 이고, 이 요청은 물리적으로 ETH 0 으로 들어오는데, FIP 로 들어올때 ETH 0 으로 어케 들어오는지

    • ISP 에서는 라우터의 게이트 웨이에 직접 주소에 대해 물어보고 ETH 0 을 거쳐서 접속. 이는 스위치이기에 같은 네트워크 상이라 가능하다. 우리가 FIP 에 접근하면, ISP 는 연결된 라우터의 게이트 웨이에 해당 주소에 대해 물어보고, 만약, 뒤에 인스턴스의 FIP 라면, 라우터는 자신이 NAT 하는 주소라고 알려준다. 해당 주소에 대한 라우터의 게이트 웨이를 찾으면, 라우터에 요청을 보내어, NAT 를 통해 뒤에 인스턴스에 요청이 간다
    • OVS SWITCH 는 L2 역활만, ETH 0 은 통로 역활, NAT 는 OPENSTACK 에서 제공하는 라우터에서 함. OVS 는 사실 L2~L7 까지 지원
    • 물리적으로 외부 요청은 모두 ETH 0 으로 들어온다. 111 로 접근시 ETH 0 으로 가는게 아니라, ETH 0 은 단순 통로이므로, 해다 ETH0 을 거쳐서 br-ex 로 요청이 간다
profile
멋진 엔지니어가 될 때까지

0개의 댓글