no image
DNS란 무엇인가?
DNS우리는 인터넷 브라우저를 사용하여 웹페이지에 접근 할 때 문자열을 가진 도메인으로 접근을 하는데, 이러한 도메인은 각각의 고유 주소인 IP를 가지고 있습니다.이때 도메인을 통해 해당 고유주소인 IP로 접근 할 수 있게 끔 도와주는 기능이 DNS 입니다. DNS는 Domain Name System 약자로 간단하게 풀어나가면치킨(웹페이지)을(를) 시키고(접속하고)싶은데 가게이름(도메인)은 알고 있지만, 전화번호(IP)를 알 수 없어서 114(DNS Server)에 물어봐서 전화번호(IP)를 알아낸다고 보면 됩니다.  DNS Server에 질의하여 IP를 알아내는 전체적인 과정은 아래와 같습니다.www.asdfzxcv.site 이라는 A레코드 타입의 도메인에 접근을 예로 들겠습니다. asdf www.as..
2024.08.07
no image
[쿠버네티스] helm 설치 및 기본 사용법
1. 설치$ curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3$ chmod +x get_helm.sh$ ./get_helm.sh# 심볼릭$ ln -s /usr/local/bin/helm /usr/bin/helm# 혹은 /etc/profile에 path 추가$ echo "export PATH=\$PATH:/usr/local/bin" >> /etc/profile$ source /etc/profile  명령어 자동 완성 추가하기# 현재 사용중인 세션$ source /etc/bash_completion.d/helm  설치를 완료했으니, 필요한 패키지를 설치하기 위한 저장소가 필요합니다.http..
2024.07.30
no image
윈도우10에서 WSL2로 WSA 구동하기 feat 플레이스토어
1. 개요WSA(Windows Subsystem for Android)는 윈도우 OS에서 네이티브하게 안드로이드 애플리케이션을 실행하는 도구입니다.  각 레이어의 역할은 다음과 같습니다. Windows OS 기본 운영체제로, 전체 시스템을 운영하는 바탕입니다. Hyper-V (하이퍼바이저) 가상화 기술로, 가상 머신을 실행할 수 있게 합니다. Linux Kernel 실제 Linux 커널로, Linux 운영체제의 핵심입니다. WSL (Windows Subsystem for Linux) Windows에서 Linux 프로그램을 실행할 수 있게 합니다. WSA (Windows Subsystem for Android) Windows에서 Android 앱을 실행할 수 있게 합니다. 작동 방식 1. Windows O..
2024.07.18

DNS란 무엇인가?

하녕
|2024. 8. 7. 16:45
반응형

DNS

우리는 인터넷 브라우저를 사용하여 웹페이지에 접근 할 때 문자열을 가진 도메인으로 접근을 하는데, 이러한 도메인은 각각의 고유 주소인 IP를 가지고 있습니다.

이때 도메인을 통해 해당 고유주소인 IP로 접근 할 수 있게 끔 도와주는 기능이 DNS 입니다.

 

DNS는 Domain Name System 약자로 간단하게 풀어나가면

치킨(웹페이지)을(를) 시키고(접속하고)싶은데 가게이름(도메인)은 알고 있지만, 전화번호(IP)를 알 수 없어서 114(DNS Server)에 물어봐서 전화번호(IP)를 알아낸다고 보면 됩니다.

 

 

DNS Server에 질의하여 IP를 알아내는 전체적인 과정은 아래와 같습니다.

www.asdfzxcv.site 이라는 A레코드 타입의 도메인에 접근을 예로 들겠습니다.

 

asdf

 

www.asdfzxcv.site

 

 

 

1. 사용자가 웹 브라우저에서 www.asdfzxcv.site 라는 도메인으로 접근

2. 웹 브라우저는 받은 도메인을 DNS 클라이언트에게 전달
3. DNS 클라이언트가 로컬(공용) DNS 서버로 요청을 보냄

4. 로컬(공용) DNS 서버가 캐시 확인
5. 캐시에 없으면 루트 네임서버로 요청을 보냄
6. 루트 네임서버가 TLD 네임서버의 주소를 반환
7. TLD 네임서버가 SLD 네임서버의 주소를 반환
8. SLD 네임서버가 요청된 도메인의 IP 주소를 반환
9. IP 주소가 로컬(공용) DNS 서버로 리턴
10. 로컬(공용) DNS 서버가 IP 주소를 캐시에 저장한 후 DNS 클라이언트로 반환
11. DNS 클라이언트가 IP 주소를 사용자의 브라우저로 제공
12. 사용자의 브라우저가 IP 주소를 사용해 원하는 웹사이트로 접근

 

