본문 바로가기
728x90

전체 글121

[EKS] AWS EC2 EBS(Disk) I/O 사용률에 따른 쿠버네티스 서비스 지연 EKS 클러스터 내, Disk I/O를 많이 유발하는 SW가 있다. 예를 들어, Daemonset으로 배포되어 있는 Fluentd 같은 서비스들이 EC2 노드 자원에 Disk I/O를 많이 사용하게 되는 경우 EBS IOPS 3000 기준에 자원이 부족하여 노드 내 kubelet에서 통신이 지연되어 전체적인 서비스 지연으로 이어질 수 있다. 아래 내용은 EBS Disk I/O의 과도한 사용으로 인한 Kubernetes 관점에 서비스 영향도를 나열해보았다. ⅰ) 노드 성능저하 EBS 디스크 IO 사용률이 높으면 EC2 노드에서 지연 시간과 리소스 경합이 증가할 수 있다. 이는 노드의 전반적인 성능에 영향을 미치고 노드에서 실행되는 모든 Pod의 응답시간이 느려질 수 있다. ⅱ) Pod 스케쥴링 지연 Dis.. 2023. 7. 6.
weblogic 관리콘솔 패스워드 변경 스크립트 (윈도우) 2023. 2. 3.
[K8S] 쿠버네티스 네트워킹의 이해 쿠버네티스의 네트워킹에 대해 간단하게 이해한 내용을 정리하고자 한다. - 개인적으로 쉽게 이해하기 위해 혼자 공부한 내용 + 블로그 내용을 참고하여 정리한 글입니다. 틀린 부분이 있을 수 있습니다. 1. pause 컨테이너란? : 하나의 파드를 생성하게 되면 해당 파드 하위의 컨테이너들은 pause 컨테이너의 네트워크 네임스페이스(veth0) IP를 갖게된다. 따라서 동일한 파드 내의 컨테이너 끼리는 하나의 파드 안에서 가상 인터페이스(veth0)를 공유하여 127.0.0.1 (localhost)로 포트를 구분하여 통신할 수 있다. -> Pod는 pause 컨테이너를 통해 네트워크 스택을 공유한다. 허나 위에 그림처럼 도커 네트워크 구조로 여러 노드를 구성할 경우 각각의 파드의 네트워크가 연결되어 있지 .. 2022. 12. 6.
[ISTIO] istio-proxy debugging tips ※ 트래픽이 많은 MSA 환경에서 istio-proxy 로그 레벨을 높이거나 access log를 쌓을 경우 너무 많은 디스크가 사용되기 때문에 기본적으로는 info level에 access 로그는 off로 구성될 수 있다. 허나 실무 서비스 이슈 발생 시 디버깅 용도로 로그레벨 및 access log를 설정하여 봐야하는 경우가 있다. 이번 글에서는 MSA 환경에서 MSA간 문제 발생 시, istio를 통한 디버깅 방법을 적어보려고 한다. ● 서비스 이슈 발생 시 로그 보는 방법 : 기본적으로 이슈 발생 시, 아래 명령어로 컨테이너 로그를 볼 수 있다. $ kubectl logs -f [pod-name] -n [namespace-name] -c [container-name] ※ 멀티컨테이너 구성 시에 -.. 2022. 11. 28.
[ISTIO] ISTIO Architecture ■ ISTIO 아키텍쳐 : Istio 서비스메쉬는 논리적으로 데이터플레인과 컨트롤프레인으로 나뉜다. ⒧ 데이터플레인은 사이드카로 배포된 Envoy-Proxy의 집합으로 구성된다. 이러한 프록시는 마이크로서비스 간의 모든 네트워크 통신을 조정하고 제어한다. 또한 모든 Mesh Traffic에 대한 원격 분석을 수집하고 보고한다. ⑵ 컨트롤 플레인은 트래픽을 라우트하도록 프록시를 구성하고 관리한다. ■ 각 영역(Data/Control)별 핵심구성 요소에 대한 설명 ⑴ Envoy(Proxy) Envoy Proxy는 service mesh안의 모든 서비스들에 대한 모든 in/out bound 트래픽을 중재하기 위해 C++로 개발된 고성능 프록시 서버이다. Envoy Proxy들은 데이터플레인 트래픽과 상호작용하.. 2022. 11. 24.
[Tomcat 8.5] 데이터소스 DB 정보 암호화 (id/pw) 1. 배경 및 목적 Tomcat 서버의 DB정보에 관한 설정은 server.xml 혹은 context.xml 파일에 존재한다. 해당 정보에는 DB 접속에 필요한 id/pw가 있기 때문에 암호화되지 않는다면 계정 정보가 탈취될 가능성이 존재하여 보안에 취약하기 때문에 반드시 계정 정보를 암호화해야 한다. 이 글에서 테스트 환경은 아래와 같다. Server version: Apache Tomcat/8.5.81 Server built: Jun 8 2022 21:30:15 UTC Server number: 8.5.81.0 OS Name: Linux OS Version: 5.10.118-111.515.amzn2.x86_64 Architecture: amd64 JVM Version: 1.8.0_312-b07 JVM.. 2022. 11. 22.
Pod의 생명주기 ★ Pod Lifecycle (생명주기) : Pod는 기동 시에 기본 컨테이너 중 하나 이상이 정상으로 시작하면 Pending -> Running 단계로 넘어가며 Pod 안의 컨테이너 중 하나라도 실패로 종료되었는지 여부에 따라 Succeeded 또는 Failed가 된다. Pod가 실행되는 동안 kubelet은 오류를 핸들링하기 위해 컨테이너를 재시작시킬 수 있다. 쿠버네티스는 Pod 내의 컨테이너 상태를 추적하고 Pod를 다시 정상 Status로 만들기 위해 수행할 조치를 취한다. Kubernetes API안에 Pod는 사양과 실제 상태를 갖고 있다. Pod가 노드에 한번 스케쥴되면, Stop되거나 Termintaed되지 않는 한 수명주기 동안 오직 한번만 스케쥴된다. ★ Pod Phase (단계) P.. 2022. 11. 18.
[ISTIO] ISTIO란(1) ■ Service-Mesh란 현대의 애플리케이션은 일반적으로 분산형 마이크로서비스 집합으로 설계되며, 각 마이크로서비스들은 개별적인 비즈니스 기능을 수행한다. ServiceMesh는 애플리케이션에 추가할 수 있는 전용 인프라 계층입니다. 이를 통해 자신의 코드에 추가하지 않고도 관찰 가능성, 트래픽 관리 및 보안과 같은 기능을 투명하게 추가할 수 있습니다. "Service Mesh"라는 용어는 이 패턴을 구현하는 데 사용하는 소프트웨어 유형과 해당 소프트웨어를 사용할 때 생성되는 보안 또는 네트워크 도메인을 모두 나타냅니다. Kubernetes 기반 시스템과 같은 분산 서비스의 배포가 규모와 복잡성이 증가함에 따라, 이해하고 관리하는 것이 더 어려워질 수 있습니다. 요구 사항에는 검색, 로드 밸런싱, 장.. 2022. 11. 8.
WAS file encoding(Character) JVM 옵션으로 파일 인코딩 설정이 가능하지만, 없다면 기본적으로 host(OS)의 character encoding을 따라간다 (-Dfile.encoding=utf8) The character encoding used in writing the log files is the default character encoding of the host system. 2022. 10. 26.
[JVM] Metaspace 옵션(MinMetaspaceFreeRatio/MaxMetaspaceFreeRatio) 관련 정리 내용 Metaspace 설정 관련하여 하기 내용에 대하여 어떤 의미인지 알고자함 - MetaspaceSize - MinMetaspaceFreeRatio - MaxMetaspaceFreeRatio ★ MetaspaceSize= (default value는 서버마다 다름) : 처음 초과할 때 가비지 수집을 트리거할 할당된 클래스 메타데이터 공간의 크기를 설정(최초 이값을 넘어가면 GC가 일어남) ★ MinMetaspaceFreeRatio (default 40) : 가비지 수집 후에 사용할 수 있어야 하는 메타스페이스 메모리 영역의 최소 백분율입니다. 남은 메모리 양이 임계값 미만이면 Metaspace 영역의 크기가 조정됩니다. ★ MaxMetaspaceFreeRatio (default 70) : 가비지 수집 후에.. 2022. 9. 14.
[TroubleShooting] epollWait란 무엇일까? (EpollWait CPU High) 최근 L 사이트에서 Thread Runnable 중, epollWait 상태의 스레드들이 CPU를 과점유하여 CPU High로 인한 서비스 불능 현상이 발생했다. 사실 이러한 경우, top -H로 Thread 별 CPU 점유율을 확인하면 epollWait 상태의 스레드가 CPU를 과점유하고 있다고 쉽게 판단할 수 있지만, 해당 사이트 환경에서는 top -H가 없는 관계로 확인할 수가 없었다. 그래서 epollWait를 검색하던 중, 해당 원인으로 인한 CPU High 이슈가 상당히 많이 존재하고 있음을 확인했다. 1) https://forum.flashphoner.com/threads/100-cpu-usage-from-netty-epoll.11390/ 2) https://github.com/netty/n.. 2022. 7. 25.
[OHS] OPMN Ping failed Error 이슈 현재 운영 중인 서비스에서 OHS 11.1.1.7 제품에 Ping failed check 실패로 http 서비스가 재기동되는 문제가 발생되고 있다. opmn은 ohs 11.x에서 http 서비스를 관리하는 프로세스로 opmn 프로세스가 http 프로세서에 주기적으로 ping으로 상태를 체크한다. opmn은 default 20초에 1번씩 총 3번을 시도하고 실패할 경우, http 프로세서를 강제로 재기동 시킨다. 현재 운영중인 서비스에서는 2달에 한번 꼴로 Ping failed 이슈로 강제로 재기동되는데, 원인을 찾던 중에 debug 로그 설정 부재로 인해 뚜렷하게 ohs에서 남는 로그가 없었다. 그래서 오라클 SR을 통해 비슷한 사례가 예전에 있었다는 이야기를 듣게 되었다. #1) 비슷한 타사 사례가 있.. 2022. 5. 6.
728x90