[우분투] K8S 실습 환경을 위한 Ubuntu:20.04 설치 가이드(master/node1/node2)
1. Ubuntu 20.04 LTS 다운로드
https://ubuntu.com > Download > 20.04 LTS
Enterprise Open Source and Linux | Ubuntu
Ubuntu is the modern, open source operating system on Linux for the enterprise server, desktop, cloud, and IoT.
ubuntu.com
20.04 LTS Desktop 다운로드(ubuntu 사이트에서 desktop 버전 ISO 이미지 다운로드)
2. k8s master 가상 머신 만들기
k8s의 master로 사용할 VM 생성 및 ubuntu:20.04 설치
master 하나 만들어서 환경구성 완료 후 복제해서 worker1, worker2 만들 예정
2-1. master 노드 가상머신 생성
2-2. 메모리 크기(3G) 설정
2-3. 하드 디스크 설정(동적할당 30G)
2-4. CPU 프로세서 2 Core
2-5. 네트워크 설정
NAT 네트워크 생성 > 이후 포트 포워딩
master의 경우 127.0.0.1:104번 포트로 포트포워딩 하여 접속
node1의 경우 127.0.0.1:101번 포트로 포트포워딩 하여 접속
node2의 경우 127.0.0.1:120번 포트로 포트포워딩 하여 접속
2-6. master VM 네트워크 설정
2-7. 부팅 CD 구성
2-8. k8s-master VM 시작
2-9. 키보드 레이아웃 설정
2-10. 업데이트 및 기타 소프트웨어
2-11. 설치 형식
2-12. 타임존 설정
2-13. 계정 생성
2-14. 설치 진행
2-15. Static IP 설정
오른쪽 상단 > 설정 > 네트워크
master
ip address 10.100.0.104/24, gateway 10.100.0.1 dns 10.100.0.1
hostname master.example.com master
Apply 눌러서 적용 완료하고 확실하게 네트워크를 재시작하기 위해
한번 더 Wired 아래에 Connected 네트워크를 껐다 다시 켜준다.
이후 호스트 네임은 아래와 같이 변경한다.
그리고 /etc/hosts에도 아래와 같이 변경된 내 호스트 이름과 다른 worker 호스트 이름을 등록한다. DNS가 없기 때문에.
2-16. 설치된 Ubuntu:20.04 LTS 정보 보기
- 커널 정보 확인 : uname -r
- 메모리 정보 : free -h #3G로 설정됨 -> 쿠버네티스 설치시에 2G로 줄일 예정
- cpu 정보 : lscpu
- OS 정보 : cat /etc/os-release
2-17. Root 계정 패스워드 설정
ubuntu os는 설치할 때 관리자 계정 하나만 만들기 때문에 기본적으로 root로 로그인이 안되고, root 패스워드가 없으니 swtich도 안된다.
그래서 root 패스워드 설정을 해야 한다.
$ sudo passwd root
$ 패스워드 입력 : root
$ 패스워드 확인 입력 : root
2-18. SSH Server 설치 및 서비스 동작
sudo apt-get update
sudo apt-get install -y openssh-server curl vim tree
2-19. Xshell로 SSH 접속 확인
Xshell > 새 세션
아래와 같이 Xshell을 통해 Ubuntu 접속 완료
설치 완료..
아래처럼 master에 도커를 설치하고 master vm을 복제하여 node1, node2를 생성해야 한다.
https://syhwang.tistory.com/44
[도커 설치] Docker Installation on Ubuntu:20.04
Docker 설치시에는 반드시 root 계정으로 설치를 진행해야 한다. 1. Docker Install > docs.docker.com을 참조하여 설치 진행 > Download and install > Docker for Linux > Install on Linux https://docs.docker..
syhwang.tistory.com
2-20. node1, node2 생성
아래 구성처럼 master와 node1, node2를 생성한다.
복제 후, 환경 구성 설정
(ip address, hostname)
1. hostname 변경
$ vi /etc/hostname
> node1.example.com
변경 이후,
$ systemctl isolate graphic target
재부팅 시작..
2. ip address 변경
10.100.0.104 > 10.100.0.101로 변경
이후,
> master와 node1 둘 다 기동한 상태에서 ping 체크가 정상인지를 확인한다.
root@master:~# ping -c 2 node1.example.com PING node1.example.com (10.100.0.101) 56(84) bytes of data. 64 bytes from node1.example.com (10.100.0.101): icmp_seq=1 ttl=64 time=0.632 ms 64 bytes from node1.example.com (10.100.0.101): icmp_seq=2 ttl=64 time=1.23 ms --- node1.example.com ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1002ms rtt min/avg/max/mdev = 0.632/0.932/1.232/0.300 ms =========================================================== root@node1:~# ping -c 2 master.example.com PING master.example.com (10.100.0.104) 56(84) bytes of data. 64 bytes from master.example.com (10.100.0.104): icmp_seq=1 ttl=64 time=0.733 ms 64 bytes from master.example.com (10.100.0.104): icmp_seq=2 ttl=64 time=0.996 ms --- master.example.com ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1002ms rtt min/avg/max/mdev = 0.733/0.864/0.996/0.131 ms |
> docker version 으로 docker가 정상적으로 설치되었는지 확인한다.
root@master:~# docker version Client: Docker Engine - Community Version: 20.10.9 API version: 1.41 Go version: go1.16.8 Git commit: c2ea9bc Built: Mon Oct 4 16:08:29 2021 OS/Arch: linux/amd64 Context: default Experimental: true Server: Docker Engine - Community Engine: Version: 20.10.9 API version: 1.41 (minimum version 1.12) Go version: go1.16.8 Git commit: 79ea9d3 Built: Mon Oct 4 16:06:37 2021 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.4.11 GitCommit: 5b46e404f6b9f661a205e28d59c982d3634148f8 runc: Version: 1.0.2 GitCommit: v1.0.2-0-g52b36a2 docker-init: Version: 0.19.0 GitCommit: de40ad0 |
이후,
node1을 복제하여 node2를 생성해주면 끝.
2-21. Master, Node1, Node2 스냅샷
이제 현재 master, node1, node2 상태를 스냅샷 떠서 보관해두기로 하자.