Virtualization #2

김윤형·2023년 7월 11일
0

Virtualization

목록 보기
1/2
  1. root로 login -> Hostname setting, Password 변경
    #passwd
    #vim /etc/hostname
    admin.example.com로 바꿔주기

  2. Static IP Setting
    213.0.113.11/24

  3. Firewall Setting & SELinux Setting : 비활성화
    #systemctl stop firewalld
    #systemctl disable firewalld
    #vim /etc/selinux/config
    selinux -> security enhanced Linux

  1. #ping -c 3 8.8.8.8
    #route -n
    #cat /etc/resolve.conf
    #vim /etc/selinux/config
    SELINUX=disabled로 바꿔주기

    setenforce 설정
    getenforce 확인

    hostname확인
    ip a 해서 213.0.113.11/24 맞는지 확인
    ping -c 3 www.google.com으로 핑 확인
    getenforce해서 Disabled확인하기
    systemctl status firewalld

windows에서 ping 213.0.113.11로 ping 보내보기


xShell 다운로드 후 ssh root@213.0.113.11로 접속
(실무에서는 ssh로 root로 접속은 절대 하면 안됨!! 해킹당할 위험이 있기 때문에)

root 1개, nana 1개 창을 띄움

  1. 패키지를 설정해주었다.
    #cat /proc/cpuinfo | egrep "vmx|svm"
    #lscpu | grep Virtualization
    Virtualization: VT-x
    Virtualization type: full
    #dnf -y install qemu-kvm libvirt virt-install virt-viewer libguestfs-tools
    #lsmod | grep kvm
    kvm_intel 245760 0
    kvm 745472 1 kvm_intel
    irqbypass 16384 1 kvm
    [root@admin ~]# systemctl enable --now libvirtd
    [root@admin ~]# systemctl status libvirtd

  2. 네트워크 변경하기
    nmcli 명령어 : network를 실시간으로 설정할 수 있는 명령어

Linux는 disk를 partition 해주어야 한다.


servera
213.0.113.3
192.168.10.3
serverb
213.0.113.4
192.168.10.4

ip 설정하는 방법
nmcli con show
mcli connection modify 'Wired connection 1' ipv4.addresses 192.168.10.3/24 ipv4. method
manual
nmcli con down 'Wired connection 1' nmcli con up 'Wired connection 1'
ip a

ping 보내고 확인하는 방법
ping -c 3 8.8.8.8
nmcli connection modify bro ipv4.gateway 213.0.113.2
nmcli connectvirion modify br0 ipv4.dns 213.0.113.2

hostname 바꾸고 확인하는 방법
hostnamectl set-hostname servera.example.com
hostname
su - root


Container

  • 개발자가 라이브러리 및 기타 종속성과 같이 필요한 모든 부분 응용 프로그램으로 패키징하고 하나의 패키지로 모두 전송한다.
  • 여러 컨테이너가 동일한 머신에서 실행될 수 있고 OS 커널 다른 컨테이너와 공유한다.
  • 각 컨테이너는 사용자 공간에서 격리된 프로세스로 실행한다.

Container의 개념
1. 기존 리눅스 환경 : 자원 격리 사용(CGroup : Control Group) + 특정 디텍토리 권한 제한(chroot : Change Root 최상위 디렉토리) 격리 환경
2. 변경 사항 레이어 형태로 저장하는 파일 시스템(Union FileSystem)

간단히, 격리된 공간에서 프로세스가 동작하게 해주는 가상화 기술

가상환경 vs Container
Container로 만들면 OS가 필요하지 않으므로 VM에서 만드는 것보다 더 많이 만들 수 있다. 그리고 속도 면에서도 Container가 더 우수하다.

여기서 Hypervisor에서 다른 하나의 예시로 openstack이 있다. openstack을 이용하면 VM을 생성하는 것도 가능하다.

VM에는 Ansible, Terraform을 많이 사용한다.


Docker

  • 하이브리드 클라우드에서 모든 애플리케이션 처리하는 컨테이너 플랫폼 제공자이다.
  • 운영체제 레벨에서 가상화를 제공하는 컨테이너화 기술이다.
  • 컨테이너 사용, 응용 프로그램 보다 쉽게 생성, 배포 및 실행할 수 있도록 설계된 도구이다.

pod : container의 그룹이다.

docker vs k8s
docker는 만들 수 있는 container의 개수가 정해져있는데 k8s는 무제한으로 container 생성이 가능하다.

Docker의 단계
BUILD단계 : 이미지 생성하기 (Download, Dockerfile)
SHIP단계 : 이미지 저장하기 (Docker Registry - public & private)
RUN단계 : 이미지 실행 & Container 생성

Dockerfile은 내가 스스로 파일 이미지를 만드는 것이다.
Docker Registry는 이미지가 저장되는 곳이다.
Container 안에는 Application이 있다.


Docker Container
layer들이 모여서 Image가 된다.
Container는 ReadOnly layer들인 Image에 Writeable이 가능한 layer를 올린것이다. 그래서 실습에서 database와 table를 생성한 것이다.
Base Image : apache와 emacs가 돌아가려면 기본 OS인 Base Image가 필요
Linux는 bootFileSystem(kernel) + rootFileSystem(명령어)

중요한 것은 image는 ReadOnly이지만 Container는 Writeable이 가능하다는 것이다 !


실습

container 생성 명령어 : docker container create --name webserver -p 8080:80 httpd
container 시작 명령어 : docker container start webserver
container 바로 시작 명령어 : docker container run --name nginx -d -p 8180:80 nginx

container 중지 명령어 : docker container stop nginx
container 재시작 명령어 : docker container restart nginx

container 일시중지 명령어 : docker container pause nginx
container 다시시작 명령어 : docker container unpause nginx

container 내부정보확인 명령어 : docker container inspect nginx

container 접속 및 내부 정보 변경하는 명령어
container의 내용을 수정하는 명령어 : docker container cp index2.html apache_server:/usr/local/apache2/htdocs/

컨테이너 생성, 변경, 확인이 일치해야 한다.

docker container exec -it nginx /bin/bash
echo 'Docker index file test' > /usr/share/nginx/html/i
curl http://127.0.0.1:8180/index.html

container 상태정보 확인 명령어 : docker container stats nginx

container 변경 정보 확인 명령어 : docker container diff apache_server
A : 추가된 파일
D : 삭제된 파일
C : 수정된 파일

container 삭제 명령어 : docker rm -f apache_server

**container Quota

profile
입니다.

0개의 댓글