Kubernetes

Kubernetes를 이용한 컨테이너

law and security 2024. 9. 24. 16:13

 

 

<환경설정>

 

 

 

- Virtual Box  환경 설정

 

 

- IP 대역 설정

 

 

 

 

 

 

-> Host -only

 

<NAT 네트워크 추가 및 설정>

 

 

-> 외부와 통신하기 위해 설정 

 

 

<실습 VM가져오기>

 

-  K8smaster 가상머신 실행

 

 

> 네트워크 설정 : virtual box host-only ethernet adapter #2

 

 

 

- MobaXterm 실행 후 k8smaster VM 원격 접속

 

login : root

password: edu

ip 주소: 확인

 

 

< 클러스터네트워크 확인>

k8smaster, k8snode1, k8snode 머신간의 SSH 네트워크 확인

 

ssh k8snode1
exit
ssh k8snode2
exit

 

 

docker run -it ubuntu:24.04

:  Ubuntu 24.04 이미지를 기반으로 새로운 컨테이너를 실행

 

ubuntu의 호스트 네임을 보여준다. 

docker images
docker run -it ubuntu:24.04
hostname

 

 

 

< 실습파일 다운로드>

 

 wget http://jadecross.iptime.org:7778/k8s/lab/lab_k8s_2024.tar.gz

 

 

 

<실습파일 다운로드후 압축해제>

 

 tar xfz lab_k8s_2024.tar.gz
 ls
 cd lab
 ls

 

 

 

cd ~/workspace/guestbook/
ls

 

 

 

cd src/main/resources/templates/
ls

 

 

 

< 방명록 웹어플리케이션용도커 이미지생성>

 sed -i 's/방명록 v1/방명록 v1(최유진)/g' index.html
 cat index.html

 

 

 

<방명록어플리케이션Maven Build 수행 : mvn clean package>

cd~
ls
cd lab
ls
cd ~/workspace/guestbook
mvn clean package

 

 

 

 

<guestbook 방명록 웹어플리케이션용 도커 이미지생성>

 docker build -t () /k8s_guestbook:1.0 .
 ls

 

 

<push하기위해 내 docker hub에 로그인>

docker images
docker login

 

 

 

< hub.docker.com에 로그인 후 guestbook 도커 이미지 PUSH 후 사이트에서 확인>

 

-> 내 래파지토리에 이미지를 올림

docker push choichoiyj/k8s_guestbook:1.0

 

 

 

 

 

-> 생성된 guestbook 도커 이미지 확인

 

 

 

< guestbook 도커 이미지로 컨테이너 실행>

 

docker run --rm -p 8080:8080 choichoiyj/k8s_guestbook:1.0

 

 

 

 

 

<브라우저로 접속하여 방명록 어플리케이션 서비스 실행 확인>

 

http://localhost:8080 - 로컬에서 접속

http://192.168.56.100:8080 - 외부에서 접속

 

 

 

백그라운드로 접속 

docker run -d -p 8080:8080 choichoiyj/k8s_guestbook:1.0
docker ps
docker inspect 7138da3a6cc9

 

 

 

정보는 데이터베이스 컨테이너에 저장된다. 

 

 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------

 

< 쿠버네티스 리소스 종류 및 약어>

 

 

쿠버네티스에서 지원하는 리소스 종류 조회 : kubectl api-resources

 

 

< 네임스페이스에 종속된 리소스조회> : kubectl api-resources --namespaced=true

 

 

 

< 네임스페이스에 종속되지 않은 글로벌 리소스조회> : kubectl api-resources --namespaced=false

 

 

< 클러스터가 작동하는지 확인>

 

 

< 클러스터 정보표시> : kubectl cluster-info

 

Kubernetes control plane is running at https://192.168.56.100:6443  (API 서버 엔드포인트)

 

 

 

< 쿠버네티스 리소스 상세정보 보기>

 

k8snode1 리소스의상세정보보기 : kubectldescribe nodes k8snode1

 

 

< 쿠버네티스 클러스터에 방명록 앱 배포>

 

 

kubectl create 명령으로 방명록 앱 배포

 kubectl create deployment guestbook --image=choichoiyj/k8s_guestbook:1.0 --port=8080

 

 

배포된 쿠버네티스 리소스 목록 확인

 

 kubectl get all -o wide