Azure Container Orchestratoin #1
manchiro edited this page Jul 17, 2020
·
6 revisions
- 교육 : Container Orchestration : CI/CD Pipeline
- 일시/장소 : 2020 7/13~15. 805호
- Chrome 브라우저 사용
- 공지 및 익명 게시판 : https://slido.com/
- 교재 : https://github.com/event-storming/container-orchestration/blob/master/Container_Orchestration(Azure)_v2.5.pdf
- Git : https://github.com/event-storming/container-orchestration
- 실습 스크립트 룩업 (MSA 교육 : https://workflowy.com/s/msa/27a0ioMCzlpV04Ib )
- 시작 > Docker Desktop
- 시작 > Ubuntu 18.04 LTS > 설치 : MS 로그인 하지 않아도 됨.
- Ubuntu에서 Azure Client 설치
- Local Respository가 Docer Daemon 임.
- Icon Tray > Settings > Expose daemon on tcp://localhost:2375 without TLS 선택
docker가 수행이 안된다면
- Windows 기능 켜기/끄기 -> Hyper - V 체크 해제 -> 재부팅
- 1번과 동일하게 Windows 기능 켜기/끄기 -> Hyper - V 체크 후 -> 재부팅
- gpedit.msc -> 로컬 그룹 정책 편집기에서 "컴퓨터 구성 -> 관리 템플릿 -> 시스템 - Device Guard -> 가상화 기반 보안 켜기 편집(더블클릭) -> 사용안함
- Ubuntu 설치
- Docker cient 설치
- AZcure Client 설치
도커 데몬과 도커 Client 연결 https://workflowy.com/s/msa/27a0ioMCzlpV04Ib#/35190b0d69d3
- Docker client가 호출되는 요청을 Repository가 되도록 설정함.
- watch 명령어 : 입력한 명령어의 결과를 일정한 주기 초 단위 모니터링 하기 위한 명령
watch ls
- cat deployment.yaml | grep "hello" # 명령어 2 개 이상을 엮어서 앞 명령의 결과를 뒷 명령의 입력으로
- echo "hello, korea" >> deployment2.yaml # 첫번째 명령의 결과를 두번째 파일의 끝 부분에 추가
- Image 여러 개의 읽기 전용 (Read Only) 레이어로 구성
- Container : Image 위에 R/W 레이어를 두고 , 실행 중 생성 또는 변경 내용 저장
- 가상머신 생성시 사용하는 ISO 와 유사한 개념의 이미지
- 여러 개의 층으로 된 바이너리 파일로 존재
- 컨테이너 생성시 읽기 전용으로 사용
- 도커 명령어로 레지스트리로부터 다운로드 가능
- 저장소 이름 : 이미지가 저장된 장소 , 이름이 없으면 도커 허브 (Docker 로 인식)
- 이미지 이름 : 이미지 이름 , 생략 불가
- 이미지 버전 : 이미지 버전정보 , 생략 시 latest 로 인식
- 이미지 Path 는 //<Image_name>: 형식
- library 는 도커허브 공식 이미지 Namespace 로 , 여기에 사용자 이름이 위치
- 도커 이미지로 부터 생성
- 격리된 파일시스템 , 시스템 자원 , 네트워크를 사용할 수 있는 독립공간 생성
- 이미지를 읽기 전용으로 사용 , 이미지 변경 데이터는 컨테이너 계층에 저장
- docker run --name my-nginx -d -p 80:80 nginx
- 이미지 저장소(Docker hub)에서 nginx 이미지를 pull 하여 docker container를 my-nginx 만들어줘.
- 사용자접속포트:노출포트
skccadmin@SKCC18D00132:~$ docker run --name nginx -d -p 80:80 nginx
Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
8559a31e96f4: Pull complete
1cf27aa8120b: Pull complete
67d252a8c1e1: Pull complete
9c2b660fcff6: Pull complete
4584011f2cd1: Pull complete
Digest: sha256:a93c8a0b0974c967aebe868a186e5c205f4d3bcb5423a56559f2f9599074bbcd
Status: Downloaded newer image for nginx:latest
84fba74735fb6c5c7c9934a42f4a942b8590bb8710ba939c24c9824f34af6b15
- docker run --name nginx -d -p 8080:80 nginx
- docker ps # container 목록 조회
- docker images #local 저장된 이미지 목록
- 컨테이너 실행
$ docker run [Options] [Image] [
- 실행 중인 컨테이너 확인
$ docker ps $ docker ps -a # 정지된 컨테이너 포함
- 컨테이너 시작 , 재시작 , 종료
$ docker start / restart / stop [ 컨테이너 이름
- 컨테이너 삭제
$ docker container rm [ 컨테이너 ID]
- 모든 컨테이너 한번에 삭제 중지 후 삭제
$ docker container rm $(docker ps a q)
- html 내용 및 dockerfile 생성
- 도커라이징
- 현재 폴더에 있는 Dockerfile로 이미지를 생성함.
- docker build -t (Docker-ID)/my-nginx:v1 .
skccadmin@SKCC18D00132:~/Dockerfile$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
manchiro/my-nginx v1 254d30fcb533 About a minute ago 132MB
nginx latest 0901fa9da894 2 days ago 132MB
- docker login # docker에 로그인함
- docker push (Docker-ID)/my-nginx:v1
skccadmin@SKCC18D00132:~/Dockerfile$ docker push manchiro/my-nginx:v1
The push refers to repository [docker.io/manchiro/my-nginx]
75675fafdf98: Pushed
2808ec4a8ea7: Mounted from library/nginx
4856db5e4f59: Mounted from library/nginx
7ef35766ef7d: Mounted from library/nginx
0e32546a8af0: Mounted from library/nginx
13cb14c2acd3: Mounted from library/nginx
v1: digest: sha256:f48620a58aa13144c44dd83fc6caa3a80be81cb6367ad9728b3c896678afa5ae size: 1569
- 컨테이너 삭제 : docker container rm $(docker ps -a -q)
- 이미지 삭제 : docker image rm -f $(docker images -q)
- 컨테이너 부터 삭제해야 이미지를 삭제할 수 있음.
- Container Orchestration
- Cloud Platform : Azure, AWS, GCP
- Azure (http://portal.azure.com) :
- 클러스터 만들기 : 쿠버네티스명 admin5-k8s
- 이미지 리파지토리로, docker hub의 나의 계정에 올리지 않고, 컨테이너에 등록하게됨.
- admin5acr.azurerc.io/my-nginx:v1
# az account set --subscription "종량제1"
# az aks get-credentials --resource-group admin5-Resource_Group --name admin5-k8s
# az acr login --name admin5acr
# az aks update -n admin5-k8s -g admin5-Resource_Group --attach-acr admin5acr
# kubectl create deploy my-nginx --image=manchiro/my-nginx:v1
# kubectl expose deploy my-nginx --type=LoadBalancer --port=80
- 분석/설계- 이벤트 스토밍 (40점), 구현 (30점), 운영 (30점)
- 9월
- TCL 통해 실습료 지원. 동일부분 구성원도 가능. Lab당 1백만원. 1명당 4만원. 교재비/식사/다과 지원가능.
- 연구개발 주제를 Project 내용으로 가능함.
- 연제경(팀), 노필호, 박유리, 성은주, 채민호
"머리는 차갑게, 가슴은 따뜻하게" | [Top]