분류 전체보기 10

kick start 를 사용해서 linux 설치하기

리눅스를 설치하다 보면 매번 USB를 굽고, 설치를 하고 repo를 설정하고 방화벽을 끄고 여러 파일의 설정을 하는 등 반복되는 작업을 하게 되는 경우가 있습니다. 이럴 때 이미 설정한 값 그대로 OS를 다시 설치되었으면 좋겠다는 생각을 하곤 합니다.  Kickstart 란?Red Hat 에서 개발한 Linux 자동 설치 도구입니다. 설치에 필요한 설정(언어, 시간대, 파티션 등)을 미리 구성 파일에 정의하여 설치 과정을 자동화 할 수 있습니다. 지금 부터 그 과정을 살펴보겠습니다. 1. 설치 미디어 준비rhel 9.4를 기준으로 진행하겠습니다. 먼저 설치 미디어 iso 파일을 준비한 뒤 rufus 파일을 이용해 설치용 USB를 만들어 줍니다. 2. 설정 파일 수정세팅하고자 하는 값들을 미리 넣어둘 파일..

linux 2025.01.15

[Linux] configure and secureSSH

hardware에 접근하기 위해 kernel이 존재하고 user가 kernel에 직접 명령을 내리기 위해 shell을 사용한다.corn shell, cshell zbash, bash등 shell의 종류는 다양하며 각 쉘마다 장단점과 특징이 존재한다.    일반적으로 기본적으로 설치되어있는 shell은 bash shell이다. ssh를 사용하려면 ssh를 먼저 설치해야 한다. ssh 서비스를 실행시키면 sshd 라는 이름으로 데몬이 실행되며 이 데몬이 ssh에 관련된 작업을 수행하게 된다. ssh 키를 통해 서버를 연결하는 방법은 간단하다.1. ssh  설치확인 후 미설치시 설치 진행 yum list | grep ssh 미설치 시 yum install openssh-server openssh-clients..

linux 2023.06.26

[Kubernetes] Services - 3. Loadblancer

이전에 Nodeport 방식으로 user와 pod가 통신한다는 것을 배웠었다. 다만 이때 유저는 node의 ip와 port 번호를 통해 접속해야 한다. 근데 실제로 사용할때는 ex)example.com 과 같은 간단한 url로 접속하도록 만들어야 하며, 이를 가능하게 하려면 nginx나 aj/proxy 같은 로드밸런서 프로그램을 사용하면 된다. 단 GCP, AWS와 같은 대형 CSP 환경에서 k8s를 실행할 경우 CSP에서 제공하는 기존 로드밸런서를 사용할 수 있다. k8s에서는 이미 이 기능을 구현해놓았다. 우리는 yaml 파일의 type에 LoadBalancer란 단어만 적어주면 된다. apiVersion: v1 kind: Service metadata: name: myapp-service spec:..

카테고리 없음 2023.04.20

[Kubernetes] Services - 2. Cluster IP

Cluster IP 는 k8s service component의 한 종류입니다. pod들을 그룹핑 하고 그룹안에 속한 pods에 접근할 수 있는 interface를 제공합니다. k8s환경에서 web application을 실행해야 하는 하는 상황이며 크게 front, back, db 부분으로 분리되어있다고 가정하고 이런 상황에서 통신이 어떻게 이루어 지는지에 대해 생각해봅시다. [상황] 1. web application을 돌려야 하는 상황이고 크게 front, back, db app으로 분리되어있다. 2. user는 front와 통신 front 는 back과 통신 back은 db와 통신해야한다. 3. 각 pod끼리 통신할 수도 있겠지만 pod의 ip는 유동적이다. 때문에 고정 ip로 통신할 수는 없고 자..

카테고리 없음 2023.04.19

[Kubernetes] Services - 1. nodeport

service 란? service는 k8s의다양한 component 간의 통신을 가능하게 해줍니다. 이는 cluster 내부 component들 끼리의 통신과 외부user와의 통신 모두를 포함합니다. k8s에서 service를 통해 pod와 external user가 어떻게 통신하는지 살펴보겠습니다. 하나의 노드안에 하나의 pod가 있고 외부의 user가 이 pod와 통신하려면 어떻게 해야 할까요? 가정 1. node의 ip가 존재 192.168.1.2. 2. host user의 ip가 존재 192.168.1.10 3. pod의 ip가 존재 10.244.0.2 (10.244.0.0/24 대역) 4. host user와 pod는 서로 다른 네트워크 대역이기 때문에 통신 불가능 방법1 : ssh를 통한 접속..

카테고리 없음 2023.04.19

[kubernetes] Pods with YAML

