전체 글353 Kubernetes 인 액션 7장 컨피그맵과 시크릿: 애플리케이션 설정 다루는 내용 컨테이너의 주 프로세스 변경 애플리케이션에 명령줄 옵션 전달 애플리케이션에 노출되는 환경변수 설정 컨피그맵으로 애플리케이션 설정 시크릿으로 민감한 정보 전달 7.1 컨테이너화된 애플리케이션 설정 왜 환경변수를 사용하는 것이 컨테이너에서 널리 사용될까? 도커 컨테이너 내부에 있는 설정 파일을 사용하는 것은 약간 까다롭다. 설정 파일을 컨테이너 이미지 안에 포함하거나 파일이 포함돼 있는 볼륨을 컨테이너에 마운트해야 하기 때문이다. 설정 데이터를 저장하는 쿠버네티스 리소스를 컨피그맵(ConfigMap) 이라고 한다. 컨테이너에 명령줄 인수 전달 각 컨테이너를 위한 사용자 정의 환경변수 지정 특수한 유형의 볼륨을 통해 설정 파일을 컨테이너에 마운트 자격증명, 개인 암호화 키, 보안을 유지해야 하는 .. Devops/Kubernetes 2023. 6. 19. Kubernetes 인 액션 6장 볼륨: 컨테이너에 디스크 스토리지 연결 다루는 내용 다중 컨테이너 파드 생성 컨테이너 간 디스크 스토리지를 공유하기 위한 볼륨 생성 파드 내부에 깃 리포지터리 사용 파드에 GCE 퍼시스턴트 디스크와 같은 퍼시스턴트 스토리지 연결 사전 프로비저닝된 퍼시스턴트 스토리지 퍼시스턴트 스토리지의 동적 프로비저닝 파드는 내부에 프로세스가 실행되고 CPU, RAM, 네트워크 인터페이스 등의 리소스를 공유하는 논리적 호스트와 유사하다고 했다. 프로세스가 디스크 또한 공유할 수 있을 것이라 예상하겠지만 사실은 그렇지 않다. 파드 내부의 각 컨테이너는 고유하게 분리된 파일시스템을 가진다 파일시스템은 컨테이너 이미지에서 제공되기 때문이다. 6.1 볼륨 소개 Kubernetes Volume은 파드의 구성 요소로 컨테이너와 동일하게 파드 스펙에서 정의된다. Volu.. Devops/Kubernetes 2023. 5. 28. Kubernetes 인 액션 5장 서비스: 클라이언트가 파드를 검색하고 통신을 가능하게 함 참고 NodePort vs LoadBalancer vs Ingress 다루는 내용 단일 주소로 파드를 노출하는 서비스 리소스 만들기 클러스터 안에서 서비스 검색 외부 클라이언트에 서비스 노출 클러스터 내에서 외부 서비스 접속 파드가 서비스할 준비가 됐는지 제어하는 방법 서비스 문제 해결 파드는 일시적이다. 파드가 다른 파드를 위한 공간을 확보하려고 노드에서 제거하거나, 누군가 파드 수를 줄이거나, 클러스터 노드의 장애로 언제든 다른 노드로 이동할 수 있다. Kubernetes는 노드에 파드를 스케줄링 한 후 파드가 시작되기 바로 전에 파드의 IP 주소를 할당한다. 따라서 클라이언트는 서버인 파드의 IP 주소를 미리 알 수 없다. 수평 스케일링은 여러 파드가 동일한 서비스를 제공할 수 있음을 의미한다. 각.. Devops/Kubernetes 2023. 5. 24. Kubernetes 인 액션 4장 래플리케이션과 그 밖의 컨트롤러: 관리되는 파드 배포 다루는 내용 동일한 파드의 여러 인스턴스 실행 노드 장애 시 자동으로 파드 재스케줄링 파드의 수평 스케줄링 각 클러스터 노드에서 시스템 수준의 파드 실행 배치 잡 실행 잡을 주기적 또는 한 번만 실행하도록 스케줄링 노드 전체에 장애가 발생하면 노드에 있는 파드는 유실되며, 이전에 언급한 래플리케이션컨트롤러나 그와 유사한 기능을 하는 컨트롤러가 해당 파드를 관리하지 않는 한 새로운 파드로 대체되지 않는다. 4. 1 파드를 안정적으로 유지하기 파드가 노드에 스케줄링되는 즉시, 해당 노드의 kubelet은 파드의 컨테이너를 실행하고 파드가 존재하는 한 컨테이너가 계속 실행되도록 할 것이다. 컨테이너의 주 프로세스에 크래시가 발생하면 kubelet이 컨테이너를 다시 시작한다. 4.1.1 liveness prob.. Devops/Kubernetes 2023. 4. 22. Kubernetes 인 액션 3장 파드: 쿠버네티스에서 컨테이너 실행 다루는 내용 파드의 생성, 실행, 정지 파드와 다른 리소스를 레이블로 조직화하기 특정 레이블을 가진 모든 파드에서 작업 수행 네임스페이스를 사용해 파드를 겹치지 않는 그룹으로 나누기 특정한 형식을 가진 워커 노드에 파드 배치 3. 1 파드 소개 파드의 핵심 사항은 파드가 여러 컨테이너를 가지고 있을 경우에, 모든 컨테이너는 항상 하나의 워커 노드에서 실행되며 여러 워커 노드에 걸쳐 실행되지 않는다. 3.1.1 파드가 필요한 이유 여러 프로세스를 실행하는 단일 컨테이너보다 다중 컨테이너가 나은 이유 IPC 혹은 로컬 파일을 통해 통신하는 여러 프로세스로 구성돼, 같은 노드에서 실행해야 하는 애플리케이션을 상상해보자.쿠버네티스에서 프로세스를 항상 컨테이너에서 실행시키고, 이 각 컨테이너는 격리된 머신과 비슷.. Devops/Kubernetes 2023. 4. 9. Kubernetes 인 액션 2장 도커와 쿠버네티스 첫 걸음 다루는 내용 도커를 사용한 컨테이너 이미지 생성, 실행, 공유 로컬에 단일 노드 쿠버네티스 클러스터 생성 구글 쿠버네티스 엔진에서 쿠버네티스 클러스터 설치 kubectl CLI 클라이언트 설정과 사용 쿠버네티스에서 애플리케이션의 배포와 수평 스케일링 2.1 도커를 사용한 컨테이너 이미지 생성, 실행, 공유하기 도커 설치와 “Hello World” 컨테이너 실행하기 쿠버네티스에 배포할 간단한 Node.js 애플리케이션 생성하기 격리된 컨테이너로 실행하기 위해 애플리케이션을 컨테이너 이미지로 패키징하기 이미지 기반의 컨테이너 실행하기 누구든 실행할 수 있게 도커 허브에 이미지 푸시하기 LET ME) busybox는 echo, ls, gizp 등과 같은 표준 UNIX 명령줄 도구들을 합쳐 놓은 단일 실행파일 .. Devops/Kubernetes 2023. 4. 5. Kubernetes 인 액션 1장 쿠버네티스 소개 1장, 쿠버네티스 소개 애플리케이션을 격리하고 컨테이너를 사용해 실행 환경 차이 줄이기 쿠버네티스에서 사용되는 컨테이너와 도커의 이해 쿠버네티스로 개발자와 시스템 관리자의 작업 간소화하기 몇 년 전만 하더라도 대부분의 소프트웨어 애플리케이션은 하나의 프로세스 또는 몇 개의 서버에 분산된 프로세스로 실행되는 거대한 모놀리스 였다. 릴리스 주기가 느리고 비교적 업데이트가 자주 되지 않는다. 시스템을 원활하게 구성, 관리, 유지하는 일이 점점 어려워졌다. 각 구성 요소를 배치할 위치를 파악하는 것은 훨씬 어렵다. 위와 같은 이유로 인하여 쿠버네티스가 등장하게 되었다. 쿠버네티스는 하드웨어 인프라를 추상화하고 데이터 센터 전체를 하나의 거대한 컴퓨팅 리소스로 제공한다. 1.1.1 모놀리스 애플리케이션에서 마이크.. Devops/Kubernetes 2023. 3. 21. [베트남] 사파에서 하노이 Vexere 버스 예약 (Klook, Sao Viet) 안녕하세요. 오늘은 베트남 사파에서 하노이 가는 버스를 Vexere 로 예약 했습니다. 그러한 이유는,,, 원래 Klook 으로 12,000원 정도하는 버스를 예약하여 탑승 했습니다. 하지만 아래 사진과 같이 정말 정말 좁았습니다. 또 창문 쪽에 커튼이나 이런 게 없다보니 밖에 차량의 불빛을 막을 수 없었습니다. 그렇다보니 정말 자주 깨고, 불편하더라구요. 그리하여 Vexere APP 을 이용하여 그나마 상태가 좋아보이는 버스를 예약 했습니다. Vexere 설치 Vexere 버스 예약 로그인은 구글 계정으로 하시면 됩니다. Start Point 출발하는 위치를 설정하면 됩니다. Where to? 가는 곳을 설정하시면 됩니다. 저희는 '사파'에서 '하노이'로 이동하도록 설정하였습니다. Departure d.. 일상다반사/자유여행 2023. 3. 10. [필리핀 마닐라] 출발 전 확인 사항 eTravel ,에어비앤비(Airbnb) 안녕하세요. 필리핀 마닐라에 다녀왔습니다. 출발 전 확인 사항에 대해 알아보겠습니다. 1. eTravel 필리핀 마닐라를 갈 때 eTravel 은 필수 입니다. 만약 작성하지 않으시면 기내에서 나눠주는 종이를 작성해야 합니다. https://etravel.gov.ph/ eTravel Philippine One-Stop Electronic Travel Declaration System etravel.gov.ph 필리핀 관광부에서 정리 된 내용을 읽으면서 작성하시면 끝 입니다. https://www.itsmorefuninthephilippines.co.kr/travel/eTravel 이트래블 해당 안내는 필리핀 입국에 대한 최소한의 정보 제공 목적으로 작성되었으며, 입국을 책임지지 않습니다. 입국 규정은 수.. 일상다반사/자유여행 2023. 3. 5. [PostgreSQL] sorry, too many clients already 문제 해결 안녕하세요. 오늘은 PostgreSQL sorry, too many clients already 해결법에 대해 알아보겠습니다. 구현 사항은 docker-compose 로 web과 db를 배포해둔 상태입니다. web 에서 apscheduler 로 특정시간마다 정보를 가져와 db에 저장하는 것을 진행하던 중 문제가 발생하였습니다. 문제는 sorry, too many clients already 한마디로 클라이언트 수가 초과했다는 것을 의미합니다. 1. docker-compose DB connection docker-compose exec -it db /bin/bash apt-get update apt-get install vim docker-compose db 에 접속합니다. 그리고 vi var/lib/po.. Language/Python 2023. 2. 23. Python 구글 뉴스 데이터 크롤링(apscheduler, nohup) - 2 https://newbiecs.tistory.com/365 Python 구글 뉴스 데이터 크롤링(beautifulsoup4, slack) - 1 안녕하세요. 요즘 할 일들이 많아서 일주일에 한번 글 쓰기가 소홀해졌네요. 오늘의 미션은 1. '한국타이어' 뉴스를 크롤링하라 2. 크롤링은 '매일' 오전 11시에 하고 싶다. 다음 게시글에서 작성 newbiecs.tistory.com 안녕하세요. 전에 작성했던 글을 마무리 해보겠습니다. 이번에 사용할 건 Python apscheduler와 nohup 되겠습니다. 저도 nohup를 처음 사용하는데요. 간단히 알아보자면 '프로세스가 중단되지 않는 백그라운드 작업을 수행' 하는 용도로 사용된다고 하네요. 다음으로 apscheduler 은 파이썬의 스케쥴러 모듈입니다.. Language/Python 2023. 2. 14. Python 텔레그램(telegram) 채널 데이터 가져오기, Django Create a Model- 2 안녕하세요. 저번에는 작성했던 글에 이어서 텔레그램(Telegram) 데이터 가져오기를 구현해보겠습니다. Python 텔레그램(telegram) 설치(Installation), 로그인(Signing in), API 개발 도구(API development tools) - 1 안녕하세요. 오늘은 텔레그램 데이터를 가져오고, 데이터베이스 저장 및 프론트엔드, await 과 async 에 대해서 알아보겠습니다. 텔레그램에서 왜 데이터를 가져오냐 에 대해서는 주식관련 뉴스나 newbiecs.tistory.com 링크에서 발급받은 API_ID 와 API_HASH 값이 없으면 구현할 수 없기 때문에 위 링크를 꼭 봐주시기 바랍니다. Python 을 이용하여 텔레그램 채널 데이터를 가져오고, 가져온 정보를 Django.. Language/Python 2023. 2. 6. 이전 1 2 3 4 5 6 7 8 ··· 30 다음 💲 추천 글