이번 포스트는 CKA(Certified Kubernetes Administrator) 시험 후기 입니다.

 

이전 CKA를 2018년에 취득했기 때문에 이미 예전에 만료되었습니다. 최근 Kubernetes 관련 자격증을 갱신하면서 만료된 CKA 자격 시험을 응시하였고 3/19일에 취득하여 후기를 남겨드립니다.

 

 

기본정보

CKA는 실습형 시험으로 2시간 동안 16문제를 풀어야 합니다.

 

시험 환경은 Secure Browser 환경에서 시험을 보게 됩니다. 시험 UI는 아래와 같으며, 좌측 시험 문제가 있고, 우측에 브라우저와 터미널을 실행할 수 있는 창을 띄울 수 있습니다.

 

출처: https://docs.linuxfoundation.org/tc-docs/certification/tips-cka-and-ckad#adjusting-font-and-windows-in-the-examui

 

시험 UI가 다소 무거운 편이며, 특히 제공되는 메모장은 엉망이었습니다. 그래서 실제로 메모장을 제대로 활용하기는 어렵습니다. 이때문에 vi를 잘 사용해야합니다.

 

그 외 UI에 특이점은 없지만 터미널에서 복사/붙여넣기는 ctrl+shift+c, ctrl+shift+v 를 해야하는 정도만 알고 계시면 될 것 같습니다.

 

스크린 화면이 작으면 시험을 보는데 불리합니다. 가능하면 모니터를 통해서 시험을 보시기 바랍니다. 듀얼 모니터 사용은 불가하지만 외부 모니터를 사용하는 것은 가능합니다. 단, 모니터를 사용하려면 웹캠(감시자를 통한 시험 환경 모니터링 용)이 있어야 합니다.

 

과거는 kubeconfig의 contexts를 변경하면서 각 문제별 다른 컨텍스트를 활용했다면, 현재 시험 시스템은 각 문제별로 ssh로 VM으로 접속하는 방식입니다. 시험 문제에 각 문제에 해당하는 ssh 커맨드와 토픽에 대한 링크가 제공됩니다.

ssh로 노드에 접속하면 kubectl 등이 사용 가능합니다. 문제를 풀면 다시 최초 터미널로 돌아와서 다시 ssh로 접속하는 방식을 반복하시면 됩니다.

 

 

컨텐츠 리뉴얼

CKA를 준비하고 있다면 CKA의 토픽과 문제들이 2025년 2월 18일에 리뉴얼 되었다는 것을 이미 알고 있을 것입니다. (리뉴얼 전에 시험을 봤어야 했는데 많이 당황하기는 했습니다)

 

리뉴얼된 CKA에서 기존에 알려진 시험 문제 유형 중 2~3문제 정도는 동일한 것 같습니다. 나머지는 모두 다른 토픽과 유형이었습니다. 오브젝트의 정보를 확인 후 작성하는 방식의 쉬운 문제는 거의 없어졌습니다.

 

리뉴얼된 시험은 이전 버전 보다 다소 어려워진 느낌입니다.

아래와 같은 피드백을 살펴보시면, 2/18일 이후 리뉴얼된 시험을 응시한 사람들의 공통적 의견은 시험이 많이 어려워졌다 입니다.

https://kodekloud.com/community/t/just-took-the-latest-version-of-the-cka-exam-failed-miserably-need-some-advice/474751

https://www.reddit.com/r/CKAExam/comments/1jbi4iw/discussion_of_the_updated_feb_18th_2025_cka_exam/

 

먼저 시험 변경사항에 대해서는 아래의 공지를 살펴보시기 바랍니다.

https://training.linuxfoundation.org/certified-kubernetes-administrator-cka-program-changes/

 

또한 아래 영상을 통해서 변경사항에 대한 인사이트를 살펴보실 수 있습니다.

https://www.youtube.com/watch?v=fvvgM3QmKGo

 

Linux Foundation 의 공지를 바탕으로 각 도메인 별로 추가된 토픽을 살펴보겠습니다.

전반적으로 도메인은 기존과 동일하며, 각 도메인에서 일부 토픽이 추가되었고, 동일한 토픽에 대해서도 문제 유형이 전부 수정되었습니다.

 

StorageClass, Gateway API 와 같은 부분이 추가되었습니다.

 

