본문 바로가기

Linux

(9)
kubernetes 의 runtime이 containerd 일 때 nsenter로 container 접속 (tcpdump) k8s 환경에서 container에 tcpdump 등 명령어 입력을 위해 nsenter(namespace enter)가 필요할 때가 있다. 예를 들어, pod에 tcpdump 명령어가 없는 경우 pod에 tcpdump명령어가 있지만 sudo 권한이 필요한 경우 그 외 ..; 아무튼 아래 과정을 통해 해당 컨테이너로 접속하는 과정을 공유한다. 1. Pod 조회 및 container ID 확인 ### get pod $ kubectl get pod -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES sample-pod-679899669d-pfdp5 1/1 Running 0 3d23h 172.172.172.172 node1 ..
도메인 주소 확인하는 방법 (nslookup, dig) 1. nslookup $ nslookup www.naver.com Server: 10.22.64.6 Address: 10.22.64.6#53 www.naver.com canonical name = www.naver.com.nheos.com. Name: www.naver.com.nheos.com Address: 223.130.195.95 Name: www.naver.com.nheos.com Address: 223.130.200.104 2. dig $ dig www.naver.com ; DiG 9.10.6 www.naver.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER
[linux]특정 packet만 지정하여 다른 경로(route)로 보내기 네트워크 관련 작업을 하다보면, 같은 destination IP를 갖더라도 필터(destination port로 구분한다던가..)를 통해 각각 다른 경로로 메세지를 보내야 하는 상황이 발생한다. linux에서는 iptables와 ip 명령어를 잘 조합하여 구현할 수 있다. 본 게시물에서는 특정 destination port는 다른 경로로 보내도록 설정하는 것이 목표다. iptables에서 DSCP marking을 할 수 있는데, iptables의 route decision 과정 이전에 marking을 해야 원하는 route를 선택하도록 설정할 수 있다. 1. dscp 설정 아래 명령어는 source, destination addr 상관 없이 destination port가 40000~40999 범위에 속..
container가 생성되는 과정 (2) - file system https://almostgeneral.tistory.com/16 ( container가 생성되는 과정 (1) - computing resource ) 에 이어서 2번째로 file system이 어떻게 생성되고 할당되는지 알아보자! Docker의 File System docker는 UFS(Union File System)기반으로 동작한다. UFS? UFS는 여러 개의 파일 시스템을 하나의 파일 시스템으로 취급할 수 있도록 해주는 것. 흔히 Container와 Image의 차이를 Linux에 비유하여 아래와 같이 표현한다 Image - Binary Container - Process Container 생성 시 base image를 이용하여 container를 생성하고, 생성 이후에 User가 정의한 여러 ..
container가 생성되는 과정 (1) - computing resource Host와 (논리적으로) 분리된 환경에서 동작하는 container는 복잡한 과정을 거쳐서 생성된다. 어떻게 가능한 것일까? 실제로 물리적인 서버에서 동작하는 process이면서, 별도의 resource를 가지고 network 환경까지도 분리하여 동작이 가능한 것인가..!? (마치 다른 서버에서 동작하는 것 처럼!?) 나와 비슷한 궁금증을 갖고 있는 분들에게 이번 게시물이 도움이 되길 바란다. linux namespace? linux에서 namespace는 프로세스를 실행할 때, 시스템의 resource를 분리해서 사용할 수 있도록 도와주는 기능이다. 일반적으로 linux에서 process를 실행할 때, 부모 process인 pid 1가 속해있는 namespace와 같은 namespace에서 동작을 하는..
Linux 표준 출력 제어 (STDOUT, STDERR) script를 작성하거나, error log들을 관리 하기위해 "출력 내용 redirect" 할 수 있어야한다. 회사에서 간단한 스크립트를 만들면서 특정 명령어의 에러를 변수값으로 사용하려고 당연하게 redirection을 했는데, command의 결과가 그대로 출력이 되고 변수에는 아무런 값이 저장이 되지 않고 있었다.. 표준입출력,에러에 대한 개념이 없어서 모든 command의 output이 당연히 redirection 될거라 생각했는데,,ㅜ0ㅠ 이렇게 시간낭비 하지 않기위해 우선 개념을 명확히 할 필요가 있다. 표준출력(STDOUT) ? shell에서 정상 종료 되면서 출력되는 메세지(Output)을 의미한다 $ ls testSTDOUTtestheadtail​ 표준에러(STDERR) ? shell에..
리눅스 파일 첫번째/마지막줄 출력 (head / tail) Linux에서 입출력을 활용할 때, 첫번째/마지막 줄 만 출력이 필요한 경우가 있다! 그럴 땐 head, tail 명령어를 활용해보자~! head 닉값 그대로 앞줄 부터 출력해주며 default로 앞에서 부터 10개 줄을 출력한다 $ cat testheadtail |head 1 2 3 4 5 6 7 8 9 10 head -1 이런식으로 몇개 줄을 출력할지 정할 수 있다 $ cat testheadtail |head -1 1 tail tail도 닉값 그대로 뒷줄부터 출력하며 default는 10개 줄이다. ( head와 마찬가지로 출력 라인 수는 '-' 뒤의 숫자로 결정) $ cat testheadtail |tail -3 18 19 20 tail은 보통 log나 특정 파일을 실시간으로 감지하고자 할 때 자주..
iptables로 snat, dnat 설정하기 ! linux의 iptables는 다양한 기능들을 제공하기 때문에 아주 활용도가 높다! 오늘은 iptables를 이용한 NAT(Network Address Translation)설정 방법을 알아보자. NAT(Network Address Translation?) NAT은 말 그대로 네트워크 주소를 변환하는 것을 말하는데, 일반적으로 SNAT, DNAT(Source/Destination)과 같이 지칭한다. NAT 기능을 활용하여 linux server를 proxy/loadbalancer server로 활용할 수 있는 등 특수한 네트워크 환경에서 다양한 솔루션이 될 수 있다! SNAT과 DNAT은 선언할 수 있는 iptables chain이 다른데, 이는 다음에 다시 한번 알아보자 :) 방법 우선 mandator..

반응형