k8s에서는 yaml 파일을 이용해서 pod를 생성합니다. yaml 파일에는 아래 4개의 상위 필드를 항상 포함해야 합니다. 이것들이 루트속성의 필드들이고 yaml 파일의 골격입니다. 하나씩 살펴보며 자세히 알아보겠습니다. apiVersion : v1 사용할 apiVersion을 적는 부분입니다. 생성하려는 object에 따라 사용해야되는 apiVersion이 정해져 있으므로 확인한다음 생성해야 합니다 예를들어 Service는v1 Deployment는 apps/v1를 사용해야 합니다. kind : Pod 어떤 객체를 생성할 것인지 적는부분 ex) pod, replicaset, service 등등. metadata name: myapp-pod labels: app: myapp 객체에 대한 데이터 ex) n..

카테고리 없음 2023.04.14

[HW] - BIOS UEFI

window 시스템을 부팅하는는 2가지 방식 BIOS(Basic Input Output System)와 UEFI(Unified Extensible File )가 그것입니다. UBIOS와 UEFI 둘다 운영체제와 HW사이의 인터페이스이며 메인보드에 칩이 장착되어 작동하는 펌웨어 입니다. PC가 켜지는 방식, 부팅되는 드라이브, 인식되는 주변 장치 및 주파수까지 정의하고 CPU를 실행합니다. HW의 여러가지 값들을 설정할 수 있으며 설정값들은 CMOS라고 하는곳에 저장됩니다. CMOS는데이터를 저장하는 칩과 전원을 공급하는 배터리로 이루어져 있습니다. 서버의 메인보드를 보면 이런 배터리가 하나씩 박혀있는걸 볼 수 있는데 이게 바로 CMOS 배터리 입니다.CMOS칩은 비 휘발성 메모리를 가지고 있기 때문에 이..

카테고리 없음 2023.04.13

[Kubernetes] pods

먼저 사용할 어플리케이션이 도커 이미지로 변환이 되었고 docker hub에 올라가 있어 k8s 가 pull 해 다운받을 수 있다고 가정해봅시다. 도커를 사용하는 이유는 편리성 때문이며 최종목표는 서버에서 컨테이너를 제대로 동작시키는것입니다. k8s 는 노드에 직접 컨테이너를 배포하지 않습니다. k8s의 구성요소중 하나인 pod에 감싸서 배포합니다. pod는 하나의 인스턴스이고 k8s에서 만들 수 있는 가장 작은 오브젝트입니다. 가장 간단한 예시를 한번 살펴보겠습니다. cluster에 하나의 node, node 안에 하나의 pod, pod 안에 하나의 docker container 가 동작하고 있고 한명의 사용자가 이 시스템에 접근하고 있습니다. 지금 상태에선 문제되는게 없습니다. 하지만 만약 사용자가 ..

카테고리 없음 2023.04.12

[Kubernetes] kube proxy

쿠버네티스 클러스터 내부에서 모든 pod는 다른 pod에 접근이 가능합니다. pod network라는게 존재하기 때문에 가능한 일이며 pod network는 internel virtual network로 클러스터 내 모든 노드의 모든 pod가 연결되어 있습니다. pod 와 pod가 통신하는 간단한 예제를 고려해보겠습니다. web application을 담고있는 pod가 db를 담고있는 pod에 직접 접근하는 경우입니다. 이 경우 pod의 ip를 통해 통신할 텐데 각 pod의 ip가 항상 고정적이기 않기 때문에 ip가 바뀐다면 통신에 문제가 생길 수 있습니다. 때문에 k8s에서는 service라는게 존재하고 다른 pod에 접근할때는 이 service를 이용하는게 좋습니다. service는 web pod로부..

카테고리 없음 2023.04.11

[Linux] systemctl 명령어

linux에서 service를 조작하는 방법에는 어떤게 있을까요?먼저 linux에서 프로그램이 어떻게 동작하는지 살펴보겠습니다. linux에서는 여러가지 프로그램들이 돌아갑니다. 그것들을 service 라고 말하며 대부분 daemon 형태입니다.(daemon이란 한번 수행되고 끝나는 service가 아닌 background 에서 지속적으로 돌아가는 service를 의미합니다.) 이런 daemon들을 관리하는 daemon또한 존재했고 처음에는 init이란 daemon이 이 역할을 수행했지만 시간이 지나면서 기능이 추가된 systemd가 이 역할을 대신하게 되었습니다. (systemd 의 d가 daemon을 의미합니다.) 그리고 이 systemd를 컨트롤하는 명령어가 systemctl 입니다. 즉 우리는 s..

linux 2023.04.07