컨테이너를 이용할 때 어려운 것 중에 하나가 네트웍 문제입니다 .
가상 네트웍 환경에서 컨테이너 간의 통신이 어떻게 이루어지는지를 잘 이해하고 있다면 개발과 운영하는데 많은 도움이 됩니다
컨테이너 네트웍을 이해하기 위해서 나름 공을 많이 들였는데요
여전히 부족함을 많이 느끼고 있습니다 혼자 할 수 없는 것들이라는 생각이 들구요 공유해 주시는 내용들에서 배우고 인사이트도 얻고 있습니다
컨테이너 공부를 시작하는 분들.. 그리고 이미 업무로 하고 계신 분들에게도
도움이 될 것 같습니다
즐공 하세요
리눅스 스터디 1회차 in KOSMOS
VM에 설치하므로 이미지 부분은 건너뛰세요.
on Onedrive:
https://onedrive.live.com/redir?resid=c4dd3c6db99e8d1a!11192&authkey=!ALtcH-dt9PGfl58&ithint=file%2cpptx
'이것이 리눅스다' 책을 일고 공부하면서 느낀점과 공부하면서 조사하였던 관련된 자료를 PPT로 만든 것입니다. (this is Linux, this PPT has Many Things that Resource Related the Linux and other) 감사합니다. Thank you
Watch video on Youtube! : http://www.youtube.com/watch?v=aZDKyNtSqOo
장소 : 서울시 용산구 원효로 3가 53-5 청진 빌딩 10층 1004호 TERA TEC 사무실
시간 : 2010년 1월 30일 토요일 오후 2:00
발표 : 김성윤님, 강분도님, 노태상님 - 리눅스 커널 - 개요 및 이슈,
세미나 정보 : http://www.ubuntu.or.kr/viewtopic.php...
Place : TERA TEC Office, 1004, 10th floor, Cheongjin Bldg., Wonhyoro 3-ga, Yongsan-gu, Seoul, Korea
Time : 14:00, Saturday, 2010Y 1M 30D
Presentation : Kim Seongyun, Kang Bundo, Noh Taesang - Linux Kernel - Outline and issue
Seminar Info : http://www.ubuntu.or.kr/viewtopic.php...
About Ubuntu
Ubuntu is an ancient African word meaning 'humanity to others'.
It also means 'I am what I am because of who we all are'.
The Ubuntu operating system brings the spirit of Ubuntu to the world of computers.
http://www.ubuntu.com
About Ubuntu Korea Community
We want to be happy using Ubuntu.
'Korean Ubuntu User Forum' Welcomes your voluntary supports.
http://www.ubuntu-kr.org
This slide describes why OpenStack is Operating System (OS).
오픈스택을 왜 클라우드 운영체제라고 부르는지, 운영체제가 반드시 가지고 있어야 할 구성요소들을 오픈스택 구성요소들과 비교 분석함으로써 오픈스택을 알아보는 내용을 담고 있습니다.
source : http://www.opennaru.com/apm/apache-tomcat-auto-provisioning/
OPENMARU APM은 Apache 웹서버와 Tomcat 에 대하여 자동으로 설치와 구성 그리고 튜닝하며 해당 구성에 대한 설치보고서를 자동생성하는 OPENMARU Installer 기능을 제공합니다.
이 기능은 OS 만 설치되어 있으면 수분 이내에 웹 서버와 WAS 서버를 설치하고 고난이도의 클러스터링 설정이나 리눅스 튜닝을 자동으로 수행하여 즉시 서비스할 수 있는 환경을 구성해주는 자동 프로비져닝 기능입니다.
기존의 엔지니어의 기술 지원에 의존적인 웹서버와 WAS 구성을 전문가 수준으로 자동으로 구성하여, 구축기간 뿐만아니라 비용 절감 효과를 제공합니다.
컨테이너를 이용할 때 어려운 것 중에 하나가 네트웍 문제입니다 .
가상 네트웍 환경에서 컨테이너 간의 통신이 어떻게 이루어지는지를 잘 이해하고 있다면 개발과 운영하는데 많은 도움이 됩니다
컨테이너 네트웍을 이해하기 위해서 나름 공을 많이 들였는데요
여전히 부족함을 많이 느끼고 있습니다 혼자 할 수 없는 것들이라는 생각이 들구요 공유해 주시는 내용들에서 배우고 인사이트도 얻고 있습니다
컨테이너 공부를 시작하는 분들.. 그리고 이미 업무로 하고 계신 분들에게도
도움이 될 것 같습니다
즐공 하세요
리눅스 스터디 1회차 in KOSMOS
VM에 설치하므로 이미지 부분은 건너뛰세요.
on Onedrive:
https://onedrive.live.com/redir?resid=c4dd3c6db99e8d1a!11192&authkey=!ALtcH-dt9PGfl58&ithint=file%2cpptx
'이것이 리눅스다' 책을 일고 공부하면서 느낀점과 공부하면서 조사하였던 관련된 자료를 PPT로 만든 것입니다. (this is Linux, this PPT has Many Things that Resource Related the Linux and other) 감사합니다. Thank you
Watch video on Youtube! : http://www.youtube.com/watch?v=aZDKyNtSqOo
장소 : 서울시 용산구 원효로 3가 53-5 청진 빌딩 10층 1004호 TERA TEC 사무실
시간 : 2010년 1월 30일 토요일 오후 2:00
발표 : 김성윤님, 강분도님, 노태상님 - 리눅스 커널 - 개요 및 이슈,
세미나 정보 : http://www.ubuntu.or.kr/viewtopic.php...
Place : TERA TEC Office, 1004, 10th floor, Cheongjin Bldg., Wonhyoro 3-ga, Yongsan-gu, Seoul, Korea
Time : 14:00, Saturday, 2010Y 1M 30D
Presentation : Kim Seongyun, Kang Bundo, Noh Taesang - Linux Kernel - Outline and issue
Seminar Info : http://www.ubuntu.or.kr/viewtopic.php...
About Ubuntu
Ubuntu is an ancient African word meaning 'humanity to others'.
It also means 'I am what I am because of who we all are'.
The Ubuntu operating system brings the spirit of Ubuntu to the world of computers.
http://www.ubuntu.com
About Ubuntu Korea Community
We want to be happy using Ubuntu.
'Korean Ubuntu User Forum' Welcomes your voluntary supports.
http://www.ubuntu-kr.org
This slide describes why OpenStack is Operating System (OS).
오픈스택을 왜 클라우드 운영체제라고 부르는지, 운영체제가 반드시 가지고 있어야 할 구성요소들을 오픈스택 구성요소들과 비교 분석함으로써 오픈스택을 알아보는 내용을 담고 있습니다.
source : http://www.opennaru.com/apm/apache-tomcat-auto-provisioning/
OPENMARU APM은 Apache 웹서버와 Tomcat 에 대하여 자동으로 설치와 구성 그리고 튜닝하며 해당 구성에 대한 설치보고서를 자동생성하는 OPENMARU Installer 기능을 제공합니다.
이 기능은 OS 만 설치되어 있으면 수분 이내에 웹 서버와 WAS 서버를 설치하고 고난이도의 클러스터링 설정이나 리눅스 튜닝을 자동으로 수행하여 즉시 서비스할 수 있는 환경을 구성해주는 자동 프로비져닝 기능입니다.
기존의 엔지니어의 기술 지원에 의존적인 웹서버와 WAS 구성을 전문가 수준으로 자동으로 구성하여, 구축기간 뿐만아니라 비용 절감 효과를 제공합니다.
source : http://www.opennaru.com/jboss/jboss-core-services-collection/
JBCS ( JBoss Core Services Collection )는 엔터프라이즈 애플리케이션에서 필요한 일반적이고 기본적인 빌딩블록을 제공합니다.
여기에는 Red Hat SSO (Single SIgn On) 과 웹서버 그리고 관리와 모니터링을 위한 JON 등이 포함됩니다.
다음과 같은 컴포넌트가 포함됩니다.
JON : 레드햇 미들웨어에 대한 모니터링과 관리 서버
Apache HTTP 서버 : 웹서버
Red Hat SSO : 오픈소스인 Keycloak 프로젝트를 기반으로 SSO를 구현하며, Open ID Connection, SAML 그리고 OAth2와 같은 개방형 표준 인증 방법을 지원.
Apache Commons Jsvc : 유닉스 및 유닉스 기반 플랫폼 (Linux)에서 자바 애플리케이션을 데몬화할 수 있도록하는 유틸리티
Microsoft의 “IIS”와 Oracle의 “Oracle iPlanet Web Server” 웹 서버에 대한 커넥터
“Core Services Collection”의 사용권은 JBoss EAP 서브스크립션에 무료로 포함되며, 해당 제품들에 대한 온라인 지원, 전화 지원, 업데이트, 패치 및 보안 문제 해결 등의 기술지원이 포함됩니다
2. 목차
• PXE 부팅이란?
• PXE 부팅의 현재
• PXE의 구성
• PXE 부팅의 흐름
• DHCP 설정
• TFTP 설정
• PXE 관련 설정
• 시연
• 응용
• Q & A
2
3. PXE 부팅이란?
• 명칭
– 사전 부팅 실행 환경 또는 Pre-boot eXecution Enviroment
• 설명
– 클라이언트/서버 인터페이스의 산업계 표준
– 네트워크에 접속된 컴퓨터들을 구성하고, 부팅할 수 있게 해줌
– PXE 코드는 대체로 컴퓨터의 롬, 또는 클라이언트가 네트워크 서버와 통신할 수 있게 해
주는 부트 디스크 상에 넣어 전달됨
• 사용시 이점
– 운영체제, 하드디스크가 반드시 있어야 할 필요가 없음.
– 새로운 형태의 컴퓨터도 손쉽게 네트워크에 추가 할 수 있음.
3
4. PXE 부팅의 현재 1
• 구글 트렌드로 보는 PXE
• 유사 기술
– Microsotf의 BINL(Boot Information Negotiation Layer)
PXE의 하위기술로 중복되지 않는 확장판(non-overlapping extension)
– apple 의 Boot Server Discovery Protocol(BSDP) (v0.1 1999 발표)
4
6. PXE의 구성
• PXE Client
– 네트워크 인터페이스에서 PXE 부팅을 지원 해야함.
• PXE Server
– DHCP Server
• 최초 클라이언트가 DHCP 요청시 TFTP 서버의 주소와 pxe 부팅에 필요한 파일 이름을 전달.
– TFTP Server
• pxe 부팅에 필요한 파일 및 OS 이미지등을 사용할 수 있게함.
6
8. DHCP 설정
• apt-get install isc-dhcp-server
• vi /etc/dhcp/dhcpd.conf (아래 내용 추가.)
• /etc/init.d/isc-dhcp-server restart
8
ddns-update-style none;
allow booting;
allow bootp;
class "pxeclients" {
match if substring(option vendor-class-identifier, 0, 9) = "PXEClient";
next-server 192.168.79.138;
filename = "pxelinux.0";
}
9. TFTP 설정
• apt-get install tftp tftpd
• vi /etc/xinetd.d/ftfp (새로 생성)
• mkdir –p /tftpboot
• service xinetd restart
9
service tftp
{
disable = no
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
}
10. PXE 관련 설정 1
• mkdir /mnt/ubuntu-server
• mount -o loop /home/ymtech/Downloads/ubuntu-14.04.5-server-amd64.iso /mnt/ubuntu-server/
• mkdir - p /tftpboot/ubuntu-installer/amd64
• cd /mnt/ubuntu-server/install/netboot/ubuntu-installer/amd64
• cp -R boot-screens /tftpboot/ubuntu-installer/amd64
• cp initrd.gz linux /tftpboot/ubuntu-installer/amd64
• chmod 777 -R /tftpboot/
10
11. PXE 관련 설정 2
• apt-get install nfs-kernel-server
• vi /etc/exports
• exportsfs –a (설정 적용)
11
# Ubuntu Live CD files for PXE booting
/home/ymtech/ubuntu-server/amd64 *(ro,insecure,no_root_squash,async,no_subtree_check)
12. PXE 관련 설정 3
• apt-get install syslinux
• cp /usr/share/syslinux/pxelinux.0 /tftpboot
• cp /usr/share/syslinux/mboot.c32 /tftpboot
• mkdir /tftpboot/pxelinux.cfg
• vi /tftpboot/pxelinx.cfg/default
12
include mybootmenu.cfg
default ubuntu-installer/amd64/boot-screens/vesamenu.c32
prompt 0
timeout 100
13. PXE 관련 설정 4
• vi /tftpboot/mybootmenu.cfg
13
menu hshift 12
menu width 49
menu margin 8
menu title My Customised Network Boot Menu
include ubuntu-installer/amd64/boot-screens/stdmenu.cfg
label Boot from the first HDD
localboot 0
label Memory Tester
kernel mt86plus
label install ubuntu14.04(64-bit)
kernel ubuntu-installer/amd64/linux
append boot=casper netboot=nfs nfsroot=192.168.79.138:/home/ymtech/ubuntu-
server/amd64 initrd=ubuntu-installer/amd64/initrd.gz
14. 시연
• 원격 데스크탑을 이용한 시연
– pxe client에서 DHCP Server에 요청하는 로그 확인
– pxe client에서 TFTP Server에 pxelinux.0 파일 요청하는 로그 확인
– custom menu 표시 확인
– 설치 화면 확인
14
15. 응용
• Live CD
OS를 하드디스크에 설치하지 않고 원격의 OS 이미지를 직접 구동함.
일종의 diskless (하드디스크 없이 OS 구동 가능)
• Automated Install
– kickstart
OS install 시 선택해야 하는 항목,
OS 설치뒤 실행할 명령등을 미리
작성하여 설정파일로 만들어 놓으면
설치시 해당 설정파일을 참고하여
자동으로 설치가 가능하도록 하는 방법.
preseed.cfg 파일의 일부 ->
15
# Language setting 언어 설정
d-i debian-installer/language string en
d-i debian-installer/country string US
d-i debian-installer/locale string en_US.UTF-8
d-i localechooser/supported-locales en_US.UTF-8
# Keyboard setting 키보드 설정
d-i console-setup/ask_detect boolean false
d-i console-setup/layoutcode string us
d-i console-setup/charmap select UTF-8
d-i keymap select jp106
d-i keyboard-configuration/xkb-keymap select jp106
d-i keyboard-configuration/layoutcode string jp
d-i keyboard-configuration/modelcode jp106
# Network setting 네트워크 설정
d-i netcfg/choose_interface select auto
d-i netcfg/get_hostname string preseedexample
d-i netcfg/get_domain string example.org
# mirror 이미지 미러 설정
d-i mirror/country string manual
d-i mirror/http/hostname string archive.ubuntu.com
d-i mirror/http/directory string /ubuntu/
… … …
16. 응용 설정 Live CD
• mkdir /mnt/ubuntu10
• mount -o loop /home/ymtech/Downloads/ubuntu-10.04.4-desktop-amd64.iso
/mnt/ubuntu10/
• mkdir -p /tftpboot/ubuntu-livecd-boot-10/amd64
• mkdir -p /home/ymtech/ubuntu-livecd-10/amd64
• cp -av /mnt/ubuntu10/* /home/ymtech/ubuntu-livecd-10/amd64/
• cp -av /mnt/ubuntu10/.disk /home/ymtech/ubuntu-livecd-10/amd64/
• cp -av /mnt/ubuntu10/casper/initrd.lz /tftpboot/ubuntu-livecd-boot-10/amd64/
• cp -av /mnt/ubuntu10/casper/vmlinuz /tftpboot/ubuntu-livecd-boot-10/amd64/
• chmod 777 -R /tftpboot/
• vi /etc/exports/ (아래 내용 추가)
• exportsfs –a (설정 적용)
16
/home/ymtech/ubuntu-livecd-10/amd64 *(ro,insecure,no_root_squash,async,no_subtree_check)
17. 응용 설정 mybootmenu.cfg
• vi /tftpboot/mybootmenu.cfg
17
menu hshift 12
menu width 49
menu margin 8
menu title My Customised Network Boot Menu
include ubuntu-installer/amd64/boot-screens/stdmenu.cfg
label Boot from the first HDD
localboot 0
label Memory Tester
kernel mt86plus
label Live CD 64-bit(10.04) – 라이브 시디
kernel ubuntu-livecd-boot-10/amd64/vmlinuz
append boot=casper netboot=nfs nfsroot=192.168.79.138:/home/ymtech/ubuntu-livecd-10/amd64
initrd=ubuntu-livecd-boot-10/amd64/initrd.lz -- splash quiet
label Autoinstall ubuntu14.04(64-bit) – Automated Install
kernel ubuntu-installer/amd64/linux
append boot=casper netboot=nfs nfsroot=192.168.79.138:/home/ymtech/ubuntu-server/amd64
initrd=ubuntu-installer/amd64/initrd.gz auto=true url=http://192.168.79.138/preseed.cfg --
18. 응용 설정 kickstart
• apt-get install apache
• vi /var/www/html/preseed.cfg
18
# Language setting 언어 설정
d-i debian-installer/language string en
d-i debian-installer/country string US
d-i debian-installer/locale string en_US.UTF-8
d-i localechooser/supported-locales en_US.UTF-8
# Keyboard setting 키보드 설정
d-i console-setup/ask_detect boolean false
d-i console-setup/layoutcode string us
d-i console-setup/charmap select UTF-8
d-i keymap select jp106
d-i keyboard-configuration/xkb-keymap select jp106
d-i keyboard-configuration/layoutcode string jp
d-i keyboard-configuration/modelcode jp106
# Network setting 네트워크 설정
d-i netcfg/choose_interface select auto
d-i netcfg/get_hostname string preseedexample
d-i netcfg/get_domain string example.org
# mirror 이미지 미러 설정
d-i mirror/country string manual
d-i mirror/http/hostname string archive.ubuntu.com
d-i mirror/http/directory string /ubuntu/
…
…
…
Editor's Notes
안녕하세요 7월달 TechDay 발표를 맡게된 김주한 입니다.
이번 발표 주제는 원래는 SSH를 활용하여 장비 제어 및 정보 가져오기 였으나
이번에 X86 프로젝트를 진행하면서 좀더 알아두면 좋을거 같다고 생각한 주제를 발표하겠습니다.
이번 발표할 주제는 바로 PXE 부팅입니다.
일단 발표할 순서를 말씀 드리겠습니다.
PXE 부팅에 대한 간단한 설명
구성, PXE 부팅의 흐름
각 설정 방법, 시연 그리고 간단한 응용까지 하고 질문을 받고 마무리 하는 것으로 하겠습니다.
이제 PXE에 대해서 이야기 해드리겠습니다.
PXE는 사전 부팅 실행 환경으로서 즉 Pre-boot execution enviroment의 약자 입니다.
PXE는 클라이언트/ 서버 인터페이스의 산업계 표준 입니다.
원격지에서 네트워크에 접속된 컴퓨터들을 구성하고 부팅 할 수 있게 도와줄 수 있습니다.
PXE 코드는 대체로 컴퓨터의 롬 또는 클라이언트가 네트워트 서버와 통신 할 수 있게 해주는 부트 디스크 상에 넣어 전달 됨으로써
원격지에서 클라이언트 PC를 구성하거나 부팅 시킬 수 있습니다.
이 PXE 기술을 사용한다면
클라이언트 PC에 하드디스크나 운영체제가 없더라고 구동이 가능하고
또한 공급자에 독립적이기 때문에 새로운 컴퓨터를 손쉽게 네트워크에 추가 할 수 있습니다.
일단 보시다시피 구글 트렌트로 관심도를 살펴 보아도 PXE는 앞으로 성장하거나 계속 활황기를 맞이하는 기술은 아닙니다.
엄밀히 말하자면 클라우드 컴퓨팅같은 기술이 더 중요한 주제일수도 있습니다.
하지만 PXE는 분명히 활용이 있었던 기술이고 클라우드 PC와는 활용법이 다른점이 있기 때문에 알아두어서 나쁠것은 없다고 생각합니다.
이어서 유사 기술에 대해서 알아보도록 하겠습니다.
다음의 BINL과 BSDP는 각각 마이크로소프트사와 애플사의 PXE 와 같은 기술입니다.
다만 마이크로소프트사는 아예 새로히 만들지는 않았고 PXE를 확장해서 만들었다고 보시면 됩니다.
이 PXE 기술을 사용하는 좋은 예를 한국 시장에서 찾아 보자면
대표적으로 피시방이 있습니다.
예전에 일일히 손으로 시간을 재며 손님을 받다가 매니지먼트 프로그램으로 바뀌었고
지금은 아예 디스크를 각 피시에 놓지 않고 중앙에서 관리하는 방식으로 바뀌었습니다.
이 기술은 이 사업소개 페이지에서 보이듯이 PXE 기술을 사용했다고 합니다.
다음으로 PXE를 구성하는 요소들에 대해서 이야기 하겠습니다.
먼저 클라이언트가 있는데요 이 클라이언트에서 중요한것은 네트워크 인터페이스에서 PXE 부팅을 지원해야 한다는것 입니다.
요즘 웬만한 장비들은 지원 하는것으로 알려져 있습니다.
다음은 서버인데 DHCP 서버와 TFTP 입니다.
DHCP에서는 클라이언트가 DHCP 요청시 TFTP 서버의 주소와 pxe 부팅에 필요한 파일 이름을 전달합니다.
그 다음 전달받은 주소와 파일이름을 통해
TFTP 서버에서 파일을 요청하고 해당 파일을 통해 부팅을 시작하게 됩니다.
여기에 그 흐름을 정리한 플로우 차트가 있습니다.
보시다 시피
PXE 클라이언트에서 DHCP 요청을 하면 보통의 DHCP에서는 IP 정보등만을 주지만
PXE가 설정된 DHCP에서는 TFTP 서버의 주소와 부팅에 필요한 file name을 요청하게 됩니다.
그렇게 전달받은 TFTP 서버의 주소로 클라이언트는 접속을 해서 파일을 요청하게 되고 NBP 즉 네트워크 붓 프로그램을 가동해
필요한 설정들을 로딩하고 이미지를 다운로드하기 시작합니다.
여기에 DHCP 설정을 간략히 정리해 보았습니다.
설치후 설정에 다음의 내용을 추가하고 재시작을하면 됩니다.
추가할 내용을 자세히 보시면 next-server와 filename을 보실수 있습니다. pxe 클라이언트에게 다음의 내용을 전달 하게 됩니다.
TFTP는 많이들 사용하시니까 자세한 내용없이 넘어가도록 하겠습니다.
여기서 중요한건 TFTP의 경로를 설정하는 내용입니다.
다음은 ubuntu 이미지를 마운트하여 TFTP 서버의 경로에 필요 파일들을 복사하는 내용 입니다.
이미지를 받게 하기 위한 NFS 서버를 설치하고 아까 복사한 필요파일들의 경로를 지정하는 내용 입니다.
syslinux를 설치하고 네트워크 부팅에 필요한 파일을 복사하는 내용입니다. (pxelinux.0)
pxelinux.cfg/default 파일에 기본 부팅 설정을 넣고 그 안의 내용입니다.
부팅 메뉴 화면 입니다.
현재 설정을 통해서 보면 제목
메뉴별 라벨
메뉴별 실행 내용등을 담고 있는 것을 볼 수 있습니다.
이제부터 원격테스크톱을 통해서 제 컴퓨터에서 직접 시연을 진행하도록 하겠습니다.
미리 설정해놓은 PXE Server를 통해서 pxe client를 구동해 설치를 진행할 수 있는지 확인하겠습니다.
시연보인것 이외에도 설치뿐만 아니라 운영체제를 바로 가동 시키거나
설치시 설치 설정을 미리 작성하여 자동 설치를 진행할 수도 있습니다.