본문 바로가기

전체 글74

K8S에서 private docker registry 띄우기 쿠버네티스 상에서 image pull을 할 때, 원격 remote registry에서 pull할 수도 있지만, 때로는 보안 이슈로 원격 레지스트리에 올리지 못하는 경우도 존재한다. 이 경우, 직접 registry를 구축해야 한다. 널리 쓰이는 솔루션으로는 CNCF 프로젝트인 harbor가 존재한다. Harbor는 정책 및 액세스 제어로 아티팩트를 보호하고, 이미지를 스캔하고 취약점이 없는지 확인하고, 이미지를 신뢰할 수 있다고 서명하는 오픈 소스 레지스트리이다. 하지만 우리가 도입하기에는 너무 무겁다고 판단했다. 간단히 도커 이미지를 업로드하고 다운로드하는 정도의 기능만 필요하기 때문이다. 고로, k8s 내의 private docker registry 이미지를 이용하기로 결정했다. 방법 쿠버네티스를 위한.. 2023. 4. 25.
가로 세로 스크롤 되는 테이블 만들기 Frontend 작업을 하다 보니 다음과 같은 테이블이 필요했다. 상하 스크롤이 필요. 단, 헤더 영역은 위에 고정 왼쪽, 오른쪽 영역은 고정된 상태로 좌우 스크롤이 필요. 즉, 스크롤 영역이 각자 다르기 때문에 테이블 자체가 쪼개져 있어야 한다는 뜻이다. 나는 이 문제를 해결하기 위해 다음과 같이 생각해 보았다. 6개 영역을 div로 처리하여 css grid를 활용, 테이블처럼 느껴지도록 배치 크게 왼쪽, 오른쪽, 가운데 영역으로 분할. 왼쪽, 오른쪽, 가운데 각각에 대해 스크롤 영역을 배치. 스크롤바는 오른쪽 영역에만 보여준다. 어느 하나라도 스크롤이 이루어진다면 다른 컴포넌트에 대해서도 스크롤 (js 이용) 크게 왼쪽, 오른쪽, 가운데 영역으로 분할되는 것은 같지만 스크롤 영역을 전체 div에 대해.. 2023. 4. 24.
[TIL] regcred 알아보기 쿠버네티스를 실제 운용할 때, 쿠버네티스 pod의 이미지를 레지스트리에서 받아와야 하는 경우가 많다. 이런 경우 docker hub 등 public registry에서도 이미지를 가져올 수 있지만, ecr 등의 private registry에서 이미지를 받아오는 경우도 많다. 이미지를 받아올 secret을 생성하고, 주기적으로 갱신하는 작업을 정리해 보았다. https://kubernetes.io/ko/docs/tasks/configure-pod-container/pull-image-private-registry/ 시크릿 생성하기 쿠버네티스 클러스터는 프라이빗 이미지를 받아올 때, 컨테이너 레지스트리에 인증하기 위하여 kubernetes.io/dockerconfigjson 타입의 시크릿을 사용한다. 만약.. 2023. 4. 24.
[TIL] copy-on-write 방법론 - js에서 퍼포먼스 테스트 함수형 프로그래밍 책을 읽다가 좋은 패턴 중 하나로 copy-on-write 원칙을 설명하는 것을 보았다. js에서는 파라미터를 함수로 넘길 때 객체의 경우 레퍼런스를 넘기게 된다. 따라서 레퍼런스 값에 직접 access하다 보면 우리가 인지하지 못하는 변화가 있을 수 있다는 것이 논조이다. 예를 들어, 전역 변수를 parameter로 넘겨주고, 함수에서는 전역변수를 변경한다면, 해당 변수를 참조하는 또 다른 함수의 경우 예기치 못한 변화로 인한 버그가 발생할 수 있다는 것이다. 책에서 추천하고 있는 방향은 다음과 같다. function f(arr) { const newArr = arr.slice(); newArr[3] = "new"; return newArr; } const arr = ["hello",.. 2023. 4. 22.