전체 글 402

[Kubernetes] 쿠버네티스 데몬셋(Daemonset) 개념 (생성, 확인, 실행중인 파드의 노드 확인, 업데이트)

데몬셋(Daemonset) 이란? 데몬셋은 디플로이먼트와 유사하게 파드를 생성하고 관리 합니다. 디플로이먼트는 롤링 업데이트나 배포 일시 중지, 재개 등 배포 작업을 좀 더 세분화하여 조작하였다면, 데몬셋은 특정 노드 또는 모든 노드에 항상 실행되어야 할 특정 파드를 관리 합니다. 하나의 예를 들자면 모니터링 시스템 구축을 위해 모든 노드에 특정 파드(로그 수집용)를 관리해야 할 때 사용할 수 있습니다. 모니터링 시스템을 원활히 사용하기 위해선 모든 노드에 항상 로그 수집할 무언가가 필요하기 때문 입니다. 특정 노드를 지정하여 사용할수도 있습니다. 데몬셋 생성 및 확인 apiVersion: apps/v1 kind: DaemonSet metadata: name: test-elasticsearch names..

[Kubernetes] 쿠버네티스 디플로이먼트(Deployment) 개념 (생성, 확인, 업데이트, 롤백, 롤아웃 기록 조회, 일시 중지, 시작, 재시작)

디플로이먼트(Deployment) 란? 디플로이먼트는 레플리카셋의 상위 개념으로 볼 수도 있습니다. 레플리카셋을 생성하는 디플로이먼트를 정의할 수 있고, 배포 작업을 좀 더 세분화(롤링 업데이트 등) 하여 조작할 수 있는 기능을 가지고 있습니다. 이러한 이유로 레플리카셋만 사용하는것 보다는 디플로이먼트를 사용하는 추세라고 합니다. 디플로이먼트 생성 및 확인 우선 기본적인 디플로이먼트를 생성 하겠습니다. 아래 코드를 저장해주시고 저는 경로 "/root/kubespray/inventory/test/deployment" 에 test-deployment.yaml 로 저장 하였습니다. apiVersion: apps/v1 kind: Deployment metadata: name: test-deployment lab..

[Kubernetes] 쿠버네티스 레플리카셋(replicaset) 개념 (파드 개수 유지, 파드 독립, 레플리카셋만 삭제)

레플리카셋(Replicaset) 이란? 레플리카셋은 실행되는 파드 개수에 대한 가용성을 보증 하며 지정한 파드 개수만큼 항상 실행될 수 있도록 관리 합니다. 즉 5개의 파드를 항상 실행 하도록 설정하면 이후 파드 1개가 삭제될 경우 다시 파드 1개가 실행되어 5개를 유지할 수 있도록 해줍니다. 레플리카셋이 정말 파드의 개수를 유지해주는지 확인 아래 코드를 입력 후 파일로 저장하여 레플리카셋을 사용해볼 수 있습니다. 이 코드들을 보면 레이블을 기준으로 식별하여 어떤 파드를 관리할지 선택 합니다. 저는 경로를 "/root/kubespray/inventory/test/replicaset"에 test-replicaset.yaml 로 저장 하였습니다. apiVersion: apps/v1 kind: ReplicaS..

[Kubernetes] 쿠버네티스 컴포넌트들의 역할

Kubernetes Architecture Kubernetes Control Plane Component 마스터 컴포넌트 (Master Component) - kube-apiserver : 쿠버네티스 API를 사용할 수 있도록 해주는 컨트롤 플레인 컴포넌트 입니다. 쿠버네티스 컨트롤 플레인의 프론트 엔드단(최전방, 사용자와 가장 근접)에서 동작하며 받은 요청이 유효한지 검증 합니다. 쿠버네티스의 모든 요청은 kube-apiserver를 통해 이루어 지며 매우 많은 옵션들이 존재 하는데, 아래 쿠버네티스 docs 문서에서 확인하실 수 있습니다. 쿠버네티스 kube-apiserver 옵션 : https://kubernetes.io/docs/reference/command-line-tools-reference..

[DHCP] CentOS 7.7 DHCP 서버 구축

CentOS 7.7 DHCP 서버 구축 DHCP 서버 구축은 굉장히 간단합니다. dhcp 관련 패키지 설치 후 임대할 네트워크 정보를 입력해주면 됩니다. yum -y install dhcp* vi /etc/dhcp/dhcpd.conf subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.100 192.168.0.200; option subnet-mask 255.255.255.0; option routers 192.168.0.254; option broadcast-address 192.168.0.255; option domain-name-servers 8.8.8.8, 168.126.63.1; default-lease-time 7200; max-lease-..

APP & Server/DHCP 2020.02.16

[DHCP] DHCP 란? (DHCP 통신 과정, DORA, 임대, 갱신, 반환)

