본문 바로가기

분류 전체보기207

init-container와 empty-dir 상황 1. main(envoy)는 시작할 때 main(envoy) 내의 유효한 위치에 config파일이 있어야 원하는 구성 대로 만들어지고, 이후 인증서와 grpc용 proto 파일 등도 유효한 위치에 있어야 정상 통신가능하다. 2. 해당 인증서는 만료일이 있어서 일정 주기마다 원격 CA서버로 부터 인증서를 받아 교체해 줘야 한다. 3. 원래 테스트할 땐 main(envoy)는 server file-system dir에서 바로 마운트 해서 해당 파일들을 바로 꽂아줬었다. 4.하지만 이 아키텍쳐 대로 prod 환경이 되면 고객에게 구축해 주기도 복잡하고, 고객도 인증서 넣었다 뺐다 복잡해한다. 무엇 보다 해당 아키택쳐(config파일의 존재, 인증서가 어떻게 main에 들어가는지)가 고객에게 노출된다. 테.. 2023. 11. 30.
Ingress 회사에서 기존 서버 서비스 앞단에 쓰던 Proxy를 ingress로 교체하게 된 이유 1. front의 경우 app 재배포시 proxy도 매번 삭제했다가 재생성 해야하는 번거로움 2. 이로 인해 jenkin에서 자동화시 번거로움 등 3. string 주소로 하면 관리가 편하다 기존에 proxy 아래에 있던 app들이 7개나 되는데 각각 다 다른 설정을 해줘야 해서 번거롭다. ingress에 대해 간단하게 표현하자면 아래와 같이 7계층 string 주소로 서비스를 포워딩해줘서 알맞은 app으로 통신하도록 해주는 LB다. ingress는 크게 두종류가 있는데, nginx가 정보가 더 많아서 NGINX Ingress Controller 로 선택했다. (하지만 나중에 결국 세번째 종류인 Traefik도 맛보게 .. 2023. 11. 30.
서버(로컬)에서의 git 명령어 모두 로컬 서버쪽에서 원격지 깃과 소통하기 위한 명령어다. .git에 모든 설정이 다 들어있다. 초반 셋팅 git init : git 생성하기 위한 명령어 (반댓말 rm -r .git) git status (저장소를 처음 초기화하면, Git 저장소에서 필수적으로 사용하는 .gitignore 빈 파일을 만들고 첫 커밋을 만들어주는 경우가 일반적입니다. .gitignore는 Git 저장소에서 관리하지 않을 파일들을 나열해놓는 특수한 용도로 사용되는 설정 파일. touch .gitignore (깃으로 푸시할때 예외사항 지정하고 싶을때 목록) 원격git 리포지토리 연결 git remote -v git remote add origin http://github.com/name/name.git : remote ori.. 2023. 11. 3.
테스트용 Nginx 띄우기 약 7개월간 K8S를 다루면서 많은 구축을 해보았는데, 그 중 겪는 곤란한 일 중에 하나는 정상 작동 여부를 검증하는 일이었다. 검증의 방법 중 하나로 테스트용 nginx를 띄우는 법에 대해 작성한다. nginx를 쓰는 이유는 간단하다 1. 웹페이지가 뜨기 때문에 가시적인 성공여부 확인이 되고 2. 관련 자료가 많다 복잡하게 작성한 yaml이 작동 안할때 nginx로 이미지를 바꿔서 테스트해서 트슛한 적도 있고, argocd 구축에서도 잘 배포되는지 여부 확인에 유용하게 쓰였고, 이후 앱구동 상태를 전송하는 webhook 테스트라던지, ingress 테스트라던지, ELK 로그를 전송하는 app 역할이라던지 인증서나 토큰 Secret 테스트용이라던지... 등등 신세를 많이 졌다. 아래 띄우는 방법들은 번호.. 2023. 11. 3.
코딩은 순서가 중요하다 오늘의 교훈이다.. 오랜만에 파이썬 기초부터 다시 시작했다. 아래와 같이 poke_type에 3종 타입을 넣으려고 하는데 글씨가 파랑색이 안되고 노랗게 경고가 뜬다. 즉, 아래에 있는 변수명을 인지를 못하는 것인데.. 윗쪽에 있는 다른 변수를 넣어보니 잘만 파란 글씨로 적용된다. 어 왜그러지 하니까 문제는 걍 순서였다. 순서 바꿔주니까 인식이 된다. 사용할 변수/함수는 윗쪽에서부터 읽으면서 내려오는 것이기 때문에 미리 정의해주자 ㅎㅎ 부끄러운 뉴비코딩 교훈일기 2023. 6. 26.
NodePort, port, targetPort 1. 서비스가 지정하는 포트 설정 nodeport 설정 yaml을 예시로 보겠다. //nodeport-service.yaml apiVersion: v1 kind: Service metadata: name: nodeport-service spec: type: NodePort selector: app: nginx-for-svc ports: - protocol: TCP port: 80 targetPort: 8080 nodePort: 30000 위와 같은 yaml에서도보듯 서비스를 생성하는 설정 파일을 보면 위와 같이(port, targetPort, nodePort) 3개의 포트 정보를 설정하게 된다. Nodeport는 클러스터 외부에서 클러스터 내부로 접근이 가능하도록 서비스는 트래픽을 중개하는 역할을 하는 .. 2023. 5. 24.