* 로컬 DNS :  KT,SK,LG 같은 ISP 혹은 사내망 등에서 운영하는 DNS 서버로서, 전체가 아닌 특정 사용자들만 사용 가능

* 공용 DNS : 모든 사용자들이 사용이 가능한 도메인 서버로, 대표적으로 구글 (8.8.8.8), Cloudflare (1.1.1.1) 등

* SLD 네임서버 : DNS 레코드 관리 및 DNS 응답

* TLD 네임서버 : SLD 네임 서버의 정보 제공

* 루트 네임서버 : TLD 네임 서버의 정보 제공 

 

 

직접적으로 확인을 해보고 싶다면, 아래처럼 진행해봅시다.

#Windows에서는 별도 설치가 필요
$ dig www.asdfzxcv.site +trace

 

 

1. 구글 DNS가 루트 네임 서버에게(*.root-servers.net.) 질의합니다.

 

 

2. l.root-servers.net. 라는 루트 네임 서버에서 .site 라는 도메인을 관리하는 TLD 네임 서버(*.nic.site.)로 다시 질의를 합니다. 

 

 

3. b.nic.site 라는 TLD 네임 서버에서 asdfzxcv.site를 관리하는 SLD 네임 서버(*.gabia.*.)로 다시 질의를 합니다.

 

 

4. ns.gabia.net 라는 네임 서버에서 해당 URL에 대한 IP를 반환합니다.

 

위 같은 과정을 거친 이후 해당 도메인으로 접근을 하게 됩니다.

 

 

 

DNS 레코드

전화번호에는 일반 유선도 있고, 팩스용 번호도 있고, 인터넷 전화도 있고 종류가 다양합니다.

DNS 레코드 또한 이러한 목적성을 가진 도메인을 저장하는 데이터베이스들의 종류입니다.

 

대표적으로 사용되는 레코드 타입이 A, CNAME, MX 정도 입니다.

 

1. A 레코드 (Address Record):

도메인 이름을 IPv4 주소로 매핑합니다.

 

 

2. AAAA 레코드 (IPv6 Address Record):

도메인 이름을 IPv6 주소로 매핑합니다.

 

 

3. CNAME 레코드 (Canonical Name Record):

도메인 이름을 별칭으로 다른 도메인 이름에 매핑합니다.

 

 

4. MX 레코드 (Mail Exchange Record):

도메인 이름에 대한 이메일 서버를 지정합니다.

 

 

5. TXT 레코드 (Text Record):

도메인 이름에 대한 텍스트 정보를 저장합니다. SPF(Sender Policy Framework)와 같은 인증 메커니즘에 사용됩니다.

 

 

NS 레코드 (Name Server Record):

도메인 이름의 네임 서버를 지정합니다.

 

 

PTR 레코드 (Pointer Record):

IP 주소를 도메인 이름으로 매핑합니다. 주로 역방향 DNS 조회에 사용됩니다.

 

 

SRV 레코드 (Service Record):

특정 서비스를 제공하는 서버의 위치를 지정합니다.
예: _sip._tcp.example.com → sipserver.example.com:5060

 

SOA 레코드 (Start of Authority Record):

도메인 존 파일의 시작을 나타내며, 관리자 이메일 주소, 도메인 기본 네임 서버, 존 파일의 시리얼 번호 등을 포함합니다.

 

 

 

 

 

 

 

 

반응형
반응형

1. 설치

$ curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
$ chmod +x get_helm.sh
$ ./get_helm.sh

# 심볼릭
$ ln -s /usr/local/bin/helm /usr/bin/helm

# 혹은 /etc/profile에 path 추가
$ echo "export PATH=\$PATH:/usr/local/bin" >> /etc/profile
$ source /etc/profile

 

 

명령어 자동 완성 추가하기

# 현재 사용중인 세션
$ source <(helm completion bash)

# 새로운 세션 연결시
$ helm completion bash > /etc/bash_completion.d/helm

 

 

설치를 완료했으니, 필요한 패키지를 설치하기 위한 저장소가 필요합니다.

https://artifacthub.io/

 

Artifact Hub