Helm, Kustomize와 같은 애플리케이션 배포 기술과 CNI, CSI, CRI에 대한 기본적인 설치와 구성에 대한 이해가 필요합니다. 추가로 CRD와 같은 토픽이 추가되었습니다.

노드에 쿠버네티스를 설치, 트러블 슈팅을 위한 기본 커맨드와 컨트롤 플레인 구성요소를 관리하는 방식에 대한 이해가 필요합니다.

 

 

시험에 대한 유형이나 상세한 문제를 공개하기 어렵기 때문에 추가된 토픽을 중심으로 학습해보시기를 부탁드립니다.

 

물론 CKA는 retake가 가능한 시험이기 때문에 첫번째 시험에서 토픽을 잘 확인하고, 추가 학습 후 두번째 시험을 보시는 것도 방법입니다. 첫번째 시험에서 풀리지 않는 문제를 푸느라 시간 배분을 못하면 오히려 나머지 토픽을 모두 확인하지 못할 수도 있습니다.

 

시험에 도움이 되셨으면 하며 마무리 하겠습니다.

'기타' 카테고리의 다른 글

curl의 다양한 옵션  (0) 2025.03.06
KCNA, KCSA 후기  (0) 2025.02.25
VS Code를 markdown editor로 사용하기  (0) 2025.02.06
VS Code에서 REST 테스트 하기  (0) 2023.11.05
wsl: docker, kind 설치  (0) 2023.11.05

서비스 테스트에 자주 사용하는 Curl 옵션입니다.

timeout

curl을 옵션없이 사용하면 timeout이 될때까지 상당히 오래 대기합니다.
보통 curl을 통한 테스트는 성공 여부만 확인하면 되기 때문에 timeout을 지정하면 해당 시간이 지나면 timeout으로 처리합니다.

$ curl -m 3 192.168.0.1
curl: (28) Connection timed out after 3002 milliseconds

 

DNS resolution을 명시적으로 주기

보통 ingress의 경우 여로 host를 서비스 하는 경우도 있습니다.
이때 DNS 설정이 되지 않은 IP에 대해서 명시적으로 dns resolution을 지정해 줄 수 있습니다.

$ curl --resolve test.agic.contoso.com:80:20.20.20.20 http://test.agic.contoso.com
<html>
<head><title>502 Bad Gateway</title></head>
<body>
<center><h1>502 Bad Gateway</h1></center>
<hr><center>Microsoft-Azure-Application-Gateway/v2</center>
</body>
</html>

 

특정 Method 테스트 하기

테스트 목적으로 특정 Method의 응답 여부를 확인할 때가 있습니다.
이 경우 -X 옵션을 사용할 수 있습니다.

curl -X OPTIONS "https://url.com/default.css"

 

Status code 확인하기

response body가 아닌 status code 자체를 확인해야 하는 경우가 있습니다.
예를 들어, 네트워크 장비에서 health probe 를 하는데 이 경우 2xx~3xx 의 응답이 아닌 경우 실패로 간주 합니다.
보통은 프로세스가 정상적인 경우에 다음 액션으로 실제 응답을 확인해야하는 상황이 있습니다.

curl -w " - status code: %{http_code}" "http://url.com/"

 

bearer 토큰 지정

인증이 필요한 서비스에 대한 호출은 헤더로 토큰 값을 같이 넘겨야 하는 경우가 있습니다.
이 경우 아래와 같이 지정할 수 있습니다.

TOKEN=xxx
$ curl 'https://url.com' -H "Authorization: Bearer $TOKEN"

 

curl 호출 과정 보기

curl 을 통해 응답만 보는게 아니라 상세한 진행 과정을 확인하고 싶을 때가 있습니다.
tls 관련 이슈에서 사용할 수 있습니다.

이럴 때 -v 옵션을 사용할 수 있습니다.

$ curl -v https://url.com

 

Redirection 된 페이지 보기

curl을 수행했지만, 페이지가 redirection되는 경우 301 코드만 확인됩니다.
이 경우 아래와 같이 -L 옵션을 사용할 수 있습니다.

$ curl naver.com
<html>
<head><title>301 Moved Permanently</title></head>
<body>
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx</center>
</body>
</html>

