Window 에서 kubectl 을 설치 후 WSL 에서 클러스터 사용을 공유하기 위해 config 파일을 공유하는 방법


# wsl Linux 에 kubectl 설치
# https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"

# kubectl 실행 권한 설정
chmod +x /kubectl

# 설정파일 저장 디렉토리 생성
mkdir -p ~/.kube

# 윈도우 설정파일 링크
ln -sf "/mnt/c/users/$windowsUser/.kube/config" ~/.kube/config

'Notes > Kubernetes' 카테고리의 다른 글

쿠버네티스 명령어(kubernetes command)  (0) 2024.07.27


프로젝트에 알림 기능이 요구 사항이 생겨 기능 구현을 하고 있었다.
Spring WebSocket Config 코드 작성과 프론트단에서 서버에 웹소켓 연결을 요청하는 코드를 완성한 후 테스트를 하였다.

클라이언트에서 소켓 연결 로그, 서버에서의 CONNECT 로그 모두 잘 찍혔다. 그러나 클라이언트에서 연결이 후 subscribe 를 설정하는 callback 함수 실행이 되지 않았다. 서버쪽에서도 API 로그가 전혀 찍히지 않았다.

엔드 포인트에 오타는 없는지, 문법이 잘못되지는 않았는지 한참을 찾았으나 원인을 찾지 못하다 원인을 찾게 되었다. 예상치 못한 부분이었기에 한참을 걸려 찾게 되었다. 

원인은 새로 작성한 코드 부분이 아니라 기존에 존재하던 스프링 설정에 있었다. 프로젝트의 구조 및 성능을 위해 Spring Bean을 Lazy Init 하도록 설정이 되어있는 부분이 있었고 해당 부분이 원인이었다. 

WebSocket 연결을 위해 WebSocket Config 에 웹소켓을 통해 subscribe 및 publish 를 위한 엔드포인트의 prefix를 설정하는 부분 및 여러가지 설정을 하는 부분이 있다. 엔드포인트를 설정하는 부분이 스프링이 실행될 때 Bean이 생성되며 설정되어야 하지만 Lazy Init 을 할 경우 해당 Bean이 웹소켓 엔드포인트 설정이 되어야하는 시점이 지난 이후 생성되는 것이었다. 

결국 lazy init 하는 부분에서 Websocket 관련 Bean 은 lazy 하지 않게 변경한 이후 정상적으로 테스트가 성공적으로 되는 것을 확인하였다.

요약: WebSocket 관련 Bean은 LazyInit 하면 안된다.

https://docs.aws.amazon.com/ko_kr/serverless-application-model/latest/developerguide/install-docker.html


# 패키지 ㅈ최신화
sudo yum update -y

# 도커 설치 시작
sudo yum install -y docker

# Docker 서비스 시작
sudo service docker start

# ec2-user가 docker 명령어 실행할 수 있도록 그룹에 추가
# 추가 이후 로그아웃 이후 로그인 해야 docker 명령어 사용가능
sudo usermod -a -G docker ec2-user

# 확인
docker ps 

@Test 어노테이션의 패키지를 확인해주자

import org.junit.jupiter.api.Test; // jupiter package, JUnit 5

@SpringBootTest

import org.junit.Test; // JUnit 4

@SpringBootTest
@RunWith(SpringRunner.class)

 

org.junit.jupiter.api.Test 패키지는 JUnit 5 를 사용하며 해당 어노테이션을 쓰지 않아도 동작하지만
org.junit.Test 패키지는 JUnit 4 를 사용하며 @RunWith(SpringRunner.class) 가 필수이다.

 

사이드 프로젝트 중 @Test 어노테이션 만으로도 동작하는 것을 확인하고 새로운 테스트 클래스를 만든 후에
스프링 빈이 주입되지 않아 당황하였다.
스프링 버젼 자체를 최신으로 해서 RunWith 어노테이션이 필요하지 않아진줄 알았지만
Test 어노테이션의 패키지가 영향을 준다는 사실을 확인했다.