Find, install and publish Cloud Native packages

artifacthub.io

 

 

페이지에서 설치가 필요한 패키지를 검색합시다.

 

 

저는 예시로 nginx 를 사용할거고, bitnami 저장소를 이용하겠습니다.

 

 

박스 모양에 커서를 갖다대면 repo URL이 나오는데 복사합시다.

 

 

해당 URL로 repo 추가를 합시다.

# Repo 추가
$ helm repo add bitnami https://charts.bitnami.com/bitnami

# Repo 패키지 리스트 업데이트
# yum 혹은 apt 같은 패키지 관리자의 update 기능이라고 생각하시면 편합니다.
$ helm repo update

 

 

저장소 추가 후에 검색해보면 잘 나옵니다.

 

 

설치 방법은 이전의 사이트에서 install 를 클릭하면 확인 할 수 있고, 하단의 See all을 누르면 배포 패키지의 버전 리스트를 확인 할 수 있습니다.

 

 

해당 페이지에서 안내하는 install 방법은 아래와 같습니다.

helm install은 helm install [NAME] [CHART] [flags] 순이며, 차트를 참조하거나 디렉토리를 직접적으로 참조 할 수도 있습니다.

$ helm install my-nginx bitnami/nginx --version 18.1.7

# ex 예시
# 차트 참조 : helm install $(my-nginx) nginx/nginx
# 패키지 차트 경로 : helm install $(my-nginx) ./nginx-1.2.3.tgz
# 압축을 푼 차트 디렉토리 경로 : helm install $(my-nginx) ./nginx
# 절대 URL : helm install $(my-nginx) https://example.com/charts/nginx-1.2.3.tgz
# 차트 참조 및 저장소 URL : helm install --repo https://example.com/charts/ mynginx nginx

 

 

해당 명령어로 생성 후에 조회해보면 정상적으로 생성되는 것을 확인 할 수 있습니다.

 

 

근데 우리는 values 값에 대한 수정이 필요하기 때문에 이걸로 설치 할 수 없습니다, 따라서 helm pull을 통해 패키지를 직접적으로 가져와야 합니다.

$ mkdir nginx
$ cd nginx
$ helm pull bitnami/nginx
$ tar -xvf nginx-*.tgz
$ cd nginx

 

 

압축을 푼 디렉토리로 이동하면 여러개의 yaml과 디렉토리가 존재하는 걸 볼 수 있습니다.

 

 

여기서 패키지를 설치할 때 차트의 기본 구조는 아래와 같습니다.

values.yaml을 통해 해당 인스턴스를 값을 정의하고, templates가 정의된 값을 통해 인스턴스를 구성합니다.

nginx-chart/
├── Chart.yaml
├── values.yaml
├── crds/
│   └── mycustomresource.yaml # 필요시 작성하는 커스텀 yaml
└── templates/
    ├── deployment.yaml
    ├── svc.yaml
    └── ingress.yaml
    └── ....

 

 

pull하여 가져온 chart에서 업로더가 제공한 README 등을 통해 양식에 맞게 values.yaml을 수정하고,

helm install을 통해 설치하면 되겠습니다.

$ helm install my-nginx . # 현재 디렉토리를 참조하여 my-nginx 패키지 설치

 

2. 여담

 

명령어 

helm list : helm chart 조회

 

 

helm uninstall $(charts) [...]  [flags] : charts 삭제

 

 

helm status $(charts) : charts 상태 조회

반응형
반응형

1. 개요

WSA(Windows Subsystem for Android)는 윈도우 OS에서 네이티브하게 안드로이드 애플리케이션을 실행하는 도구입니다.

 

 

각 레이어의 역할은 다음과 같습니다.

 

Windows OS
기본 운영체제로, 전체 시스템을 운영하는 바탕입니다.

Hyper-V (하이퍼바이저)
가상화 기술로, 가상 머신을 실행할 수 있게 합니다.

Linux Kernel
실제 Linux 커널로, Linux 운영체제의 핵심입니다.

WSL (Windows Subsystem for Linux)
Windows에서 Linux 프로그램을 실행할 수 있게 합니다.

WSA (Windows Subsystem for Android)
Windows에서 Android 앱을 실행할 수 있게 합니다.

 