$ curl -L naver.com 
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   162  100   162    0     0   4205      0 --:--:-- --:--:-- --:--:--  4263
100   138    0   138    0     0   2251      0 --:--:-- --:--:-- --:--:--  2251
   <!doctype html> <html lang="ko" class="fzoom"> <head> <meta charset="utf-8"> <meta name="Referrer" content="origin"> <meta http-equiv="X-UA-Compa
tible" content="IE=edge"> <meta name="viewport" content="width=1190"> <title>NAVER</title> 
...

 

curl로 파일 다운 받기

curl 실제 파일을 다운받아야 하는 경우가 있습니다. wget을 사용할 수 도 있습니다.
이때 -O 옵션을 사용합니다.

curl -o http://url.com/default.css a.css # 지정된 파일명으로 다운
curl -O http://url.com/default.css # 파일명 그대로 다운

'기타' 카테고리의 다른 글

CKA 취득 후기 (2025년 2월 18일 리뉴얼)  (0) 2025.03.22
KCNA, KCSA 후기  (0) 2025.02.25
VS Code를 markdown editor로 사용하기  (0) 2025.02.06
VS Code에서 REST 테스트 하기  (0) 2023.11.05
wsl: docker, kind 설치  (0) 2023.11.05

최근에 만료된 Kubernetes 자격증을 갱신하면서 신규 자격증인 KCNA와 KCSA가 있어 추가로 취득했습니다.

이번 포스트에서는 두 가지 자격증에 대해서 간략히 소개하고 시험 후기를 간단히 남기려고 합니다.

 

공통

두 시험 모두 PSI 를 통해서 시험을 응시하는데 다른 시험들에 비해서 노트북 캠으로 사전 점검을 엄청 열심히 합니다.

듀얼 모니터는 지원되지 않으며, 책이나 종이 필기류 뭔가 눈에 띄는 모든 것에 대해서 확인을 합니다. 

그냥 노트북, 마우스만 두고 시험을 응시하는게 시간 낭비하지 않는 방법입니다.

 

KCNA와 KCSA는 90분간 60문제 4지선다의 시험이고, 자격은 2년간 유효합니다.

또한 클라우드 자격증과는 다르게 상황 설명이 복잡하지 않습니다. 대체적으로 질문과 제시된 응답이 간결한 편입니다.

예를 들어, 어떤 역할을 하는 컴포넌트나 제품을 찾거나, 혹은 특정 상황에서 발생할 수 있는 이슈를 선택하는 등입니다.

 

시험에 큰 부담은 없지만 언어 선택은 영어만 가능하기 때문에 시험 후 약간의 피로는 있을 수 있습니다.

 

또한 두 가지 시험 모두 쿠버네티스의 컨트롤 플레인 구성 요소와 역할, 그리고 각 리소스가 어떤 경우 필요한 지에 대한 기본적인 이해를 묻는 문항이 있습니다.

 

KCNA(Kubernetes and Cloud Native Associate)

KCNA는 쿠버네티스와 클라우드 네이티브 어소시에이트 자격입니다. Associate 자체가 Expert 수준의 자격은 아니기 때문에 업무에서 쿠버네티스 환경을 사용하고, 기본적인 이해가 있는 분은 큰 부담없이 접수하고 시험을 처도 무방한 시험입니다.

 

출제 범위(Domain)

출처: https://training.linuxfoundation.org/certification/kubernetes-cloud-native-associate/

 

위 Linux Foundation 링크에서 세부 주제들을 확인하실 수 있으며, 대충 아는 부분은 넘어가고 아리송한 부분만 한번 학습하시면 될 것 같습니다. 시험 범위는 쿠버네티스 + 클라우드 네이티브이기 때문에 관련된 용어이나 개발 프로세스 등도 포함된다고 보면 됩니다.

 

다만, 정말 어렵지 않은 시험입니다.

 

아래와 같이 참고 자료 남겨드립니다.

 

https://github.com/moabukar/Kubernetes-and-Cloud-Native-Associate-KCNA/blob/main/docs/kcna/questions.md

https://www.itexams.com/exam/KCNA

(두번째 링크는 초반에 20문제 정도는 무료로 볼 수 있습니다)

 

 

KCSA(Kubernetes and Cloud Native Security Associate)

