Programming-[Infra] (44) 썸네일형 리스트형 쿠버네티스 인 액션: ch3. 파드: 쿠버네티스에서 컨테이너 실행 쿠버네티스 인 액션: 그림과 상세한 설명으로 명확하게 이해하는마르코 룩샤 저 / 강인호,황주필,이원기,임찬식 역 | 에이콘출판사 | 2020년 03월 31일 파드: 쿠버네티스에서 컨테이너 실행 파드소개파드함께 배치된 컨테이너 그룹쿠버네티스의 기본 빌딩 블록일반적으로 파드는 하나의 컨테이너를 포함 (그룹이니까 여러개가 될 수 있음)파드 안에 있는 모든 컨테이너는 같은 노드에서 실행 파드가 필요한 이유여러 프로세스를 실행하는 단일 컨테이너보다 다중 컨테이너가 나은 이유* 모든 프로세스 실행과 로그 관리를 사용자가 직접 처리해야함* 각 프로세스의 실패 시 자동 재시작 같은 메커니즘이 필요* 여러 프로세스가 동일한 표준 출력으로 로그를 기록하므로 어떤 로그가 어떤 프로세스에서 발생했는지 구분하기 어려움 .. 쿠버네티스 인 액션: ch2. 도커와 쿠버네티스 소개 쿠버네티스 인 액션: 그림과 상세한 설명으로 명확하게 이해하는마르코 룩샤 저 / 강인호,황주필,이원기,임찬식 역 | 에이콘출판사 | 2020년 03월 31일 2.1 도커를 사용한 컨테이너 이미지 생성, 실행, 공유하기2.1.1 도커 설치와 Hello World 컨테이너 실행하기리눅스 머신도커는 리눅스 머신에 설치되고 실행된다. 맥이나 윈도우를 사용하는 환경이라면 도커를 안내에 따라 설치하는 것은 가상 머신을 생성하고 그 가상 머신 안에 도커 데몬을 구동하게 되는 것이다. 호스트 OS에서 도커 클라이언트 파일을 실행하면 가상 머신에 구동된 도커 데몬과 통신하는 방식이다. busyboxbusybox 이미지는 echo, ls, gzip 등과 같은 표준 UNIX 명령줄 도구들을 합쳐놓은 단일 실행 파일.. Deploy: ECR: Assume Role for CI w/ github workflow 필요성AWS Assume Role을 적용하면 github으로 CI(Continuous Integration)를 위해 AWS 계정의 ACCESS_KEY, SECRET_KEY를 대체할 수 있다. 따라서 코드가 간결해진다. 관리자 입장에서는 특정 유저에게 IAM 권한 및 토큰을 발급해야하는 관리 요소가 줄어든다. 또한 Assume Role을 사용하는 위치 및 이력을 추적하여 관리할 수 있게 된다. 개념Assume Role은 임시로 특정 역할을 가정하여 제한된 권한만 주는 방식이다. github에 적용한다면 github의 특정 레포지토리에 assume-role을 주고, 해당 role은 특정 AWS 리소스의 특정 역할만 사용가능하도록 설정해줄 수 있다. 예를 들어 AWS Assume Role을 하나 만들고, gi.. [작성중] keycloak k8s 배포 보호되어 있는 글입니다. keycloak infinispan - k8s(minikube)로 실행 keycloak 관련 내용이긴한데, 이미지가 keycloak일 뿐 k8s 공부라서 해당 카테고리에 적는다.keycloak을 k8s로 실행하기 위한 내용들은 아래 링크에서 참고했다.https://engineering.vendavo.com/keycloak-deployment-with-distributed-cache-43f72995674d 23년 8월 글인데, 벌써 keycloak에서는 이런 점들을 업데이트하고 k8s 환경에서 실행할 수 있도록 가이드를 바꿔놨다. 아래 글들은 k8s를 keycloak을 통해서 공부하는데에만 참고하고, 실제 keycloak의 k8s에서의 실행은 아래 문서를 참고하도록 한다.https://www.keycloak.org/getting-started/getting-started-ku.. Docker network: haproxy Layer4 connection problem, info: "Connection refused" Problem 1. 문제 상황 docker container를 통해 keycloak server를 3개 실행하고, HAproxy를 통해 load balancing을 할려고 했다. 설정 파일인 haproxy.cfg는 아래와 같이 설정했다. 설정 내용에 중요한 부분이나 내가 겪었던 문제가 되는 부분들을 주석으로 넣어두었다. #---------------------------------------------------------------------# Global settings#---------------------------------------------------------------------global log 127.0.0.1 local2 # 처음에는 /var/... 주소로 설정되어있었는데 h.. Elasticache 연결 문제 - <unresolved>:6379, Redis, Springboot, Lettuce 문제상황 Elasticache - Redis를 사용하기 위해 Redis cluster를 생성하고 스프링부트 - LettuceConnectionFactory를 통해 연결할려는데, 아래와 비슷한 에러가 발생했다. Caused by: io.lettuce.core.RedisConnectionException: Unable to connect to {레디스 엔드포인트 주소}.cache.amazonaws.com/:6379 at io.lettuce.core.RedisConnectionException.create(RedisConnectionException.java:78) at io.lettuce.core.RedisConnectionException.create(RedisConnectionException.java:.. [탐험]S3 Content-Disposition으로 파일 다운로드 이름 변경, CloudFront 캐시 무효화 1. 결론 s3는 Content-Disposition값에 따라 다운로드하는 파일의 이름을 변경할 수 있다. 다만 S3 자체에서 다운로드 할때는 AWS에서 해당 header값을 override해서 안된다. URL을 거쳐서 진행할때만 가능하다. CloudFront를 사용하는 경우 요청의 X-Cache 값을 살펴보자. S3와 즉각적으로 동기화가 안된다면 캐싱 때문일 수도 있고, 이때는 무효화를 적극적으로 고려해보자. 상기 내용 때문에, CloudFront로 연결된 S3의 Content-Disposition 값을 그대로 프론트에서 활용하는 것은 실시간성을 확보할 수 없다. 실시간으로 변경 및 표시가 필요하다면 따로 DB 등에 저장해놓고 해당 값을 프론트에서 조회해야한다. 2. 문제상황 S3에 업로드된 파일을 사.. 이전 1 2 3 4 5 6 다음