728x90
반응형
지난 번에는 쿠버네티스가 무엇인지에 대해서 배웠고,
https://mightytedkim.tistory.com/13
2장에서는 쿠버네티스와 연관이 많은 도커와 관련된 내용들이 나와요
SLIPP 21차 스터디에서 도커와 관련된 트러블 슈팅 경험등을 공유 했어요
0. 토의 내용
책 관련
- p132. 컨테이너의 실체는 호스트 프로세스
- vagrant 부분에 pts/0,1,2로 나뉘는거같은데, 4420, 4454부분이 pts가 바뀌는게 이해가 안가요
- 실습 예제 따라하기 (mac M1)
- 도커
- 미니쿠베
- https://github.com/kubernetes/minikube/releases/download/v1.22.0/minikube-darwin-arm64
- 미니쿠베의 헬로우 월드 실습 예제가 실행 안될 수 있음, 알려져있는 버그임
- > Unexpected output for minikube version check: - You are trying to run amd64 binary on M1 system. Please consider running darwin/arm64 binary instead (Download at https://github.com/kubernetes/minikube/releases/download/v1.22.0/minikube-darwin-arm64. ),CurrentVersion: v1.22.0,LatestVersion: v1.22.0
리눅스
- tty와 pts의 차이
- 콘솔에서 바로 접근했는지, 원격지에서 했는지 차이인가요?
- putty로 접근하면, /dev/pts/10 로 나오는데 일반적으로 우리가 붙을때는 ssh 이용하는거니까 다 이렇게 나오는건가요
- "tty가 물리적인 콘솔에서 사람이 직접 조작하는 개념이라면, pty는 telnet 처럼 원격에서 접속하거나X-Window에서 xterm, hanterm 같은 에뮬레이터로 접속할 때 사용하는 접속점의 개념이다"
- tty(teletypewirter)
- pts(pseudo terminal slave)
- ptm(pseudo terminal master)
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=jangpro1003&logNo=90098910350
docker 관련
- non-root user로 도커 실행하기
- 필요 이유
- 기본값은 컨테이너의 root로 실행되는데, 로그나 기타 파일들이 root로 저장되면 사용하기가 쉽지 않음
- volume, 로그 파일에 접근하기 위해서, 을 Root 가 아닌 현재 사용자로 생성 필요함
- 해결 방법
- docker-compose 의 command로 해결
- id -u [계정] 로 uid를 보고, usermod xxx 이런식으로 설정가능
- image: node:12-slim command: bash -c "usermod -u 1000 node && cd /home/node && su - node -c 'node .'" container_name: c-ds
- https://couplewith.tistory.com/entry/Docker%EB%B6%80%ED%84%B0-Kubernetis-%EC%84%A4%EC%B9%98-%EB%8F%84%EC%BB%A4%EC%84%A4%EC%B9%98
- 필요 이유
- 도커 로깅
- my-app:
image: my-app:latest
logging:
driver: "json-file"
options:
max-file: 5
max-size: 10m
- my-app:
기타
- vagrant랑 xen server랑 비슷한건가요?
- 둘다 vm 띄우는 용도라서 비슷한거같음
- docker 환경이 실제로 많이 편하나요?
- 장애 대처시 당황할 수 있음
- 오프라인에 설치하기가 생각보다 힘듦
- 리눅스 버전, windows server 2016
- 오픈쉬프트 있는 곳도 세팅하기 힘들었음 (AWS 는 편함)
아래는 2장의 내용이에요 ㅎ
1. 컨테이너 첫걸음
요약
- 가장 기본적인 명령어
설명
- 명령어
- docker pull
- docker run
- docker ps
- docker logs
- docker stop, docker kill
- 컨테이너의 PID=1인 프로세스 종료
- docker start
- docker commit
- 현재 컨이너의 상태를 이미지로 만들어 리포지토리에 보관
- docker push
- 이미지를 원격 리포지토리에 보관
- 기타
- 컨테이너느 도커 커맨드에 따라 이미지, 실행, 정지의 세 가지 상태를 이동
2.컨테이너 다루기
요약
- 대화형 모드로 컨테이너 기동/정지
- 컨테이너는 호스트의 커널을 공유하는 리눅스 프로세스
설명
- 명령어
- docker run -it
- docker commit [컨테이너명] [이미지명]:[태그]
- docker run -it --name lucy centos:7 bash
- docker exec -it lucy bash
- 로그인 관리하지 않음
- w 입력해도 아무내용 나오지 않음
- w : 사용자 로그인 정보와 현재 작업 내용 출력
- pts/n
- Unix98 PTYs 를 말합니다. 리눅스 커널 옵션에,/dev/pts file system for Unix98 PTYs 이 부분을 의미하고,파일 시스템입니다. 또한 X-window 에서도 pts/N 입니다. 출처 | https://blog.naver.com/joniel/40003174702
- w 입력해도 아무내용 나오지 않음
- 호스트와 컨테이너와의 관계
- 복수의 터미널에서 실행을 했을 때 TTY가 새로 생김
- p132 : 이해중인데, 다시 정리해볼게요 <이 부분 추가 설명해주실 분들 있으신가요ㅜ
- 의도적으로 포트를 열지 않는 이상 호스트의 외부에서 컨테이너에 접속 X
3. 컨테이너 개발
요약
- 이미지 빌드
설명
- 이미지 빌드
- 베이스 > 패키지 설치 > 소스코드 > docker file 정리
- 컨테이너의 특징
- 실행환경에 학습할 노력 줄여줌
- 의존 관계를 컨테이너에 담아줌
- 관리 부담 줄여줌
- 지속적 개발/릴리스 쉽게 해줌
- 이미지를 이용해 여러개의 컨테이너 만들 수 있음
- best practives for docker files
4. 컨테이너와 네트워크
요약
- --link 대신 컨테이너 네트워크 사용
- 기본적으로 bridge 컨테이너 네트워크로 연결
설명
- 명령어
- docker network
- ls, inspect, create, correct, disconnect
- --network
- bridge(기본)
- 전용 네트워크
- -p (외부에 포트를 공개)
- 공개포트번호:컨테이너포트번호
- -d (백그라운드)
- -e (환경변수)
- docker network
5. 컨테이너 API
요약
- API : 블랙박스로 취급해서 다른 프로그램 호출
- 쿠버네티스는 커네이너를 언제든지 종료할 수 있는 일시적인 존재로 다룸
- 특히 중요한 것은 환경변수와 종료요청 시그널 처리
설명
- API 종류
- 컨테이너 기동
- 헬스체크(쿠버네티스 환경)
- 스탭 07 매니페스트와 파드
- 컨테이너 종료
- 종료 요청 시그널(SIGTERM)
- 강제 종료 시글(SIGKILL)
- 서비스
- 스탭 09 서비스
- 로그
- 표준 출력(STDOUT)
- 표준 오류(STDERR)
- 후크(쿠버네티스 환경)
- 기동하고 종료할 때 컨테이너 내에서 특정 처리 실행
- 매니페스트에 실행 내용을 기술
- ex) 쿠버테니스의 롤아웃
- 스탭 07 매니페스트와 파드
- 기동하고 종료할 때 컨테이너 내에서 특정 처리 실행
- 퍼시스턴트 볼륨
- 설정 파일 + 데이터 보관
- 종료 상태
- PID가 1인 프로세스 종료
- 종료 요청 API
- docker stop : PID 1인 프로세스에 시그널 sigterm 전달 (10초 기다린 후 강제 종료)
- docker kill : PID 1인 프로세스가 시그널 sigkill을 받고 강제 종료
- 퍼시스턴트 볼륨
- .dat 에 count 저장
- DAT 파일: DAT 파일에는 소프트웨어가 처리해야 할 중요한 정보가 들어 있습니다. DAT 파일에 포함 된 정보는 일반적으로 일반 텍스트 또는 이진입니다. 드물게 VCDGear 또는 CyberLink PowerDirector와 같은 프로그램의 비디오 파일의 실제 데이터로 나타날 수 있습니다.
- 출처 | http://choesin.com/dat-%ED%8C%8C%EC%9D%BC%EC%9D%B4%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B4%EB%A9%B0-%EC%96%B4%EB%96%BB%EA%B2%8C-%EC%97%B4-%EC%88%98-%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C
- -v (호스트의 절대 겨로 : 컨테이너의 경로)
- 로그와 백그라운드 기동
- docker logs -f [컨테이너명]
- Docker attach --sign-proxy=false [컨테이너명]
이제 드디어 쿠버네티스를 들어가기 위한 준비가 끝낫어요 ㅎㅎ
다음에는 쿠버네티스 hello word 를 정리해볼게요
728x90
반응형
'기타 > K8S' 카테고리의 다른 글
youtube) k8s+spark+minio 실습 따라하기_2 :: mightytedkim (0) | 2021.09.21 |
---|---|
youtube) k8s+spark+minio 실습 따라하기_1 :: mightytedkim (0) | 2021.09.21 |
Slipp) K8S 스터디4주차_디플로이먼트, 서비스, 잡 :: mightytedkim (0) | 2021.09.20 |
Slipp) K8S 스터디3주차_minikube 실습 :: mightytedkim (0) | 2021.09.11 |
Slipp) K8S 스터디1주차_개념 잡기 :: mightytedkim (0) | 2021.08.15 |