KCSA는 쿠버네티스와 클라우드 네이티브에 대한 보안 어소시에이트 자격입니다. 마찬가지로 쿠버네티스 환경에 익숙하다면 큰 부담은 없을 수 있지만, 이 시험은 보안과 관련된 주제에 대해서는 추가로 학습이 필요합니다.

 

출제 범위(Domain)

출처: https://training.linuxfoundation.org/certification/kubernetes-and-cloud-native-security-associate-kcsa/

 

해당 시험에도 쿠버네티스 컨트롤 플레인에 대한 문항이 있고, 또 대략 10+문제 정도는 그냥 감으로 봐도 보안적으로 좋은(?) 답변을 선택하면 됩니다.

 

다만 한 2~30문제 정도는 정말 해당 토픽에 대한 이해가 필요하기 때문에 대략 2~3시간 정도는 공부를 하시는 게 좋을 것 같습니다.

 

쿠버네티스의 보안을 위한 서비스계정, 네트워크 정책, RBAC, Authz, Admission Controller 같은 내용도 알아야 하고, 그외 쿠버네티스 환경에서 보안을 강화해주는 구성요소나 제품(SECCOMP, AppArmor, gVisor, Falco, FireCraker 등)들도 어떤 역할을 하는지 잘 이해해야 합니다. 마지막으로 보안 관련 규정이나 용어들도 친숙해질 필요가 있습니다.

 

위 출제 범위를 확장해서 각 카테고리에서 모르는 용어가 있으면 보고 가시기 바랍니다.

 

아쉽게도 KCSA는 잘 정리된 자료를 찾기가 어렵습니다.

개인적으로 KCSA는 후기들을 한번씩 보고, 참고 링크들을 위주로 학습 했습니다.

 

 

혹시나 도움이 되셨으면 하며 마무리 하겠습니다.

'기타' 카테고리의 다른 글

CKA 취득 후기 (2025년 2월 18일 리뉴얼)  (0) 2025.03.22
curl의 다양한 옵션  (0) 2025.03.06
VS Code를 markdown editor로 사용하기  (0) 2025.02.06
VS Code에서 REST 테스트 하기  (0) 2023.11.05
wsl: docker, kind 설치  (0) 2023.11.05

보통 블로그를 포스팅 할 때 markdown editor를 사용해서 글을 작성하고, 이후에 블로그의 글쓰기에 붙여 넣는 방식을 사용했습니다.

markdown editor를 사용하면 글을 정리하기도 편하고 이미지도 바로 복/붙이 되어서 편한 부분이 있습니다.

예전에는 typora라는 markdown editor를 사용했는데 이후에 유료로 전환을 한 것 같습니다.

 

확인해보니 VS Code도 markdown editor를 사용 가능한 걸로 확인해서 간단히 소개합니다.

 

먼저 VS Code를 켜고 폴더를 열어, .md 확장자로 내용을 작성합니다. 다행이 이미지 복/붙을 하면 해당 폴더에 저장하는 방식으로 지원이 됩니다.

 

그리고 작성된 글을 확인하고자 할 때, 우측 상단의 'Open Preview to the Side'를 누릅니다.

VS Code for markdown editor #1

 

아래와 같이 미리 보기로 확인이 가능합니다. 코드 처리가 제대로 안되는거 같긴 합니다만..

VS Code for markdown editor #2

 

사실 typora 방식이 편하긴 하지만 VS Code로 무료로 쓸 수 있다는 장점이 있습니다.

'기타' 카테고리의 다른 글

curl의 다양한 옵션  (0) 2025.03.06
KCNA, KCSA 후기  (0) 2025.02.25
VS Code에서 REST 테스트 하기  (0) 2023.11.05
wsl: docker, kind 설치  (0) 2023.11.05
curl 에 timeout 주기  (0) 2023.10.04

Postman 으로 REST 테스트를 수행할 수 있지만 VS Code에서도 Rest Client를 통해 REST 테스트를 할 수 있다.

VS Code의 Extention에서 Rest Client 를 설치한다.

 

코드가 있는 위치에서 http.test 파일을 생성한다.

GET http://localhost:3000/students

###
POST http://localhost:3000/students
Content-Type: application/json

