본문 바로가기

개발/개발공부38

Network Namespace / Container 기초, 네트워크, 네임스페이스, 컨테이너, 간단 정리 Network Namespace 컨테이너가 볼수 있는 네트워크 인터페이스와 라우팅 테이블을 제한 lsns로 Network namespace 확인 가능 $lsns NS TYPE NPROCS PID USER COMMAND 4026534275 net 93 1 root ~~ ... 새로운 Network namespace는 loopback interface 만 존재 외부통신을 위해서는 한쌍의 virtual ethernet interface가 필요 추가로 인터페이스에 IP주소를 부여하여 라우팅테이블에도 등록해야함 다양한 케이스가 존재하고 각각의 케이스별로 연결 방식이 상이함 1. 호스트 안의 각각의 네임스페이스간 직접 통신 2. 호스트의 bridge를 통해 네임스페이스간 통신 3. namespace -> host .. 2023. 1. 6.
Docker vs Containerd / Container runtime, 쿠버네티스, 도커, 차이점, 장단점 Container Runtime 때문에 문제가 생겼던 적이 있었다... Containerd와 Docker를 혼용하다가 생긴 문제였다. 다들 알다시피 Kubernetes version 1.24부터 Docker를 사용하지 못하게 됐다. 더보기 Dockershim Removed from kubelet After its deprecation in v1.20, the dockershim component has been removed from the kubelet in Kubernetes v1.24. From v1.24 onwards, you will need to either use one of the other supported runtimes (such as containerd or CRI-O) or use.. 2023. 1. 4.
cgroups / 컨테이너 기초, 프로세스 제어, 자원 제한 Container는 보통 리눅스의 프로세스로 실행이 된다. 한 프로세스가 다른 프로세스들에게 영향을 끼치면 안되기 때문에 cgroup을 통해서 제한을 할 수 있다. cgroup 제어그룹, 구조 리눅스 커널은 보통 /sys/fs/cgroup에서 위계구조를 갖고 있음 /sys/fs/cgroup$ ls blkio cpu,cpuacct freezer memory... memory쪽을 자세히 보면 /sys/fs/cgroup$ ls memory/ cgroup.clone_children memory.memsw.limit_in_bytes cgroup.event_control memory.memsw.max_usage_in_bytes cgroup.procs memory.memsw.usage_in_bytes cgroup.s.. 2023. 1. 3.
Container 사전지식 / 리눅스, 권한, 컨테이너, 파일, 시스템콜 Kubernetes와 그 구성요소 중 하나인 Container를 공부하기 전에 너무 막막했던 적이 있다. Container가 뭔지 공부하기 전에 기본적으로 알아두면 좋은 것들을 찾아 정리해봤다. 시스템콜 컨테이너는 대부분 리눅스OS를 이용하고 파일접근, 네트워크이용 등등이 필요하면 커널에 접근이 필요 사용자가 커널에 요청을 보낼 때 시스템콜 인터페이스를 통해 호출 유저가 프로그래밍을 하며 확인해볼 수 있는 것으로 Golang syscall도 그 중 하나 https://pkg.go.dev/syscall syscall package - syscall - Go Packages StringByteSlice converts a string to a NUL-terminated []byte, If s contains.. 2023. 1. 1.
Kubernetes Components (Worker Node) / 쿠버네티스 컴포넌트, 워커 노드, 노드 컴포넌트 Kubernetes Node Components Control-plane component를 볼때 확인했던 Kubernetes component 구성요소이다. Worker node component로 해당되는 것들은 그림에 따로 빨간색으로 표시해둔 것들이다. - kubelet 각 노드에서 실행되는 agent 노드의 파드, 컨테이너들의 실행을 보장하도록 관리해주는 컴포넌트 파드의 상태(스케줄링, 모니터링, 종료 등)를 kube-apiserver에 지속적으로 전달 - kube-proxy 각 노드에서 실행되는 네트워크 프록시, 서비스의 구현부 네트워크 규칙을 관리, 클러스터 외부에서 파드와 통신이 가능하도록 함 원래는 userspace에서 proxy동작을 하기때문에 이름이 이렇게 붙여졌지만, kernelspa.. 2022. 12. 28.
Kubernetes Components (Control plane) / 쿠버네티스 컴포넌트, 마스터, 컨트롤 플레인 Kubernetes Control-plane Components kubernetes 공식 홈페이지에서 확인할 수 있는 kubernetes component 구성요소이다. Control-plane component로 해당되는 것들은 그림에 따로 빨간색으로 표시해둔 것들이다. - kube-apiserver 말그대로 kubernetes 클러스터에 사용되는 api server client로 부터 오는 요청을 처리 단순히 요청을 받는것 뿐만이 아니라, kubelet으로 pod생성, pod정보 가져오기 등의 요청을 보내기도 함 - etcd key-value 로 이뤄진 storage API서버와만 통신이 이뤄지고 명세를 저장하는데 사용 데이터 정합성과 같은 이유로 쿼럼(Quorum)처리를 위해 홀수개로 운영 - ku.. 2022. 12. 27.
반응형