작동 방식
1. Windows OS가 Hyper-V를 사용해 가상 환경을 만듭니다.
2. Hyper-V가 Linux 커널을 실행합니다.
3. Linux 커널이 WSL을 통해 Windows에서 Linux 프로그램을 실행합니다.
4. WSL이 WSA를 실행하여 Android 앱을 실행합니다.

 

 

2. 설치

일단 설치에 앞서서 하이퍼바이저 기능을 켜야 하는데 시작 - 검색 - Windows 기능 켜기/끄기를 실행하고

Hyper-V, 가상 머신 플랫폼을 체크한 후에 확인을 눌러주세요.

 

 

https://learn.microsoft.com/ko-kr/windows/wsl/install

 

WSL 설치

wsl --install 명령을 사용하여 Linux용 Windows 하위 시스템을 설치합니다. Ubuntu, Debian, SUSE, Kali, Fedora, Pengwin, Alpine 등 원하는 Linux 배포판에서 실행되는 Windows 머신에서 Bash 터미널을 사용할 수 있습니

learn.microsoft.com

 

 

Docs에서는 빌드 19041 이상일 경우 wsl --install로 간편하게 설치 할 수 있다고 하는데, 저는 안됩니다.

여튼 수동 설치란을 참고하면 WSL 최초 설치 프로세스부터 기술되어 있습니다.

필자의 PC 버전

# x64 시스템의 경우: 버전 1903 이상, 빌드 18362.1049 이상.
# ARM64 시스템의 경우: 버전 2004 이상, 빌드 19041 이상
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
wsl --update
wsl --install # OS 미지정시 기본적으로 우분투로 설치, 굳이 설치 할 필요는 없을 것 같습니다.

wsl --set-default-version 2 # WSL 기본 버전을 2버전으로 지정

 

얘는 기본적으로 윈도우 10을 공식 지원하지 않습니다..

그래서 아래 URL에 들어가서 윈도우 10용 안드로이드를 받아줍시다.

https://github.com/MustardChef/WSABuilds

 

GitHub - MustardChef/WSABuilds: Run Windows Subsystem For Android on your Windows 10 and Windows 11 PC using prebuilt binaries w

Run Windows Subsystem For Android on your Windows 10 and Windows 11 PC using prebuilt binaries with Google Play Store (MindTheGapps) and/or Magisk or KernelSU (root solutions) built in. - GitHub -...

github.com

 

들어가서 하단에 내려보면 ONEDRIVE가 있습니다.

 

 

저는 아마존 스토어는 필요없기 때문에 RemovedAmazon 버전으로 받았습니다.

아마존 스토어가 필요하면 아래껄로 받자

 

 

해당 파일을 다운로드 받고 나면 설치하기 전에 압축을 풀어야하는데, 반디집이나 알집은 오류가 있으니 7z으로 풀어주세요.

https://www.7-zip.org/download.html

 

Download

Download .7z Any / x86 / x64 LZMA SDK: (C, C++, C#, Java)

www.7-zip.org

 

 

 

압축을 푼 폴더의 이름을 알아보기 편하게 변경하고 폴더를 옮겨줍시다. (저는 편하게 바탕화면에 뒀습니다.)

그 다음 관리자 권한으로 PowerShell을 실행합시다.

 

옮겨두었던 wsa 폴더로 이동하고 아래 명령어로 설치합시다.

cd C:\Users\${사용자명}\Desktop\wsa
PowerShell.exe -ExecutionPolicy Bypass -File .\Install.ps1

 

그러면 알아서 설치하고 프로세스가 올라옵니다.

 

플레이 스토어도 정상적으로 됩니다.

 

 

근데 메모리를 더럽게 쳐먹습니다. (메모리를 미리 VM에 할당 해놓는 방식이어서 많이 먹습니다, 설정에서 변경 가능)

 

스토어에서 앱 설치시 알림바로 알려줘서 확인하기 편합니다.

 

 

게임이나 앱도 정상적으로 실행됩니다. (안되는 앱도 종종 있긴 합니다. 가상화니 그러려니 합니다.)

 

제어판에서 보면 설치된 앱들도 확인 할 수 있습니다. 

 

런처가 기본적으로 내장되어 있지 않기 때문에 별도로 설치해서 구성하면 익숙하게 사용하실 수 있습니다.

 

 

3. 그래픽 설정

검색 - Android용 Windows 하위 시스템 실행

 

고급 설정 - 그래픽 기본 설정에서 특정 GPU 선택 후, GPU 선택

 

반응형