IT 공부/WebLogic 이슈 2024. 4. 4.
<BEA-000802> 웹로직 AssertionError
WebLogic Ver: 10.3.6.0 버전 에 #### java.lang.AssertionError: Reference Count value set below 0, value is-1. java.lang.AssertionError: Reference Count value set below 0, value is-1 at weblogic.servlet.internal.session.ReplicatedSessionContext.sync(ReplicatedSessionContext.java:88) ... 위와 같은 에러가 찍히며, 애플리케이션 페이지가 정상적으로 로딩이 잘 되지 않는 경우 20181997 patch 적용 후 에러가 발생 이 이슈는 10.3.6.0.11 뿐만 아니라 다른 10.3.6 및 12...
IT 공부/WebLogic 이슈 2024. 4. 2.
<BEA-160237> Failed to load class... 웹로직 기동시 발생
11g -> 14c 업그레이드 과정에서 발생한 로그 12c 이상 웹로직에서 발생하는 로그로, 다른 WAS와 비교했을 때 동일 어플리케이션이지만 유난히 서버 기동시간이 오래걸릴 경우 확인해볼법 하다. 우선 로그레벨을 Debug 로 내려야 확인이 가능 User Application을 배포하는 과정에서 아래와 같이 'Failed to load class' 오류가 발생하며 deploy시에 지연이 발생함. 이 오류는 log level이 debug일 경우 확인이 되며 application은 정상 배포된다. 예시 위와같은 형식이며 org.apache.kafka.clients.producer 가 없다는 뜻임 이유는 12c (12.2.1.0 이상) 에서 배포시 class scan 중 상속관계에 있는 클래스들을 찾기 시작..
IT 공부/Web-WAS 2024. 3. 31.
[WebLogic] 웹로직 계정 초기화 방법
1. 실행중인 웹로직 종료 $DOMAIN_HOME/bin/stopWebLogic.sh 2. 데이터 폴더 백업 해두기 mv $DOMAIN_HOME/servers/AdminServer/data $DOMAIN_HOME/server/AdminServer/data.backup 3. 환경변수 세팅 mv $DOMAIN_HOME/bin . ./setDomainEnv.sh 4. 도메인 홈 경로로 이동 하여 ID, PASSWD 세팅 cd $DOMAIN_HOME/security #기존 파일 백업해둘것 # ex) DefaultAutehnticatorInit.ldift 등 java weblogic.security.utils.AdminAccount . . 까지 반드시 입력! 5. 명령어를 입력하면 새로운 DefaultAuthen..
IT 공부/Web-WAS 2024. 3. 29.
[WebLogic] 웹로직 패치 받는 방법
1. oracle cpu 검색 (https://www.oracle.com/kr/security-alerts/) 또는 오라클 파트너의 경우 주기적으로 메일로 링크를 보내주니 해당 링크 클릭 2. Critical Patch Updates (CPU) 클릭 - 정기패치같은 의미 (수시로 하는 패치도 따로 있음) 3. 최신 날짜 클릭 4. 받을 프로그램 선택 (Fusion Middleware 클릭) 5. 오라클 로그인 (서포트 아이디만 가능) 6. 받을항목 선택 7. 창 이동 후 다운로드 클릭 WLS 12c 이상은 OPATCH 도 받아야 패치 진행가능 SPU 는 Sample Patch 이므로 받지말고, PSU, CPU 패치만 받아서 진행
IT 공부/Web-WAS 2024. 3. 27.
[WebLogic] HeapDump, Thread Dump 뜨는 방법
Heapdump 뜨는법 1. USER_MEM_ARGS에 입력 (또는 JAVA_OPTS 으로 자바옵션을 WLS 기동 스크립트에 삽입) "-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=[경로]" "-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/u01/sy/MiddleWare/wls12214/user_projects/domains/logs/heapdump.log" 아웃오브메모리가 발생하면 자동으로 위 주소에 힙덤프를 생성한다. 2. Jmap jmap -dump:format=b,file=[FILE_NAME] [PID] Ex. Jmap -dump:format=b, file=heapdump.hprof 8124 윈도우에선 ctrl+b..
IT 공부/Java 2024. 3. 21.
[Java] GC Log Analyzer(IBM GA) 분석하기
Analysis Tool for Java Garbage Collector 켜서 GC Log 읽혀주면 처음 뜨는 창은 다음과 같음 (개인 테스트 정보가 있어 가렸습니다) 이 GC Log 에서 나름 지켜볼만한 항목은 - Number Of Object Requests larger than 10 M bytes 항목 (10M 이상 넘는 객체들이 얼마나 왔는지) > 10M 넘는 객체들은 일반적이지 않음 - Longest Garbage Collections > GC 시간이 오래 걸렸으니 주의깊게 살펴보는게 좋고 해당 시간 전후로 어떤 일이 있어났는지 확인해보는게 좋음 전체적인 통계치나 평균치도 한번쯤 보는게 좋다. 우클릭하면 GC 로그를 분석한 표 / 그래프를 확인할 수 있음 표 출력시 위와 같고 순서는 내 임의대로..
IT 공부/Java 2024. 3. 19.
[Java] GC Log 에 관하여
GC (Garbage Collecor) 을 보려면 Log 분석은 필수다. Garbage Collector (GC) 에대해 (참고) - JVM이 자체적으로 더 이상 사용하지 않는 메모리를 자동 해제해 줌 - 일반적으로 참조계수 확인을 통해 해제 > 참조계수를 확인하고, 객체를 해제하는 과정에서 GC는 Heap영역에 대한 Lock이 발생하며, 이로 인해 JVM이 멈추는 현상이 발생하게 됨 - GC가 수행하는 역할은 규칙적이고 일정하게 발생하는 것은 아님 (어플리케이션의 패턴과 메모리의 크기에 따라 수행빈도와 처리시간이 다르다) >> GC Log 에 Java Heap 메모리의 사용패턴과 GC의 수행패턴을 확인할 수 있는 정보가 기록됨 그럼 언제 GC Log 분석이 필요할까? 주로 OOM이 발생하는 경우 (Ou..
IT 공부/OS 2024. 3. 16.
배치 시스템의 특징
일괄 처리(batch processing)란 컴퓨터프로그램 흐름에 따라 순차적으로 자료를 처리하는 방식 • 배치시스템의 특징 ○ 배치 애플리케이션의 특징 § 많은 자원을 필요로 함 § 대용량 작업 § 정해진 시간 제약 내에 § 사용자와의 작용을 최소화 § 자동화된 형태로 수행 § 수많은 데이터 유형 § 테스트가 어렵고 수행시간이 길다 ○ 배치 애플리케이션의 큰 4가지 특징 1. 사용자와의 상호작용이 없다 1) 온라인 APP과 배치APP이 구별되는 가장 큰 특징 2) 사용자에 의해 실행이 결정되지 않는다 3) 사용자와의 상호작용이 없기에 화면개발로 인한 오버헤드가 없다 4) 다만 로직을 직접 설계해야 하므로 개발자/운영자의 비즈니스 이해도가 많이 요구된다 2. 정해진 시간 제약 내에 실행이 완료되어야 한다..
IT 공부/OS 2024. 3. 13.
[OS] 좀비프로세스란?
• 좀비프로세스란 ○ 프로세스가 종료되었음에도 메모리상에서 프로세스에 대한 정보가 사라지지 않은 상태를 말한다. • 좀비프로세스는 왜 생기는 걸까? ○ 좀비프로세스가 만들어지는 상황을 보기위해 우선 호출된 자식프로세스가 종료되는 상황은 다음과 같다 § 인자를 전달하며 exit를 호출하는 경우 § main 함수에서 return문을 실행하여 값을 반환하는 경우 ○ exit함수와 return 반환값은 모두 운영체제로 전달되고, 이 값이 자식프로세스를 호출한 부모프로세스에게 전달 될 때 까지 자식프로세스를 소멸시키지 않는다. >> 요약하면 다음과 같다. 자식프로세스는 일을 끝마쳐 종료하였지만, 값을 부모프로세스에게 전달하지..
IT 공부/OS 2024. 3. 11.
[Linux] 특수권한 비트, CHMOD 에 대해
리눅스에는 권한비트가 있는데 보통 777 700 등 3자리다. 하지만 앞에 4, 2 등이 붙는경우가 있는데 이를 특수비트라고 한다. 1. 뒤 권한비트가 읽기=4, 쓰기=2, 실행=1 을 조합하여 총 8가지의 경우를 내듯이 특수권한도 같은 방법을 사용한다. 2. Setuid=4, setgid=2, sticky bit=1 3. Setuid에 대해 1) 실 사용자(프로그램을 실제 실행 중인 사용자)에서 프로그램 소유자의 ID로 유효 사용자(EUID)가 변경됨 2) 슈퍼유저 root만 접근할 수 있는 파일이나 명령에 대해, 일반 사용자로 접근하는 것이 기능상 필요한 경우(이 비트가 설정된 파일은 실행순간만 그 파일의 소유자 권한으로 실행) > 실행 순간만 권한을 빌려온다고 생각하면 된다. 3) 매번 슈퍼유저 r..
IT 공부/Java 2024. 3. 8.
[Java] JMX (Java Management Extensions)
JMX는 Java Management Extension 의 약자로 Java 응용 프로그램의 모니터링과 관리기능을 제공 하는 API 이다. 웹사이트를 통해 WebServer, WAS, DB 제어 및 모니터링 등을 가능하게 해줌 > Mbean 이라는 객체로 리소스 관리(Java 객체) Mbean 의 네이밍 규칙 : XXXMBean (ex. HelloMBean) 구현체 이름은 XXX (ex. Hello) JMX는 3단계 레벨로 이루어져있음. 아래 기술한 순서대로 접속이 이루어짐 JMX Console (Web Browser 등) --- (RMI 또는 HTTP 등의 통신을 이용하여 접속) --- 1. Remote Management Tier Connector, Protocol Adaptor 와 같이 연결 담당 2..
IT 공부/Web-WAS 2024. 3. 5.
[WebLogic] 웹로직 콘솔 접근제어 방법
설정 방법 1. 특정 IP:PORT Console 접근 불가 방법 1) WebLogic Admin Console에 접근 도메인 클릭 -> 보안 -> 필터 클릭 2) 설정 변경 weblogic.security.net.ConnectionFilterImpl 0.0.0.0/0 WEBLOGIC_IP CONSOLE_PORT deny 예시) 0.0.0.0/0 192.168.100.37 7001 deny 모든 IP 주소에서 Admin Console에 접속하지 못하도록 설정 ** 접속필터 규칙 ** ['TargetAddress'] ['LocalAddress'] ['LocalPort'] ['Action'] ['Protocols'] [접근허용/거부할ip] [접속ip] [port] [allow/deny] [허용/제한프로토콜]..
IT 공부/Web-WAS 2024. 3. 1.
[WebLogic] access.log 에서 app 수행시간 출력 방법
1. Access.log 에서 app 수행시간을 출력하기 위해 어드민 콘솔에 로그인한다. 2. 좌측 메뉴에서 서버 -> 해당 서버 클릭 -> 로깅 클릭 -> Http -> 고급 클릭 3. 확장됨으로 변경(Extended) 4. 로깅 형식 필드에 time-taken 추가 (Extended Logging Formant Fields) 1) Date - 트랜잭션이 끝난 날짜 2) Time - 트랜잭션이 끝난 시간 3) Time-take - 트랜잭션이 끝나는데 걸린 시간(초) 4) Cs-method - 요청 메소드 5) Cs-uri - 요청된 전체 URI 주소 6) Sc-status 응답 상태값 (404, 500, 200 등) i. 기본 설정값은 date time cs-method cs-uri sc-status ..
IT 공부/Web-WAS 2024. 2. 28.
[OHS(apahce)] OHS 80 포트 사용방법 (443포트)
1. 기본적으로 httpd.conf 등 LISTEN PORT를 이미 80으로 변경 한 상태를 가정2. 80포트는 일반 사용자에게 막혀있다. 1) 사용하기 위해선 root 권한으로 실행시켜야 한다. 2) Root권한으로 바꾸기 위해선 root 계정으로 로그인하거나 sudo명령어를 이용해야 한다. I. Root 계정이 필요함3. OHS는 아파치 기반으로 만들어짐 1) .apachectl은 (그냥 apachectl도 있으니 헷갈리지 않기) 아파치 하이퍼텍스트 전송 프로토콜의 앞단이다. I. 이 프로그램은 아파치 httpd 데몬을 조정하도록 돕는다. II. httpd.conf 파일으로 값을 셋팅할 수 있다. III. https://http..
IT 공부/Web-WAS 2024. 2. 27.
[WEB-WAS] mod_wl conf 속성 값 정리
1.WebLogicCluster Default 값:X 대상: Oracle HTTP Server, Apache HTTP Server, Microsoft IIS WebLogic Server 클러스터 또는 여러 서버에 프록시 할 때 필요함 클러스터 된 백엔드 서버 목록을 프록시하거나 클러스터되지 않은 Managed Server 인스턴스간 로드 밸런싱을 수행하는 데 필요. 로드 밸런싱에 사용할 수 있는 WebLogic Server 목록이고 서버 또는 클러스터 목록은 host:port 형식으로 작성해야 함 만약 클러스터들과 단일 서버들을 섞어서 지정하는 경우 클러스터 서버만 리턴 함 2.WLCookieName: Default 값: JSESSIONID 대상: Oracle HTTP Server, Apache HTTP..
IT 공부/Web-WAS 2024. 2. 25.
MIME 타입이란?
여러군데에서 확인하는 단어지만 미들웨어를 다루는 나는 가장먼저 본곳이 web-was plugin 였다. Multipurpose Internet Mail Extensions 의 약자로 일종의 암호화 파일 변환을 뜻한다. MIME은 이메일과 함께 동봉할 attachment 파일을 텍스트 문자로 전화해서 이메일 시스템을 통해 전달하기 위한 목적으로 개발되었다. 그래서 이름이 Internet Mail Extension 이다. -> 이제는 웹을 통해서 여러 형태의 파일을 전달하는데 두루 쓰이고 있다. (UUEnconde 방식을 대폭 보완한 새로운 인코딩 방식. 8비트 3개를 6비트 4개로 바꿈 -> base64방식이라고 한다.) MIME으로 인코딩한 파일은 Content-type 정보를 파일의 앞부분에 담는다. ..
IT 공부/OS 2024. 2. 24.
OSI 7계층 (L4, L7 스위치)
미들웨어를 다루다보면 L4, L7 스위치라는 말을 많이 듣게되는데OSI 7계층에서 4번째, 7번째 계층정보에따라 바꿔주는 스위치를 뜻한다. 1계층 - Physical Layer - 물리계층 전기적/기계적/기능적인 특성을 이용해서 통신 케이블로 데이터를 전송 비트 통신단위 사용, 전달/전송만 할 뿐 내용은 전혀 신경쓰지 않음 단지 데이터를 전기적인 신호로 변환해 주고받는 기능을 한다. (통신 케이블, 리피터, 허브 등) 2계층 - DataLink Layer - 데이터 링크 계층 물리계층으로 송수신되는 정보의 오류와 흐름을 관리 -> 안전한 정보의 전달을 수행할 수 있도록 도와줌 따라서 통신의 오류도 찾아주고 재전송도 한다. Point to Point로 신뢰성있는 전송 맥 주소를 가지고 통신. 전송되는 단..
IT 공부/Web-WAS 2024. 2. 23.
[WEB-WAS] WEB-WAS 연동 플러그인 에러 탐지
플러그인은 Webserver 안에서 실행되는 특성이 있는데 만일 web -> was 연동이 잘 안될경우, 에러 원인을 분석하기 위한 로그가 부족하고 에러가 있다고 해도 OS관련 에러가 많기떄문에 원인찾기가 쉽지 않다. 에러를 찾기 위해 분석해야 할 것들을 알아보면 (WebLogic 기준) 1. 에러 코드 HTTP 관련된 에러인지, OS에러인지, 플러그인 로직 에러인지 판단의 기반이 되는 에러 코드를 access log 또는 웹 서버 로그에서 찾는다. 2. access log 1) 웹로직과 웹서버의 access log 를 살펴본다. • 웹로직까지 requeset 가 전달이 되었는지 살펴보기 위해 • 특정 웹로직 서버만 발생하는지 살펴보기 위해 2) 주의사항으로 웹서버와 웹로직 access log 사이에 시..
IT 공부/Web-WAS 2024. 2. 22.
[iPlanet] Obj.conf 이해
개요 obj.conf 파일은 HTTP request Processing 을 하기 위한 파일이다. 위치는 {instance디렉토리}/config 아래 위치한다. obj.conf 는 웹서버 생성시 동시에 생기며, 가상서버를 새로 만든다면 가상서버이름-obj.conf 파일이 새로생긴다. 이 가상서버 conf 는 server.xml 에 등록되므로 확인 Request-Handling Process 프로세서 진행순서는 다음과 같다. AuthTrans - 인증정보를 확인(ID/PW 등) NameTrans - URI 를 로컬 파일시스템 경로로 변환 PathCheck - 로컬파일시스템의 유효성 체크 및 요청자의 접근권한 확인 ObjectType - 요청된 자료의 MIME 타입 확인 및 리소스 별 설정 지정 Input -..
IT 공부/Web-WAS 2024. 2. 21.
[WebLogic] 웹로직 스킨 변경 방법
웹로직 콘솔화면 스킨을 바꿀 수 있다. 한 서버 장비에 여러대의 도메인을 구성하여 사용할 경우가 있는데, 각각 어드민콘솔을 이용할 경우 어떤 프로젝트의 어드민 관리화면인지 착각할 수 있다. 실제 경우로 내가 사이트에 웹로직 기술지원을 나갔는데, 그 서버는 개발, 테스트 서버가 한 장비에 있는 구성이었다. 테스트 서버에 수정이 필요했었는데 담당자분이 헷갈리셔서 개발서버 어드민콘솔을 열어주셨고 나도 확인을 제대로 안한채로 실제 터미널에서 파일 수정은 테스트서버만, 어드민콘솔 수정은 개발서버를해서 서버에 장애가 발생한적이 있었음. 이 후 인적장애 발생을 줄이기위해 웹로직 스킨을 바꾸는게 어떻겠냐고 함 스킨 변경 방법 이 경로의 이미지를 바꾸거나 웹로직홈/wlserver/server/lib/consoleapp/..
IT 공부/PaaS 2024. 2. 20.
[K8S] MetalLB 설치
로드밸런서 서비스를 이용하기 위해서는 다른 오픈소스를 이용해야 하는데 그 중 MetalLB 를 이용해서 구성 1. MetalLB 설치 kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.11.0/manifests/namespace.yaml kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.11.0/manifests/metallb.yaml 다른 버전을 받으려면 v0.11.0 대신 다른 버전 입력. (현재 v0.14.3) metallb 공식 홈페이지나 github 참고 https://metallb.universe.tf/installation/ 설치 후에 cont..
IT 공부/PaaS 2024. 1. 22.
[K8S] 9. AutoScaling & Scheduler
1. 파드 리소스 우선 파드는 옵션으로 리소스에 대한 제약을 걸 수 있는데, 일정 값이상이여먄하는 리퀘스트 옵션이나 일정 이상값으로 리소스를 사용하지 못하게하는 리미트가 있습니다. 그외에도 파드 옵션이 아닌 별개의 쿠버네티스 리소스로 리밋레인지, 리소스쿼터 등으로 파드의 리소스들을 관리할 수 있습니다. 2. 오토스케일링 그럼 다시 돌아와 오토스케일링 기법인 수평적 파드 오토스케일러 HPA 에 대해 확인 해 보겠습니다. 수평적으로 파드를 자동으로 스케일링 할 수있으며, 리소스 크기를 조절할 수 있는 디플로이먼트와 같은 컨트롤러 리소스에 적용할 수 있습니다. HPA는 메트릭서버에 현재 리소스 메트릭 정보를 받아옵니다. 그 이후 측정된 메트릭 정보를 기반으로 스케일링에 필요한 파드수를 계산합니다. 목표 복제본..
IT 공부/PaaS 2024. 1. 20.
[K8S] 8. Statefulset
1. 스테이트풀셋 레플리카셋 같은 복제본을 가지고 있는 컨트롤러는 복제본을 생성할 때 파드의 이름과 IP주소를 제외하고는 동일한 파드를 생성하게 됩니다. 만일 PVC를 참조하게 된다면, 모든 파드가 같은 PVC와 연결되고, PVC와 1:1로 연결되어있는 PV와 여러 파드가 연결되게 될 것입니다. 이런 문제점을 해결하기 위해 스테이트풀셋이 등장하였습니다. 레플리카셋과 같이 상태를 저장하지않는 stateless 형태는 파드의 정보가 전부 똑같을 필요는 없습니다. 파드의 이름과 IP는 변경되어도 레플리카셋 복제본을 유지하는데 문제가 안되기 때문입니다. 그렇기에 파드가 죽거나 장애가 발생하면 다른파드로 교체를 하면 됩니다. (여기서 상태란 식별자, 지속적인 데이터, 의존성등을 의미합니다.) 반면 스테이트풀셋의 ..
IT 공부/PaaS 2024. 1. 19.
[K8S] 7. Deployment
1. 디플로이먼트 이전에 확인해봤던 리소스중에 애플리케이션의 지속적인 동작을 보장하는 레플리카셋이 있었는데, 이번에 볼 디플로이먼트는 레플리카셋의 상위 수준의 리소스입니다. 디플로이먼트는 애플리케이션을 배포하고 선언적으로 업데이트를 수행하는 리소스며 하위 레플리카셋 컨트롤러를 제어하고 그 레플리카셋이 파드들을 제어하는 구조입니다. 레플리카셋을 직접 컨트롤하는것보다는 이 디플로이먼트 컨트롤러를 이용하여 제어하는것이 좋습니다. 디플로이먼트의 주요기능으로는 버전관리 및 롤아웃 등이 있습니다. 배포와 롤링업데이트를 크게 롤아웃이라고 합니다. 롤링업데이트란 배포 중에도 서비스의 끊김 없이 배포하는것으로 전체 복제본 중 일부분을 조금씩 배포 업데이트 하는 기술입니다. 그림처럼 디플로이먼트 컨트롤러가 관리하는 레플리..
IT 공부/PaaS 2024. 1. 19.
[K8S] 6. ConfigMap, Secret
1. 컨테이너의 사용자화 그럼 이제 컨테이너에서 애플리케이션을 어떻게 사용자에게 맞출수 있는지 확인해보겠습니다. 이미지 작성시 entrypoint 나 cmd 를 이용하거나, 쉘의 환경변수나 애플리케이션의 conf 파일을 변경하는 방법도 있지만 쿠버네티스 기능인 컨피그맵과 시크릿에 대해 알아보겠습니다. 우선 쿠버네티스에서 컨피그맵이란 간단한 설정 값들을 키밸류 형태로 저장하여 사용할 수 있는 쿠버네티스 저장소입니다. 아래 그림처럼 QA, DEV, PROD 라는 세가지 환경이 있다고 가정해보겠습니다. 만약 컨피그맵을 사용하지 않고 각각의 이미지에 환경변수등을 직접 집어넣어 관리한다면, 이미지가 업데이트될때마다 총 3개 (QA, DEV, PROD) 의 이미지 버전을 관리해야할 것입니다. 만약 컨피그맵을 사용하..
IT 공부/PaaS 2024. 1. 17.
[K8S] 5. Storage
1. Storage 파드는 일회성의 성격을 띄기때문에 파드가 종료하면 파드 내에서 실행되었던 애플리케이션에 의해 변경된 데이터, 로그와 같은 파일들도 같이 삭제됩니다. 이런 데이터들을 파드가 종료되거나 사용하거나 실행중에도 다른 파드에서도 이용할 수 있게 쓰는 방법이 스토리지, 즉 볼륨 기능입니다. 2. emptyDir empty dir 은 파드가 실행되는 도중에만 필요한 휘발성 데이터들을 각 컨테이너가 함께 사용할 수 있도록 임시 저장공간을 제공해줍니다. 또는 git 에서 내용을 받아 컨테이너를 띄울 경우 초기화컨테이너 기술과 이 볼륨을 사용하면 되는데, 여기서 초기화 컨테이너란 파드의 애플리케이션 컨테이너가 실행되기전 작업을 수행하도록 설정하는 컨테이너를 말합니다. 먼저 초기화컨테이너에 깃 내용을 클..
IT 공부/PaaS 2024. 1. 16.
[K8S] 4. 네트워크 서비스
1. 서비스 파드가 일회성으로 구성되기에 쿠버네티스는 애플리케이션이 동작하는 시스템의 호스트나 정적 IP를 할당하여 애플리케이션을 찾을 수 없습니다. 이런 문제를 해결하기 위해 파드는 네트워크 서비스를 제공하기위해 단일 고정 IP를 가져야 합니다. 해결하기 위해 나온 것이 서비스라는 리소스인데 이 서비스는 애플리케이션 파드그룹에 단일 네트워크 액세스포인트를 제공해주고, 레이블 셀렉터를 이용해 백엔드 파드, 즉 서비스 대상 파드를 설정하여 그 파드목록들을 엔드포인트 리소스로 관리합니다. 또한 어피니티와 같은 옵션을 통해 매번 요청을 같은 파드로 연결하여 세션을 유지한다거나 하는 추가 옵션이있습니다. 어피니티의 주요옵션으로는 클라이언트 IP를 확인하여 같은 파드로 연결하는 Client IP 옵션이 있습니다...
IT 공부/PaaS 2024. 1. 12.
[K8S] 3. 컨트롤러 리소스
1. 레플리카셋 앞서 확인 한 파드들을 관리하는 여러 리소스들을 살펴보도록 하겠습니다. 이 레플리카셋은 파드가 특정 개수만큼 동작되는것을 보장합니다. 만약 문제가 생겼을 경우 파드를 새로 생성하여 항상 개수를 유지합니다. 레플리케이션 컨트롤러라는 비슷한 컨트롤러 리소스가 있는데, 상위호환인 레플리카셋이 있으므로 잘 사용하지 않아서 생략하겠습니다. 레플리케이션 컨트롤러와 비교했을 때 레플리카셋의 개선점은 매치 익스프레션과 같은 옵션의 추가로 레이블 셀렉터의 범용성이 늘어났다는 것입니다. 그림의 경우 레플리카셋의 복제본을 3 으로 지정해두었을 것이고 만약 하나의 파드가 종료되면 다른 파드가 즉시 생길것이고, 만약 노드가종료되면 다른 노드에 새로운 파드를 생성할 것입니다. 2. 데몬셋 데몬셋은 노드에 파드를 ..
IT 공부/PaaS 2024. 1. 11.
[K8S] 2. 파드
1. 쿠버네티스의 구성 우선 파드를 말씀드리기 전에 쿠버네티스의 간단한 구성도 부터 확인하겠습니다. 쿠버네티스 클러스터 라는 가장 큰 단위아래 노드가 있습니다. 노드는 쉽게 VM과 같은 실제 호스트이며 노드 안에 파드가 구성되어있습니다. 파드는 주로 업무단위로 구성되어있고, 그 업무안에 실제 서비스와 같은 작업들을 할 수 있는 애플리케이션이 뜨는 컨테이너가 존재합니다. 노드의 모습을 다시 확대해서 살펴보면, 이처럼 노드안에는 다양한 파드가 존재할 수 있습니다. 이전 아키텍쳐부분에서 말씀드렸던대로 큐블렛이 있어 파드구성정보를 받아 컨테이너런타임과 함께 컨테이너를 동작시킵니다. 쿠버네티스에서 가장 기본 단위요소가 되는 파드입니다. 파드는 쿠버네티스 클러스터에서 애플리케이션을 배포하고 동작하는 프로세스입니다...