GithubHelp home page GithubHelp logo

start-docker-kubernetes's People

Contributors

bingbingpa avatar bluewow avatar brido4125 avatar chaejieun avatar chaejieun-work avatar ramen6315 avatar yejiahn avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

start-docker-kubernetes's Issues

도커 스웜에는 secret과 config라는 기능을 제공한다.

도커 스웜에는 secret과 config라는 기능을 제공한다. 실무에서도 많이 쓰이는 기능인가요? 저는 일단, config 관련은 모놀리틱인 경우에는 같은 서버에 파일로 놓는 방식을 택하고, MSA 구조에서는 spring cloud configuration을 사용하고 있습니다.

도커 스웜 클래식과 도커 스웜 모드에 대한 이론 궁금점

책에서 스웜 클래식은 여러 대의 도커 서버를 하나의 지점에서 사용하도록 단일 접근점으로 제공하며, 스웜 모드는 마이크로서비스 아키텍처의 컨테이너를 다루기 위한 클러스링 기능에 초점을 맞추고 있다고 하네요.

아직 책의 초반이지만 스웜 모드도 결국 여러 대의 도커 서버를 하나의 지점으로 만들어주는게 맞는 것 같은데 여기서 MSA 나와야하는게 맞은지 궁금해요.

docker image 단일 파일 저장

이미지를 단일 파일로 저장하는 것은 효율적인 방법이 아니다라고 하는데, 이미지 자체는 단일 파일로 관리하는게 맞지 않을까요?

Nginx 서버로 접근 권한 생성 CA 과정 오류

image

openssl genrsa -out ./certs/domain.key 2048
실행 후,

openssl req -new -key ./certs/domain.key -subj /CN=${DOCKER_HOST_IP} -out ./certs/domain.csr

이 부분에서 캡쳐본과 같은 에러가 발생하는데
혹시 해결하신 분 있으실까요..?

docker image 관리

실무에서 docker image는 어떻게 관리해야할까요?

  • docker hub 사용
  • docker registry 컨테이너 사용

레지스트리 컨테이너 인증서 생성 과정중 Error opening CA Certificate ./certs/ca.crt 에러 발생

레지스트리 컨테이너 인증서 생성 과정중에서
openssl x509 -req -in ./certs/domain.csr -CA ./certs/ca.crt -CAkey ./certs/ca.key -CAcreateserial -out ./certs/domain.crt -days 100000 -extfile extfile.cnf
Error opening CA Certificate ./certs/ca.crt 이렇게 에러 발생 이유

발생원인

문제

여기서 Country Name(2 letter code) []: 부분에 빈값을 입력하면 `error, no objects specified in config file` 출력 아니라 2자리 나라 코드 입력 문제 해결당시 : "KR" 입력

결과

해결

이후 과정은 책그대로 따라하니 됐습니다 !

교재 155P 도커데몬 -H 옵션 실습 질문입니다.

우선 본인의 경우 맥 + iterm2 + AWS ec2에 도커를 깔아서 실습을 진행중입니다.

  • 제가 교재를 읽고 이해한 바로는 터미널에서 dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375 명령어로 docker 데몬을 실행시킵니다.
  • 그리고 나서 또 다른 터미널에서 해당 ec2로 접속해서 도커 명령어를 사용하면 저희가 이전에 도커를 사용했던 것처럼 사용가능하다라고 이해했습니다.
  • 근데 이제 dockerd -H tcp://<제 IP 주소>:2375를 통해 도커 데몬을 실행시키고 또 다른 터미널에서 curl <제 IP 주소>:2375/version --silent | python -m json.tool 명령어를 수행하면 아래와 같이 출력됩니다.(아래 이미지는 ubuntu 유저 권한이지만 root 권한으로 실행해도 동일한 결과가 출력되었습니다)
    image

혹시나 정상적으로 실습 진행하신분들이 계시다면 알려주시면 감사하겠습니다!

쿠버네티스 마스터 노드와 워커 노드가 다운 됐을 때?

책 초반 읽는 중인데, 쿠버네티스가 갑자기 다 다운됐을 때 어떻게 되는지 궁금해서 찾아보았네요.

