이쿠의 슬기로운 개발생활

함께 성장하기 위한 보안 개발자 EverNote 내용 공유

반응형

전체 글 415

Flannel 배포 오류 : pod cidr not assigned

환경kubernetes version : 1.25.4flannel version : v1.1.0 상황flannel 배포 시 flannel daemonset pod가 error 상태로 실행이 안됨.특이 사항으로cluster pod cider 은 10.110.0.0/16으로 설정되어있음해당 설정은 kube-controller를 보고 확인함flannel cfg comfigmap 도 10.110.0.0/16으로 설정함---kind: ConfigMapapiVersion: v1metadata: name: kube-flannel-cfg namespace: kube-flannel labels: tier: node app: flanneldata: cni-conf.json: | { "nam..

Kubernetes/Flannel 2024.07.15

kube-proxy가 iptables를 update하는 시점

kube-proxy가 iptables 정보를 update하는 시점은?새로운 service object가 배포될 때service object를 바라보는 새로운 pod 가 배포될 때정확히는 pod가 running 상태가 되는 시점. container creating 상태일 때는 update하지 않음pod가 다른 node로 이동할 때도 update 됨.service object를 바라보는 새로운 pod 삭제될 때정확히는 pod가 완벽히 제거되는 시점. delete가 진행 중인 상태는 update하지 않음다른 node에서 drain작업이 진행될 때.drain 작업이 진행되면 pod가 이동하는데 service object가 모니터링 하고 있는 pod가 이동하게 되면 iptables update함.

Kubernetes NodePort Networking 분석 (kube-proxy : iptable mode) New version

kubernetes NodePort Networking 분석 New versionkube-proxy = iptable modeCNI = Flannel[kubernetes kube-proxy 관련 글 목록]Kubernetes kube-proxy Mode 분석Kubernetes kube-proxy IPVS Mode 설정Kubernetes NodePort Networking 분석 (kube-proxy : iptable mode)Kubernetes NodePort Networking 분석 (kube-proxy : iptable mode)- New versionkubernetes LoadBalancer Networking 분석 (kube-proxy : iptable mode)kubernetes NodePort N..

leader-elector를 알아보자

leader-elector를 알아보자 목표node 3대에 kube-state-metrics를 pod가 아닌 containerd로 배포하고이 중 한개의 모드에서만 kube-state-metrics container를 리더로 설정해서 동작하고나머지 2개의 노드에서는 slave로 대기하도록 구성하고 싶다.관련 기능을 알아보다가 leader-elector를 확인했다.한번 알아보고 적용할 수 있는지 확인해보자 leader-elector란?leader-elector 컨테이너는 리더를 선택하는 메커니즘을 구현한 컨테이너임.일반적으로 kubernetes와 같은 컨테이너 오케스트레이션의 클러스터 내에서여러 노드 간의 통신을 통해 리더를 선출하는 데 사용됨.leader-elector container는 사이드카 형식으로 ..

kubernetes node name max length가 52인 이유

해당 이슈를 확인하게 된 과정cluster 구성 중에 node이름이 매우 길어지는 경우가 있음. (100자 이상)kubelet 동작 시 kube-apiserver와 통신하기 위해 인증서가 필요한데 인증서 생성 시 CN에 Node이름이 들어감.인증서는 openssl과 같은 tool로 생성됨.openssl로 공개키 인증서 생성 시 기존은 CN에 "system:node:$hostname" 으로 설정이되는데cluster name이 길어지는 경우 CN max length인 64를 초과하기 때문에 다음과 같은 error가 발생함 node name이 52이하가 되어야 하는 이유 첫 번째 : 인증서의 common domainopenssl 로 공개키를 발급 받아야하는데이때 CN길이가 max 64이고 "system:nod..

Kubernetse Linux Namespace 분석 : Pod Container 공유자원 리서치

Linux Namespace 공유 자원종류UTS : HostnameIPC : 프로세스 간 통신PID : Process IDNS : File System의 MountNET : Network interface, iptables 등 network 리소스USER : User와 Group IDCGROUP : 리소스 제한을 위한 control group k8s Pod Container의 기본 공유자원IPC, NET, UTS, PID 는 쉐어한다고함. 공유 자원에 대한 테스트 항목1. Pod 내 NET(Network) 공유 확인2. Pod 내 NS(File System) 공유 하지 않음에 대한 확인3 . Pod 내 UTS(Host name) 공유 확인이후 항목은 추후 추가 예정....   1. Pod 내 NET(Ne..

[프로그래머스][JAVA] 키패드 누루기

https://school.programmers.co.kr/learn/courses/30/lessons/67256 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 질문 친구가 해당 문제를 JAVA로 풀이하는 과정 중에 풀긴했는데, == 랑 equals랑 했을 때 값이 다르게 나오는데 왜 다르게 나오는지에 대해 질문함. 친구가 문제를 풀이 할 때 String 문자열 비교 시 "=="을 사용하면 반은 맞고 반은 틀리는데 "equals" function을 사용하면 모두 맞는다고 함. 그래서 일단 String 비교는 equals로 비교해야한다 라고만 외워놓았다고 ..

코딩테스트 2022.10.03

"\n" 과 "endl" 의 차이점

"\n" 과 "endl" 의 차이점 \n과 endl 모두 출력할 때 개행(줄 띄움)을 위해 사용한다. 둘의 차이는 endl은 출력 버퍼를 비워주는 과정(flush)이 들어가 있어서 \n보다 느리다. 버퍼는 입출력을 프로그램에 바로 전달하지 않고 임시 메모리 공간에 저장한 후 한번에 전송하는 역할을 한다. 버퍼를 즉시 비우고 싶다면 endl을 그렇지 않다면 \n을 사용한다. 하지만 구현체(ex printf, println, cout 등등의 출력 함수)에 따라서 "\n"도 버퍼를 비우도록 처리하는 경우도 있다고 한다.

코딩/C and C++ 2022.10.03

malloc calloc realloc의 차이점

malloc calloc realloc의 차이점 malloc 리턴 타입이 void* 즉 보이드 포인터다. 동적할당의 경우 어떤값을 리턴할지 명시해놓을 수 없기 때문에 void 로 리턴함. 할당된 메모리를 초기화하지 않기 때문에 쓰레기값이 그대로 들어가있다. calloc 리턴 타입이 void* 즉 보이드 포인터다. malloc 과는 다르게 할당된 메모리를 0으로 초기화 한다. realloc malloc 이나 calloc 을 통해 할당된 메모리의 공간을 더 늘리거나 줄이기 위해 사용된다. 무조건 필요한 만큼 메모리 공간이 있다는 가정하에 해야한다. 만약에 기존의 공간이 충분하지 않은경우를 예로 설명을 하자면 malloc 으로 10의 공간을 할당한 후에 realloc 으로 5만큼의 공간을 늘리려는데 mallo..

코딩/C and C++ 2022.10.03

리틀 엔디안(Little-endian), 빅 엔디안(Big-endian)

Little-endian (리틀 엔디안) 상위 바이트 값을 큰 번지수에 저장 0x123456 을 리틀 엔디안에 저장 시 : 0x78 0x56 0x 0x34 0x12 와 같은 형태로 저장 메모리에 저장된 값의 하위 바이트들만 사용할 때 별도의 계산이 필요없음. 우리가 주로 사용하는 Intel 계열은 리틀엔디안 방식으로 데이터를 저장함 Big-endian (빅 엔디안) 상위 바이트 값을 작은 번지수에 저장 0x123456 을 리틀 엔디안에 저장 시 : 0x12. 0x34, 0x 56, 0x78 형태로 저장 디버깅이 간편함 네트워크상에서 데이터를 전송할때는 데이터 배열을 빅 엔디안으로 변경해서 송수신 해야함 수신하는 입장에서도 네트워크에서 전달되는 데이터가 빅 엔디안임을 인지하고있어야함

Network 2022.10.03
반응형