{
    "Id": 0,
    "Name":"ccc",
    "Age":15,
    "Score":75
}

 

VS Code 에서 'Send Request'를 누르면 요청이 전달되고, Response를 확인할 수 있다.

 

'기타' 카테고리의 다른 글

KCNA, KCSA 후기  (0) 2025.02.25
VS Code를 markdown editor로 사용하기  (0) 2025.02.06
wsl: docker, kind 설치  (0) 2023.11.05
curl 에 timeout 주기  (0) 2023.10.04
개행문자(\n)를 줄바꿈으로 변환하기  (0) 2022.03.19

WSL(Windows Subsystem for Linux) 환경에서 kind를 실행하기 위해 필요한 패키지들을 설치한다.

docker 설치

참고로 Microsoft 공식 문서의 가이드에서는 docker desktop 에 대한 설치 가이드만 있다.

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

단순히 docker 인스턴스를 설치하기 위해 아래를 참고한다.

https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository

 

apt 리포지터리 설정한다.

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# Add the repository to Apt sources:
echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

 

docker 설치한다.

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

 

다만 이렇게 해도 docker 명령을 수행해보면 아래와 같이 에러가 발생하는 것을 알 수 있다.

# docker ps
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
# systemctl status docker
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down

 

기본적으로 systemd에서 docker를 실행해 줄 것으로 기대하지만, wsl에서는 기본적으로 systemd 가 실행되지 않기 때문에 아래와 같이 /etc/wsl.conf 를 작성한다.

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

[boot]
systemd=true

참고로, 위 방법이 제대로 동작하지 않는다면 사전에 wsl --update를 수행해야 할 수 있다. (WSL 버전이 0.67.6 이상)

> wsl --update
설치 중: LinuxWindows 하위 시스템
[==========================59.0%===                        ]
LinuxWindows 하위 시스템이(가) 설치되었습니다.

 

이제 사용 가능하다.

# systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2023-11-05 12:52:49 KST; 23s ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 397 (dockerd)
      Tasks: 14
     Memory: 102.7M
     CGroup: /system.slice/docker.service
             └─397 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Nov 05 12:52:49 DESKTOP-UN5DI0K dockerd[397]: time="2023-11-05T12:52:49.436289714+09:00" level=info msg="Loading contai>
Nov 05 12:52:49 DESKTOP-UN5DI0K dockerd[397]: time="2023-11-05T12:52:49.537940657+09:00" level=info msg="Loading contai>
Nov 05 12:52:49 DESKTOP-UN5DI0K dockerd[397]: time="2023-11-05T12:52:49.574554915+09:00" level=warning msg="WARNING: No>
Nov 05 12:52:49 DESKTOP-UN5DI0K dockerd[397]: time="2023-11-05T12:52:49.574608315+09:00" level=warning msg="WARNING: No>
Nov 05 12:52:49 DESKTOP-UN5DI0K dockerd[397]: time="2023-11-05T12:52:49.574617075+09:00" level=warning msg="WARNING: No>
Nov 05 12:52:49 DESKTOP-UN5DI0K dockerd[397]: time="2023-11-05T12:52:49.574621785+09:00" level=warning msg="WARNING: No>
Nov 05 12:52:49 DESKTOP-UN5DI0K dockerd[397]: time="2023-11-05T12:52:49.574642268+09:00" level=info msg="Docker daemon">
Nov 05 12:52:49 DESKTOP-UN5DI0K dockerd[397]: time="2023-11-05T12:52:49.574820321+09:00" level=info msg="Daemon has com>
Nov 05 12:52:49 DESKTOP-UN5DI0K systemd[1]: Started Docker Application Container Engine.
Nov 05 12:52:49 DESKTOP-UN5DI0K dockerd[397]: time="2023-11-05T12:52:49.609024013+09:00" level=info msg="API listen on >
# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

 

설치 확인

sudo docker run hello-world

 

아래와 같은 결과를 얻는다면 정상이다.

# sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
719385e32844: Pull complete
Digest: sha256:88ec0acaa3ec199d3b7eaf73588f4518c25f9d34f58ce9a0df68429c5af48e8d
Status: Downloaded newer image for hello-world:latest

Hello from Docker!

 

kind 설치

