IT/DevOps
-
Minikube 활용팁 komposeIT/DevOps 2022. 4. 12.
[IT/DevOps] - macOS 환경 minikube 간편 설치 minikube 설치 글에 이어 알아두면 좋을만한 팁을 작성한다. 과거부터 로컬 개발 환경에서 주로 docker-compose.yaml 파일을 구성하여 DB나 Redis cache 등 구성을 많이 활용되고 있다. 하지만 이제 Docker Desktop에서 minikube로 갈아타게 되면 기존에 작성된 docker compose 파일을 사용하기보다는 최대한 kubernetes 생태계를 활용하는 게 좋을 것이다. 적은 노력으로 minikube 생태계를 바로 활용할 수 있게 도와주는 도구가 kompose이다. 기존에 docker-compose로 작성된 yaml 설정 파일을 kubernetes 생태계에 맞게 설정 파일로 변환해주는 커맨드 툴이다..
-
macOS 환경 minikube 간편 설치IT/DevOps 2022. 4. 7.
요즘 개발환경 이제는 개발 환경에 컨테이너를 활용하는 것은 흔한 일이 되었다. 사업을 한다면 서비스가 막 시작하는 단계이거나 트래픽이 별로 없는 경우를 제외하고는 컨테이너 환경을 이용하지 않을 이유가 없다. 개발 생산성 또는 비용(money)적인 면에서 얻어갈 이점이 많기 때문이다. 개인 개발 환경 또한 컨테이너를 사용하면 Redis나 MySQL를 순식간에 설치해서 바로 활용할 수 있거나 신규 python 버전을 테스트해보기 위해서 신규 이미지를 받아서 실행을 하면 끝이다. 프로그램 설치 과정에서 발생할 오류나 설치가 잘 된 이후로도 OS가 업데이트 될 때 이상 현상이 갑자기 나타날지등을 걱정할 필요가 없다. Docker Desktop 안녕 작년까지만 해도 개인 개발 환경에서의 컨테이너 프로그램의 최강자..
-
Kubernetes pod outgoing connectionsIT/DevOps 2021. 6. 7.
최근 API 서버의 DB Connection pool의 연결 개수 및 동작에 대해 검증을 했었다. 컨테이너로 접속하여 netstat 명령이 실행 가능하다면 너무나도 쉽게 외부로 연결하는 connection을 손쉽게 확인할 수 있지만, container image를 만들 때 보안도를 높이기 위해 시스템 명령어들은 설치하지 않거나 계정 권한을 제외시키는 방향을 취하기 때문에 다른 확인 방법이 필요하다. nsenterkubernetes worker node에 ssh로 접속한다.docker ps와 inspect 명령어를 통해서 연결 확인을 원하는 pod의 process id를 확인한다.찾아낸 process id 정보를 기반으로 nsenter 명령을 내려서 pod의 outgoing connection을 확인한다...
-
파일 로깅을 위한 필수 명령어 teeIT/DevOps 2016. 2. 7.
일반적으로 Shell script에서 화면 출력은 echo나 printf등의 명령어를 사용하면 된다. #! /bin/bash echo 'Hello World' 이 결과물을 파일로 로그를 남기기 위해서는 매끄럽지 않지만 echo를 두번 남기는 방법도 있다. #! /bin/bash echo 'Hello World' echo 'Hello World' > /var/tmp/tmp.log 하지만 위와 같이 코드를 작성하면 실수하기 좋고 심지어 코드 중복 작업이다. 물론 실수를 줄이기 위해 함수로 만들어주어도 되겠지만 이러한 상황에 편하게 사용하기 좋은 명령어를 소개하려 한다. tee 명령어 TEE(1) BSD General Commands Manual TEE(1) NAME tee -- pipe fitting SYN..
-
readelf – useful command than lddIT/DevOps 2015. 11. 30.
얼마 전 테스트 때문에 openSSL 버전 변경을 위해서 임시로 동적 라이브러리를 정적 라이브러리 참조로 변경하였다. 재 빌드 후, ldd 명령으로 동적 라이브러리 참조가 없어졌는지 확인해보려고 했지만 그대로 남아있었다. root@tmp:~/# ldd sample | grep ssl libssl.so.0.9.8 => /usr/lib/libssl.so.0.9.8 (0x00007f67639c0000) 정적 라이브러리를 참조하도록 빌드 옵션등을 다 변경하고 빌드까지 완료했는데 왜 ldd에서 해당 내용이 나오는걸까? 몇 번을 반복하고 빌드 옵션을 다시 살펴봐도 결과는 계속 동일 했었다. 무엇이 문제일까 고민을 하다가 결국 파일을 직접 열어보기로 했다. readelf root@tmp:~/# readelf -d s..
-
rpm 명령에 대해 응답이 없으면 어떻게 해야할까?IT/DevOps 2015. 10. 19.
rpm 패키지에 대해서 설치/업데이트를 실행할 때 중간에 터미널을 닫아버리거나 알 수 없는 오류가 발생할 경우 그 다음부터 rpm 명령에 대해서 응답이 없는 상태를 계속 유지하게 된다. 원인이 무엇이든간에 rpm 명령에 대해서 아무런 응답이 없는 상태가 되어버리는 것은 매우 불편한 일이다. 결론적으로 rpm 명령은 절차상 파일 lock을 활용하기 때문에 이런 문제점을 만나게 된다. 해결방안으로 파일 lock을 삭제하고 rpm에 대해서 rebuilddb를 하면 문제가 대부분 해결된다. 이런 문제점 때문에 더 이상 시스템을 재 설치하지 말자. rm /var/lib/rpm/__db*rpm --rebuilddb
-
Shell Script, Read lineIT/DevOps 2015. 6. 20.
read 명령어 Script에서 작성된 파일에 대해서 line 단위로 읽기 위해서는 read라는 명령어를 사용하게 되는데, 전체 내용을 읽기 위해서 while문과 함께 사용된다. #!/bin/bash FILE=system.log while read line do echo $line done < $FILE read 명령어의 장점으로 line 단위 뿐만 아니라 column 단위로 나눠져 있는 데이터에 대해서도 읽어올 수 있다는 점이다. 예를 들어 아래처럼 이름과 전화번호가 저장된 데이터가 있다고 하자. tony 010-1111-1111 kima 010-222-2222 이런 경우에는 read 명령어 뒤에 저장될 변수명만 늘리면 이름과 전화번호를 각각 다른 변수에 저장할 수 있다. #!/bin/bash FILE..
-
가상화를 지원하는 CPU인가요?IT/DevOps 2014. 6. 16.
linux에서 시스템 cpu의 스펙과 특성을 확인할 수 있는 방법이 있다.직관적이고 매우 간단하다. cat /proc/cpuinfo 명령으로 정보를 확인할 수 있다. morenice@ubuntu-morenice:~$ cat /proc/cpuinfo processor : 0vendor_id : AuthenticAMDcpu family : 16model : 4model name : AMD Phenom(tm) II X4 925 Processorstepping : 2cpu MHz : 2731.284cache size : 512 KBphysical id : 0siblings : 2core id : 0cpu cores : 2apicid : 0initial apicid : 0fpu : yesfpu_exception ..