커서 이동

  • ctrl + a : 커서 맨 앞으로 이동 (Ahead)
  • ctrl + e : 커서 맨 뒤로 이동 (End)
  • ctrl + f : 커서 한 글자 다음으로 이동 (Foward)
  • ctrl + b: 커서 한 글자 이전으로 이동 (Backword)
  • alt + f : 커서 단어 하나 다음으로 이동 (Foward)
  • alt + b : 커서 단어 하나 이전으로 이동 (Backword)
  • ctrl + l : 화면 지우고 커서 화면 최상단 이동(cLear)

텍스트 편집

  • ctrl + d : 커서 위치 글자 지우기 (Delete)
  • ctrl + t : 커서 앞 글자와 위치 바꾸기 (Transmute)
  • alt + t : 커서 위치 앞 단어 위치 바꾸기 (Transmute)
  • alt + l : 커서 위치 있는 글자부터 그 단어 끝까지 소문자로 변경 (Lower)
  • alt + u : 커서 위치 있는 글자부터 그 단어 끝까지 대문자로 변경 (Upper)

잘라내기 / 붙이기

  • ctrl + k : 커서 줄 끝까지 잘라내기
  • ctrl + u : 커서 그 줄 처음까지 잘라내기
  • alt + d : 커서 단어 끝 부분까지 잘라내기
  • alt + backspace : 커서 단어 앞 부분까지 잘라내기
  • ctrl + y : 잘라낸 명령어 붙이기

'Notes > Linux' 카테고리의 다른 글

유용한 명령어 저장  (0) 2025.02.06

docker-compose


# 전체 컨테이너 정지
docker-compose down

# 전체 컨테이너 실행
docker-compose up -d

# 특정 컨테이너 재실행 
docker-compose restart ${service-name}

'Notes > Docker' 카테고리의 다른 글

도커 허브 명령어(docker hub command)  (0) 2024.07.03
도커 명령어(docker command)  (0) 2024.07.03

docker hub

# 도커 허브에 로그인
docker login

# 도커 허브에 로그아웃
docker logout

# docker hub 에 올리기(push)
docker push ${repository}

'Notes > Docker' 카테고리의 다른 글

도커 컴포즈 명령어(docker-compose command)  (0) 2024.07.03
도커 명령어(docker command)  (0) 2024.07.03

docker

# 실행중인 도커 컨테이너 정보
docker ps 

# 이미지 목록보기
docker images

# 실행중인 도커 컨테이너 멈추기 ${name}은 ps 에서 확인가능
docker stop ${name}

# 현재 경로 도커 이미지 빌드(완료시 image id 획득)
docker build .
    # 이미지는 name:tag 로 식별자 부여
    # -t ${name}:${tag}

# 이미지 REPOSITORY(name), TAG 재설정
docker tag ${old-name}:${old-tag} ${name}:${tag}

# 컨테이너 생성 및 시작
docker run -p ${local-port}:${container-port} ${image-id}
    # -d : detached mode
    # -it 
        # -i : interactive(컨테이너 내부로 입력 가능하게 함)
        # -t : tty (터미널 생성)
    # -rm : 컨테이너 종료시 자동 제거
    # --name ${custom-continaer-name}: 원하는 컨테이너 이름 식별자 부여

# 컨테이너 백그라운드 시작
docker start ${container-id}
    # -a : attached mode

# 특정 컨테이너 내부 명령어 실행
docker exec ${container-name} ${command}

# 컨테이너 제거
docker rm ${...container-name}

# 이미지 제거 (컨테이너에서 사용되지 않는 것만 삭제 가능)
docker rmi ${...image-id}

# 사용되지 않는 이미지 전부 제거
docker image prune

# 로그 보기
docker logs
    # -f : follow mode

'Notes > Docker' 카테고리의 다른 글

도커 컴포즈 명령어(docker-compose command)  (0) 2024.07.03
도커 허브 명령어(docker hub command)  (0) 2024.07.03

+ Recent posts