DHCP 란? DHCP는 동적으로 IP,NETMASK,GATEWAY,DNS와 같은 네트워크 정보를 할당해주는 프로토콜 입니다. DHCP 서버는 이에 대한 네트워크 정보를 가지고 있다가, 클라이언트로부터 요청이 오면 자신이 가지고 있는 정보를 전달해줍니다. 사실 DHCP를 사용하지 않고 정적(static)으로 설정해주어도 큰 차이가 없지만, 여러개의 클라이언트를 관리해야할 경우 유저들이 IP를 변경하거나 하면 IP 충돌 등 관리가 힘들기 때문에 좀 더 편리하도록 DHCP서버를 이용하여 동적으로 제공하고 서버에서 관리 하도록 합니다. IT를 공부하지 않더라도 아래 이미지는 한번씩 보았을겁니다. 아래 이미지가 윈도우에서 DHCP 설정하는 예시 입니다. DHCP의 통신 흐름 DHCP는 크게 4가지의 통신 흐름을..

APP & Server/DHCP 2020.02.16

[Tomcat] apache - tomcat 설치 및 물리적 망분리/연동 설정 (SSL 사용X, apache 2.4.6 설치, tomcat 9.0.36 설치, tomcat 8.5.51 설치)

구성 환경 이 글은 2020년 02월 11일에 릴리즈된 8.5.51 버전 및 9.0.36 버전을 대상으로 합니다. 그 이전 버전의 경우 설정 내용이 다르니 버전이 해당하시는 분들만 참고 해주세요. OS : CentOS 7.7 1908 APP : apache-2.4.6 / tomcat-9.0.36 또는 8.5.51 / openJDK-1.8.0.242.b08-0.el7_7.x86_64 / modjk tomcat-connectors-1.2.48 구성 내용 : apache 서버, tomcat 서버 물리적 망분리 후 mod_jk 연동 (SSL 사용 X) selinux 및 firewalld 중지 이 글에선 테스트용으로 운영하기 때문에 firewalld와 selinux를 모두 중지 합니다. 실서버로 운영하실때엔 중지..

APP & Server/Tomcat 2020.02.16

[Tomcat] apache tomcat 7.0.100, 8.5.51 , 9.0.31 버전 연동 실패 (무한 로딩, 403 에러 발생, 503 에러 발생)

해당 내용은 Ghostcat(CVE-2020-1938) 취약점 패치에 의한 영향인것으로 보입니다. Tomcat Ghostcat(CVE-2020-1938) 취약점 : https://nirsa.tistory.com/150 구성 환경 OS : CentOS 7.7 1908 APP : apache-2.4.6 / tomcat-9.0.31 or 8.5.51 or 7.0.100 / openJDK-1.8.0.242.b08-0.el7_7.x86_64 / mod_jk tomcat-connectors-1.2.46 구성 내용 : apache 서버, tomcat 서버 물리적 분리 후 mod_jk 연동 (SSL 연동 X) 발생 원인 아래에 작성된 내용들은 apache 설정 및 selinux, F/W 등에 문제가 없을 경우에 해당 ..

APP & Server/Tomcat 2020.02.16

[Network] Wireshark IP header flags 16진수 값의 정체

Wireshark IP header flags 16진수 값의 정체Wireshark는 아래의 이미지와 같이 패킷을 16진수로 표시하여 보여주게 되는데, IP Header를 자세히 분석해보면 한가지 의문점이 생깁니다. "다른 값들은 16진수로 계산하면 맞는데, 왜 flags 값만 계산이 맞지 않을까?" Flags의 바로 위에 있는 Identification을 봐도 10진수 64383을 16진수로 변환하면 정확히 0xfb7f 가 나옵니다. 하지만 flags의 경우 0001 0001 0101 1000을 계산해봐도, 0001 0101 1000을 계산해봐도 엉뚱한 값만 나오게 됩니다.이렇게 값이 나오는 이유를 확인하기 전에 IPv4 Header 구조를 간단히 확인할 필요가 있는데 Flags 필드는 3bit, 그리고..

Network/Network 2020.02.14

[Kubernetes] 쿠버네티스 간단한 개념 살펴보기 (기본 용어, 클러스터 아키텍처, 컨트롤러 간단한 개념)

쿠버네티스란? 쿠버네티스를 간단히 말하자면 Linux 컨테이너 작업을 자동화해주는 오픈소스 플랫폼 입니다. 각 컨테이너별 자원 제한, 문제 발생 시 자동 시작 등 컨테이너를 배포/확장, 제어, 자동화하기 위한 다양한 기능을 지원하는 컨테이너 오케스트레이션 도구 입니다. 대규모 커뮤니티와 여러 경험과 기술이 녹아져있어 굉장히 다양한 기능을 제공하다보니 빠르게 알려지고 있고, 기업들에서 도입하는 사례가 늘고 있습니다. 쿠버네티스 기본 용어 쿠버네티스에서 사용하는 기본 용어들이 있습니다. 마스터(Master) : 노드를 제어하고 전체 클러스터를 관리해주는 컨트롤러 이며, 전체적인 제어/관리를 하기 위한 관리 서버 입니다. 노드(nod) : 컨테이너가 배포될 물리 서버 또는 가상 머신 이며 워커 노드(Worke..