쿠버네티스 마스터 노드와 워커 노드가 모두 다운 됐을 때는 모든 파드들도 죽는다. 10대의 서버에 웹서버를 분산 로드밸런싱 시켜놨는데 10대 다 끄면 웹서버가 정상동작하냐 랑 똑같다고 보면 된다고 한다.

만약 마스터 노드만 죽으면 어떻게 될까? 쿠버네티스는 엘라스틱서치와 더불어 분산시스템과 비슷하게 마스터 노드가 죽으면 다른 워커 노드가 마스터 노드로 승격되는 구조는 아니라고 한다. 왜냐하면 둘의 역할이 매우 다르기 때문이다. 엘라스틱서치에서는 이게 가능한게 노드들이 모두 유사한 역할을 하기 때문이다. 그래서 마스터 노드를 여러개 놓고 관리를 한다고 한다.

  • 번외
    워커노드가 다운 됐단 건지 컨트롤플레인이 다운 됐단 건지 컨트롤플레인이 다운됐으면 몇 개 중 몇 개가 다운 됐다는 건지? 서버노드 자체가 셧다운 됐다는 건지 컨트롤 플레인 컴포넌트 중 일부가 죽었다는 건지? 에 대한 여파는 어떻게 될까?

Local Volume 설정 시 WordPress 오류

  1. wordpress_db 설정

스크린샷 2022-06-19 오후 8 32 11

/Users/flamme/wordpress_db:/var/lib/mysql mysql:5.7 를 이용한 local volume 설정.
책에서는 /home/wordpress_db 이지만, 접근권한 오류로 인하여, 경로 변경

  1. wordpress 설정

스크린샷 2022-06-19 오후 8 32 20

  1. docker container 상태

스크린샷 2022-06-19 오후 8 32 34

  1. wordpress 접근

스크린샷 2022-06-19 오후 8 32 44

Error establishing a database connection로 인하여, 접근이 안됩니다. 혹시 해당 이슈에 대해서 변경해야할 부분이 있을까요?

도커 스웜 예제 진행시 aws instance 설정

스크린샷 2022-07-10 오후 7 47 58

실습용 으로 할때는 인바운드 규칙에서 port를 전부 열어 줬습니다. 인바운드 규칙 추가 하는 방법은

스크린샷 2022-07-10 오후 7 49 21

EC2화면에서 왼쪽 최하단으로 내리면 맨위 사진처럼 보안 그룹이 있습니다. 보안그룹클릭 -> 보안그룹 아이디 클릭 하면 인바운드 규칙을 설정 할 수 있습니다. 여기서 모든 TCP에서 전체 포트 열어주니 실습이 잘됐습니다.

이건 다시 할때 잊어먹을것 같아서 기록용으로 남깁니다

[2주차] 컨테이너 메모리 제한 명령어 경고

79Page 컨테이너 메모리 제한

docker run -d --memory="1g" --name memory_test nginx명령어 입력시 경고 발생 아래와 같은 경고 발생

WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.

경고를 직역하면 커널의 설정 때문에 memory swap의 제한에 대한 기능을 지원하지 않는다는 것입니다.
즉, memory-swap 옵션을 줄 경우 해당 기능을 커널문제로 인해 수행하지 못한다는 뜻입니다.
해결방법을 알아봅시다.

  1. sudo nano /etc/default/grub

  2. 아래와 같이 파일 수정
    GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"

Screen Shot 2022-06-23 at 8 20 38 PM

  1. 나와서 sudo update-grub

  2. sudo reboot

  3. 컨테이너 run 다시하기

Swap Memory란?

이 개념이 헷갈렸는데 찾아보니 실행중인 컨테이너의 메모리가 부족하게 되면 host의 디스크의 용량을 일정부분 가져와 사용할 수 있는 메모리입니다.
만약 해당 메모리가 사용되고 있다면 해당 컨테이너의 실제 메모리는 이미 전부 사용중이라고 예상할 수 있습니다.
그리고 교재에는 정확히 기술이 안되어있는데 --memory=200m --memory-swap=500m이라는 옵션은
실제 컨테이너 메모리 = 200m, swap 가능한 메모리 = 300이라고 합니다.

혹시 틀린 내용있으면 피드백 부탁드립니다 :)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.