IT 공부/PaaS 2024. 1. 10.
[K8S] 1. 아키텍처
1. 등장배경 MSA 가 대두하기 전 레거시시스템인 모놀리식 아키텍처가 있었습니다. 이는 흔히볼수있는 웹와스, DB 형태로 한 WAS 내에서 프론트 UI 제공, 서비스제공, 인증 등 모든 업무를 처리하는 방식이었습니다. 개발과 배포가 간단하며 단순한 확장성을 가지고 있습니다. 다만 점점더 확장되면서 코드품질이 저하되고 애플리케이션의 기동시간이 매우길고 지속적인 배포, 즉 추가적인 개발및 확장, 기술적용이 매우 어렵습니다. 이런 문제를 극복하기 위해 마이크로서비스 아키텍처가 등장하였습니다. 세분화되고 독립적으로 작동하는 MSA 는 API 를 통해 다른 서비스와 통신합니다. 유지보수와 테스트, 배포가 효율적이고 기능의 개별 테스트와 배포가 가능하면서 생산성 향상과 장애 격리가 우수합니다. 다만 시스템 자체의..
IT 공부/OS 2022. 12. 21.
[ShellScript] getopts 를 이용하여 옵션 받기
내가 생각한 getopts 라는 명령어는 쉘 스크립트 작성 시 getopts를 사용하여 쉘 스크립트에 추가 옵션인자값을 넣을 수 있는 것이다. 아래는 내가 짠 코드며 뒤 옵션을 이용해 WebLogic Server를 어떤걸 기동할지 정할 수 있게 만든 쉘이다. 웹로직이 설치되어있어야 테스트가 가능함(본인이 웹로직 엔지니어기 때문에 이걸로 했음) vi WLSstart.sh #!/bin/sh DOMAIN_HOME="/u01/ndh/TEST/WLS/WLS12/domains/ndhdomain" SERVER_NAME="" while getopts "am:" option do case $option in a) echo "start Admin Server" $DOMAIN_HOME/start_ndh_admin.sh ;;..
IT 공부/PaaS 2022. 12. 19.
[k8s] 쿠버네티스 기초 사용방법
테스트 할 환경이 바뀌어서 minikube 로 다시 설치했다. 기존꺼 사용해도 똑같음 minikube 설치 : https://minikube.sigs.k8s.io/docs/start/ 문서참고 [ndh@ndhsotech /u01/ndh]curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 73.1M 100 73.1M 0 0 19.2M 0 0:00:03 0:00:03 --:--:-- 19.2M [ndh@ndhsotech /u..
IT 공부/PaaS 2022. 11. 2.
[k8s] 쿠버네티스 설치
총 3개의 가상머신을 설치해서 노드로 쓸 가상머신 2개, 이 노드들을 다룰 어드민서버(matser) 1개 로 구성하였다. root@k8sadmin:~# curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - OK root@k8sadmin:~# cat deb http://apt.kubernetes.io/ kubernetes-xenial main > EOF root@k8sadmin:~# wget -qO- get.docker.com | sh # Executing docker install script, commit: 4f282167c425347a931ccfd95cc91fab041d414f + sh -c apt-get updat..
IT 공부/PaaS 2022. 10. 31.
[Docker] Docker-compose 기본
도커 컴포즈 하나의 서비스를 위해 여러 컨테이너가 필요할 때(DB, 서버 등..) 한번 구축하기 위해 여러번 명령어를 써야만함. docker-compose 를 통해 이걸 한번에 관리할 수 있다. 도커 컴포즈 설치 root@k8s-node1:~# curl -L https://github.com/docker/compose/releases/download/1.11.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- ..
IT 공부/PaaS 2022. 10. 31.
[Docker] 도커 모니터링
1. 각종 명령어들 1) dockerd -D 도커 데몬을 실행할 때 -D 옵션을 입력하면 디버그모드로 실행됨. 이러면 모든 명령어들을 로그로 출력되어 무엇이 잘못됐는지 확인하기 쉽다. 그런데 로그를 찍기 위해 포그라운드로 띄워야 하고 모든 정보가 찍히기에 보기 어려울 수 있음 2) docker events / docker system events nohup 로그 같은걸로 이해되는데... 해당 명령어 입력하면 top 띄운것 처럼 실시간 스트림형식으로 출력 됨 그 이후 다른 터미널에서 도커에 명령어를 남기면 해당 명령어의 결과를 실시간으로 볼 수 있음 3) docker stats (--no-stream) docker 의 top 옵션 --no-stream 입력 시 실시간 스트림이 아니라 한번 출력하고 끝 4)..
IT 공부/PaaS 2022. 10. 27.
[Docker] Dockerfile 도커파일 옵션 2
1. 도커 파일 여러 옵션들 root@k8s-node1:~/dockerFile# vi Dockerfile FROM ubuntu:14.04 #ENV 환경변수 설정 ENV test /home WORKDIR $test RUN touch $test/envtest #docker run -i -t --name env_test -e test=newhome [buildImage] /bin/bash #이미지를 빌드 후 위와같이 -e 옵션을 사용하면 내부 환경변수를 home -> newhome 으로 새로 지정할 수 있다. RUN mkdir /home/volume RUN touch /home/volume/volumetest #VOOLUME : 컨테이너 내부와 호스트 간 공유 VOLUME /home/volume #docker..
IT 공부/PaaS 2022. 10. 26.
[Docker] DockerFile 도커파일 1
1. 도커파일 생성 root@k8s-node1:~# mkdir dockerFile root@k8s-node1:~# cd dockerFile/ root@k8s-node1:~/dockerFile# ll total 8 drwxr-xr-x 2 root root 4096 10월 26 13:45 ./ drwx------ 8 root root 4096 10월 26 13:45 ../ root@k8s-node1:~/dockerFile# echo test >> test.html 새로운 디렉토리를 하나 만들어서 안에서 작업한다. 도커파일을 빌드시에 해당 디렉토리가 루트가 되어 작업이 수행된다. vi Dockerfile #FROM : Base Image FROM ubuntu:14.04 #LABEL, MAINTAINER : 메..
IT 공부/PaaS 2022. 10. 26.
[Docker] 도커 이미지 관리
1. 이미지 생성 root@k8s-node1:~# docker run -i -t --name imageTest1 ubuntu:14.04 root@44132ea15e38:/# echo TEST1 > 1 root@44132ea15e38:/# exit exit root@k8s-node1:~# docker commit -m "FIRST COMMIT" imageTest1 imagetest:1.0 sha256:ee217ea652adb9a9197bbbb41431a6fdaf995b03039151bf2968513eafb40da6 root@k8s-node1:~# docker images REPOSITORY TAG IMAGE ID CREATED SIZE imagetest 1.0 ee217ea652ad 10 seconds a..
IT 공부/PaaS 2022. 10. 25.
[Docker] Log 확인 및 컨테이너 자원 할당
1. 로그 확인하기 root@k8s-node1:~# docker run -d --name mysqlLog mysql:5.7 8f37e29812aa841912489edfdcf3203d7b85e2d13a4faa2caab418df8936aa14 root@k8s-node1:~# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES root@k8s-node1:~# docker logs mysqlLog 2022-10-25 05:04:42+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.39-1.el7 started. 2022-10-25 05:04:44+00:00 [Note] [Entry..
IT 공부/PaaS 2022. 10. 25.
[Docker] 도커 네트워크 기본
* 저는 수시로 docker rm 명령어로 컨테이너를 내리며 학습합니다. 1. 네트워크 ifconfig 명령어를 치면 네트워크 정보들이 나온다. root@k8s-node1:~# ifconfig ... docker0: flags=4099 mtu 1500 inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255 inet6 fe80::42:5bff:fef8:c87e prefixlen 64 scopeid 0x20 ether 02:42:5b:f8:c8:7e txqueuelen 0 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 352 bytes 3..
IT 공부/PaaS 2022. 10. 20.
[Docker] 명령어 및 기초 1
책을 보며 공부한 자료 정리하여 게시하고 있습니다. 책 내용의 100프로를 다 공부하지도 않고, 모든 내용을 다 올리지는 않으니 더 많은 자료는 책을 참고하시길 바랍니다.. 1. 도커 Run 명령어 $ docker run -i -t ubuntu:14.04 docker run 명령어를 입력하면 해당 이미지(ubuntu:14.04) 를 받아 컨테이너를 생성하고 실행하는 역할 이후 자동으로 이미지 내부로 들어가 게된다. -i -t 옵션은 컨테이너와 상호 입출력을 가능하게 함 (interactive) ---> -t 옵션으로 상호 입출력, -t 옵션으로 tty를 활상화하여 배시 셸 사용 이미지 내부에서 다시 밖으로 나가기 위해선 exit 를 입력해준다. 2. 내려받은 이미지 확인 root@k8s-node1:~# ..
IT 공부/PaaS 2022. 2. 22.
[Docker] 도커 설치 및 기본 정리용
내가 생각하는 도커는 이미지(스냅샷)을 가장 잘 활용할 수 있는 컨테이너 기술인것 같음 실제 카메라가 사진을 찍으면 피사체와 함께 주변 세상이 사진 안에 나타나는데, 만약 마법같이 그 사진(이미지)의 상황을 실제로 현실로 구현할 수 있다면? 그 사진을 복사해서도 구현할 수 있다면? 이런 것을 실제 컴퓨터내에서는 이미지와 컨테이너 기술을 이용해 적용할 수 있다. 도커가 제공해주는 이미지, 또는 우리가 만든 이미지를 이용해 그 상황을 컨테이너속에서 쉽고 간편하게 구현과 복제를 할 수 있다. 단, 우리가 만드는 이미지에서 모든 그림을 처음부터 그릴 수는 없고 도커에 등록된 기존 이미지 위에 덧칠해야만 한다. ( 솔루션, os 등의 기본 이미지를 도커에서 제공받을 수 있다.) 도커 설치 도커를 실습하기 위해 L..
IT 공부/Java 2022. 1. 5.
Selenium 기본 정리
Selenium 웹 어플리케이션을 테스트하기 위한 프레임워크 주로 크롬 등의 브라우저를 이용해서 해당 웹 어플리케이션에 접속하여 코딩된대로 액션을 실행해줌. 수강신청, 예매 등 매크로로 이용할 수 있을 것 같고, 동적인 페이지에서도 크롤링이 가능해보임 리눅스 CLI 환경에서도 옵션을 통해 웹 브라우저를 띄우지 않고 가능 1. 프레임워크 설치 https://www.selenium.dev/downloads/ 맞는 버전 다운로드 후 안에 들어가있는 jar 파일들과 lib안 파일들 Java build path에 등록 (properties - java build path) 2. 크롬을 이용하여 접속할 것이기 때문에 chrome driver 다운로드 3. 크롬이 없다면 크롬도 다운로드 (크롬 드라이버와 버전 맞출 ..
IT 공부/Web-WAS 2021. 9. 7.
[WebLogic] 웹로직 엔진 설치
Linux 에 설치하는 것을 가정으로 진행한다. (윈도우도 .sh / .bat 파일 형식 차이 외에는 크게 다른점은 없다.) GUI 모드로 설치 리눅스의 경우 Xming 등 GUI 지원 터미널을 사용하면 되고, 크게 어려운점은 없어서 생략.. Silent 모드 설치 GUI가 지원되지 않는 환경에서 설치를 위해 웹로직은 Silent 모드 설치를 지원한다. JDK, 설치파일, 설정파일이 필요하며, 이 설정파일에 미리 설정값들을 넣어 설치 진행 과정 시 별다른 입력 없어도 진행될 수 있게 해준다. (.xml, .rsp, .loc 형식) 설치 명령어는 다음과 같다 $ java -jar -silent -responseFile -invPtrLoc .rsp, .loc 파일 양식은 하단에 기록 ... 엔진설치는 완료되..
IT 공부/PaaS 2021. 9. 2.
[Docker] 도커 설치하기 - 1
루트 권한을 사용하기 때문에 루트 계정 또는 다음 명령어로 권한을 부여하고, 후에 docker 그룹에 해당 유저를 소속시켜주면 됩니다. 여기선 루트 계정으로 사용하겠습니다.. # sudo usermod -aG docker $USERID 본 문서 OS는 Oracle Linux 7 입니다. 설치하기 다음 명령어를 통해 Oracle Linux, UEK를 최신버전으로 맞춘다. # yum upgrade yum-config-manager가 설치되어 있지않다면 설치한다. # yum install yum-utils config addons 설정 중 enable 항목을 1(true)로 바꿔준다. yum-config-manager --enalbe *addons 도커 설치 # yum install docker-engi..
IT 공부/OS 2021. 7. 29.
[OS] UNIX 환경에서의 LANG=C 의 의미
여러 환경에 설치 되어 있는 unix 를 사용하다보면, 문자가 깨져서 특수문자가 출력되는 경우가 종종 있다. 그 경우 export LANG=C 라는 명령어를 통해서 영어로 바꾸어 알아볼 수 있게 했었는데 이 의미가 무엇인지 조사해보았다. 우선 Locale의 의미를 이해해야한다. Locale 은 각나라 고유표현 방법등을 고려한 국제화(현지화)를 시키는 기능이라고 할 수 있다. 예를 들어, 우리나라는 20201년 03월 18일이라고 표현하지만, 미국에서는 Mar 18 2021 이라고 표현한다. 이 때 Locale 과 같은 기능이 없다면, 애플리케이션에서 직접 분기시켜서 처리해야 하는 하드코딩을 거쳐야 하지만, Locale을 잘 활용하면 쉽게 국제화가 가능하다. Locale 관련 환경변수의 의미 $ local..
IT 공부/Web-WAS 2021. 5. 23.
[Linux] yum install로 안되는 패키지 설치
Oracle 사의 Webserver 인 OHS를 설치하려고 했는데 패키지 검사 단계에서 실패로 나와 패키지를 설치하려고 했는데.. yum install 로 되지않아서 조사해봤다. OHS 를 설치하려는데 없다고 떠서.. yum 을 이용하여 패키지를 설치하려고 했음 근데 없다고뜸 인터넷에 찾아보니 yum install 으로 제공되지 않는 패키지기에 인터넷에서 받아야 한다고 함 https://centos.pkgs.org/7/centos-x86_64/compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm.html 에서 받을 수 있으며 찾아가는 방법은 https://pkgs.org/ 접속 후 검색창에 원하는 패키지 입력하면 나옴 페이지 접속후 스크롤을 내리다보면 위 Download 항목에 ..
IT 공부/OS 2021. 5. 22.
[가상환경구성] VirtualBox 게스트확장 CD 관련..
버츄얼박스에 리눅스를 깔아서 GUI모드를 그냥 쓰다보면 마우스가 갇혀서 불편한 경우가 많이 생긴다. GUI는 yum groupinstall GNOME 으로 그놈 이란것을 설치했고, init 5 명령어로 기동시켰다. 마치 그냥 프로그램처럼 마우스가 통과되면서 편하게 쓰게할 수 있는 방법이 있는데 게스트확장CD를 마운트시키는 것이다 원래라면은 여기서 게스트 확장 CD 이미지 삽입 후 GUI에서 바탕화면에 생긴 CD모양을 실행 한 후 이 마우스 통합 버튼만 누르면 끝인데.. 패키지들이 제대로 설치되지 않아서 CD모양이 생기지도 않았다. 해결하기 위해 진행한 것들을 기록해보자면, 1. CD 마운트 시키기 자동으로 마운트 되지 않아서 게스트 확장 CD 이미지 삽입을 눌러도 반응이 없었다. 인터넷에 찾아보니 마운트..
IT 공부/OS 2021. 5. 22.
[가상환경구성 - 4] CentOS 8 패키지 관리 및 설치
우리가 새 컴퓨터를 사서 윈도우를 설치하면 프로그램부터 깔듯이 리눅스에서도 원할한 작업을 하기 위해 패키지들을 설치해주어야만 한다. 내가 생각하기에 반드시 있어야만 하는 패키지 및 간단한 사용방법을 기록을 위해 짧게 적어보았다. Cent OS 8 버전 기준.. Centos 는 RedHat 계열이므로 .rpm 으로 패키지를 관리한다. 패키지를 설치할때 rpm 과 yum 명령어를 사용할 수 있는데 rpm이 Low Level 이고, yum 이 High Level 툴이라고 할 수 있다. 주로 yum 으로 설치하면 되고, yum help 를 통해 사용법을 볼 수 있다. upgrade, remove, help, install 등이 많이 쓰일듯 하니 직접 보고 찾는것이 좋을 것 같다.. 설치된 패키지 리스트는 rpm..
IT 공부/OS 2021. 5. 22.
[가상환경구성 - 3] VirtualBox 네트워크 설정
2번 포스팅에서 NAT 로 설정하였는데.. 내부 테스트용으론 충분히 가능하지만 다른 속성들도 알아보기 위해 좀 더 알아보았다. 설정 - 네트워크 항목을 클릭하면 다음과 같은 설정창이 나온다. 네트워크 연결 종류를 고를 수 있는데, NAT 어댑터에 브리지 내부 네트워크 호스트 전용 어댑터 일반 드라이버 NAT 네트워크 Cloud Network 연결되지 않음 을 선택할 수 있다. 다음에 연결됨 항목을 골라서 선택하면 된다. 항목중 NAT, 어댑터에 브리지, 호스트 전용 어댑터에 대해 알아보자. CentOS에서 ifconfig -a 를 입력하였을 때 뜨는 모습이다. ( 아마 이 포스팅을 따라했다면 나오지 않을텐데.. yum install net-tools을 이용해 설치해야만 한다. root계정이 아니라면 su..
IT 공부/OS 2021. 5. 22.
[가상환경구성 - 2] VirtualBox 위에 Cent OS 8 설치
여러 리눅스 환경이 있지만 우분투는 WSL을 이용해 한번 보았기 때문에 RedHat계열에 Cent OS를 설치하고 싶었고, 이왕 설치하는거 가장 최신버전으로 하기로 하였다. CentOS 다운로드 https://www.centos.org/download/ x86_64 버전 클릭 사이트 아무거나 선택 (본문은 navercorp 에서 받음) CentOS-8.3.2011-x86_64-dvd1.iso 다운로드 가상 환경 만들기 새로만들기 클릭 종류, 버전, 이름과 경로지정 후 다음클릭 메모리 값 지정 하드디스크 지정 (세부항목은 잘 모르면 다 기본 값) 세부항목 중 하드디스크 크기는 알아서 지정.. 용량이 있는 항목을 설치할 예정이라면 크기를 늘릴것 이후 가상 환경 구성 완료(아직 CentOS8 은 들어가지않음...
IT 공부/OS 2021. 5. 22.
[가상환경구성 - 1] VirtualBox 및 Extension Pack 설치
개인적으로 공부 및 리눅스 테스트를 위해 공용 서버 외에 개인적으로 Cent OS 를 가상환경에 설치하기로 했다. 여러 가상환경머신이 있지만 VirtualBox를 선택했다. Oracle Virtual Box 설치 버츄얼 박스 설치를 위해 다음 경로에 접속 https://virtualbox.org/wiki/Downloads 윈도우 위에 올릴 것이기 때문에 Windows host 를 눌러 다운로드 해준다. 받은 설치파일을 실행하여 계속 다음 버튼 클릭 버츄얼박스 6.1.22 네트워킹 구성을 위해 잠시 네트워크를 끄겠다는 내용이니 Yes 클릭 후 Install 까지 진행하면 된다. 관리자 권한을 주고 설치를 진행하면 VirtualBox 관리자가 정상적으로 잘 실행된다. VistualBox Extension P..
IT 공부/Web-WAS 2021. 5. 10.
포탈&포틀릿 Portal&Portlet
포틀릿 Portlet 요청의 처리 및 동적 컨텐츠를 생산하는 포틀릿 컨테이너에 의해 관리되는 자바 기술 기반 Web Component 흔히 말하는 포탈 사이트 네이버 다음 등에 들어가면 위 그림과 같이 한 윈도우 안에 뉴스, 날씨, 쇼핑, 증권등 다양한 기능들이 동시에 작동한다. 포틀릿 개발자가 App을 만들면, 포탈에 해당 포틀릿을 설치하고 페이지를 생성한다. 포탈관리자는 이 포틀릿들을 마음대로 배치할 수 있고, 사용자의 권한 설정 및 전반적인 세팅 값들을 지정할 수 있다. 예를들어 사용자는 날씨에 관심이 없고, 주식에 관심이 많다면 날씨 윈도우를 스포츠 윈도우로 교체할 수 있다. 포틀릿의 기능 사용자의 환경 설정 정보를 저장하여 이용한다. 다양한 요청을 처리하기 위한 콜백메서드가 존재한다. 여러 모드..
IT 공부/Web-WAS 2021. 3. 10.
[WAS] WebLogic 이해
Oracle 사의 WAS 제품 웹로직 특징 J2EE를 표준으로 채택하여 구현 (일반적인 WAS제품들의 특징이기도 하다) 웹 기반의 엔터프라이즈 애플리케이션을 구축하기 위한 하나의 플랫폼 웹로직은 J2EE를 지원할 뿐만 아니라 개방 프레임웍까지 완벽히 지원 J2EE(Java 2 Enterprise Edition)란? 2. 어떤 웹 어플은 Oracle DB를, 어떤 EJB는 infomix를 쓴다하면, "웹서버 + 어플 + Oracle", "웹서버 + EJB 컨테이너 + EJB + Infomix"라는 두 가지형태로 관리되던 것을 '웹로직' 하나로 관리가 가능하기 때문에 웹로직은 도메인과 서버의 구조를 가지고 있다. 서버(톰캣 8080포트가 서버1대라고 생각할 수 있다)를 세는 논리적인 단위를 도메인이라고 볼 ..
IT 공부/Web-WAS 2021. 3. 9.
WAS 이해하기
Web Application Server 인터넷 상에서 Http를 통해 사용자 컴퓨터나 장치에 애플리케이션을 수행해 주는 미들웨어(소프트웨어 엔진) DB조회나 다양한 로직 처리를 요구하는 동적인 컨텐츠를 제공하기 위해 만들어진 AS(Application Server) Web Container , Servlet Container 라고도 불림. (Container 란 JSP, Servlet 을 실행시킬 수 있는 소프트웨어) (Servlet : 자바를 사용하여 웹을 만들기 위해 필요한 기술, 클라이언트가 어떤 요청을 하면 그 결과를 다시 전송해주는 역할) 한국에선 WAS, WAS/SW, 웹 응용 서버 영미권에선 AS (Application Server) 대개 자바기반으로 표준 자바EE를 수용 아닌 제품도 존재..