kind는 docker에 컨테이너로 노드를 실행 시켜서 kuberentes를 실행하므로써 로컬 환경에서 kubernetes 테스트를 가능케하는 도구이다. 

 

아래를 참고한다.

https://kind.sigs.k8s.io/docs/user/quick-start/#installation

# For AMD64 / x86_64
[ $(uname -m) = x86_64 ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.20.0/kind-linux-amd64
# For ARM64
[ $(uname -m) = aarch64 ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.20.0/kind-linux-arm64
chmod +x ./kind
sudo mv ./kind /usr/local/bin/kind

 

실제로 kind는 바이너리에 불과함을 알 수 있다.

kind로 클러스터를 생성하면, 아래와 같이 컨테이너 이미지가 각 노드 처럼 실행되는 것을 알 수 있다.

CONTAINER ID   IMAGE                  COMMAND                  CREATED       STATUS       PORTS                       NAMES
e9d61cb5b472   kindest/node:v1.27.3   "/usr/local/bin/entr…"   8 hours ago   Up 8 hours   127.0.0.1:44423->6443/tcp   calico-control-plane
1d481afc16a6   kindest/node:v1.27.3   "/usr/local/bin/entr…"   8 hours ago   Up 8 hours                               calico-worker

 

 

kind로 로컬 환경에서 kubernetes 를 테스트 해보기 위해 docker와 kind를 설치했다. 

kind 실제 사용은 앞으로 작성될 블로그를 참고할 수 있다.

curl 로 웹 서비스를 테스트할 때 옵션이 없으면 무한 대기할 수 있다. 이럴 때는 ctrl+c 로 끊어줘야 한다.

 

$ curl 192.168.0.1
^C

 

이때 -m <sec> 옵션을 주면 해당 시간(초) 만큼 요청하고, time out 한다.

 

$ curl -m 3 192.168.0.1
curl: (28) Connection timed out after 3002 milliseconds

 

테스트를 할 때 -m 옵션을 주면 간단하게 성공 여부를 체크할 수 있다.

로그 분석을 위해 로그를 확인했는데 로그의 한줄 한줄이 너무 길다.

곰곰히 살펴보면 개행 문자(\n)까지 엄청 들어가서 줄바꿈을 해서 보고 싶다.

 

notepadd++ 을 사용한다.

바꾸기(ctrl+h)를 한다. 

내용을 작성하고, 확장 (\n, \r, \t ..)를 체크하고 모두 바꾸기(A) 한다.

Linux VM에서 간단한 테스트를 하기 위해 code-server 를 세팅했습니다.

 

 

code-server 는 WEB IDE 혹은 Browser IDE 로 알려진 도구입니다.

설치도 쉽고 vscode 와 UI 가 비슷해서 간단하게 사용할 수 있습니다.

 

아래 링크의 가이드에 따라 패키지를 설치합니다.

https://github.com/coder/code-server

[root@labco7 ~]# curl -fsSL https://code-server.dev/install.sh | sh
CentOS Linux 7 (Core)
Installing v4.1.0 of the amd64 rpm package from GitHub.

+ mkdir -p ~/.cache/code-server
+ curl -#fL -o ~/.cache/code-server/code-server-4.1.0-amd64.rpm.incomplete -C - https://github.com/coder/code-server/releases/download/v4.1.0/code-server-         4.1.0-amd64.rpm
######################################################################## 100.0%
+ mv ~/.cache/code-server/code-server-4.1.0-amd64.rpm.incomplete ~/.cache/code-server/code-server-4.1.0-amd64.rpm
+ rpm -i ~/.cache/code-server/code-server-4.1.0-amd64.rpm

rpm package has been installed.

To have systemd start code-server now and restart on boot:
  sudo systemctl enable --now code-server@$USER
Or, if you don't want/need a background service you can run:
  code-server
[root@labco7 ~]#

스크립트에서 OS를 인식하고 패키지 설치를 진행하는 것을 알수 있습니다. (스크립트를 대충 살펴보면 debian 에 대한 처리도 하는 것 같아서 ubuntu 유저도 사용하시면 될거 같습니다)

 

수행 결과를 보면 데몬으로 실행하거나 혹은 code-server 로 실행하도록 가이드를 제공합니다.

패키지가 설치되고 code-server . & 를 실행하면 ~/.config/code-server 에 하위에 설정파일이 생성되고 접속가능한 URL 이 노출됩니다.

[root@labco7 ~]# code-server . &
[1] 158353
[2022-03-18T07:21:57.394Z] info  code-server 4.1.0 9e620e90f53fb91338a2ba1aaa2e556d42ae52d5
[2022-03-18T07:21:57.395Z] info  Using user-data-dir ~/.local/share/code-server
[2022-03-18T07:21:57.424Z] info  Using config file ~/.config/code-server/config.yaml
[2022-03-18T07:21:57.424Z] info  HTTP server listening on http://127.0.0.1:8080/
[2022-03-18T07:21:57.424Z] info    - Authentication is enabled
[2022-03-18T07:21:57.424Z] info      - Using password from ~/.config/code-server/config.yaml
[2022-03-18T07:21:57.424Z] info    - Not serving HTTPS

다만 기본 설정에서는 bind-addr 이 127.0.0.1 이기 때문에 서버에서만 접속이 가능합니다. Localhost로 접속이 불가한 경우라면 아래와 같이 서버 IP로 변경하면 바인딩이 변경되고 해당 IP로 접속이 가능합니다.

여러 사람이 사용하는 경우라면 포트 번호도 각자 수정하시면 됩니다.

[root@labco7 ~]# sed -i 's/127.0.0.1/192.168.10.101/g' ~/.config/code-server/config.yaml
[root@labco7 ~]# cat ~/.config/code-server/config.yaml
bind-addr: 192.168.10.101:8080
auth: password
password: 문자열
cert: false
[root@labco7 ~]# code-server . &
[2] 158486
[root@labco7 ~]# [2022-03-18T07:25:26.775Z] info  code-server 4.1.0 9e620e90f53fb91338a2ba1aaa2e556d42ae52d5
[2022-03-18T07:25:26.777Z] info  Using user-data-dir ~/.local/share/code-server
[2022-03-18T07:25:26.802Z] info  Using config file ~/.config/code-server/config.yaml
[2022-03-18T07:25:26.802Z] info  HTTP server listening on http://192.168.10.101:8080/
[2022-03-18T07:25:26.802Z] info    - Authentication is enabled
[2022-03-18T07:25:26.802Z] info      - Using password from ~/.config/code-server/config.yaml
[2022-03-18T07:25:26.802Z] info    - Not serving HTTPS

[root@labco7 ~]#

노출된 URL로 접속하면 패스워드를 입력하는 창이 나오는데 config.yaml 에 있는 password 를 사용하시면 됩니다.

 

Windows에서 Ubuntu 를 접속한 상태에서 CLI 모드로 실행 중인 Ubuntu 의 GUI feature를 Windows 에서 실행시키는 방법을 소개합니다.

 

 

먼저 Ubuntu 에서 아래의 패키지들을 설치합니다.

Ubuntu 에서 실행

  apt update
  apt install x11-apps xorg openbox
  
  ## firefox 사용을 위해서 추가로 설치함
  apt install firefox

 

 

Windows OS로 돌아와 xming을 설치하고, Terraterm 의 ssh forwarding 설정을 합니다.

Windows OS에서 실행

xming 설치

아래에서 다운받아 설치

https://sourceforge.net/projects/xming/

 

Terraterm 에서 ssh forwarding 설정

Setup > SSH Forwarding > Display remote X application on local X server 체크

 

Setup > Save Setup 

 

 

새 세션에서 GUI 프로그램 실행

 

 

terraform 으로 새 세션을 열고 `echo $DISPLAY` 를 수행해 본다.

 

아래와 같이 인식되면 정상이다.

ubuntu@u2004iac:~$ echo $DISPLAY
localhost:10.0

firefox를 실행해보면 xming이 실행된다.

ubuntu@u2004iac:~$ firefox

새로운 창에 firefox 가 실행된 모습

'기타' 카테고리의 다른 글

wsl: docker, kind 설치  (0) 2023.11.05
curl 에 timeout 주기  (0) 2023.10.04
개행문자(\n)를 줄바꿈으로 변환하기  (0) 2022.03.19
Browser IDE, code-server 사용해보기  (0) 2022.03.18
Windows terminal 의 pane 기능  (0) 2022.02.05

+ Recent posts