Infra

손경현·2024년 10월 16일

1. Bluemax client

SSL VPN

  • CA 인증서 다운로드
  • 클라이언트 설치
    • CA 인증서 설정
    • ID / PW 설정
  • 클라이언트 실행

2. bastion 을 통한 서버 접속

  • pem 키 필요 -> ssh 접속

  • 방법 1: SSH를 사용한 수동 연결
    Bastion 호스트에 SSH로 접속

    먼저, Bastion 호스트에 접속합니다. 로컬 컴퓨터에서 다음 명령을 사용합니다:

    ssh -i /path/to/bastion_key.pem user@bastion_ip
    • /path/to/bastion_key.pem: Bastion 호스트에 연결할 때 사용할 pem 파일 경로.
    • user: Bastion 호스트의 사용자 이름.
    • bastion_ip: Bastion 호스트의 IP 주소.
  • WARNING: UNPROTECTED PRIVATE KEY FILE!
    Permissions 0644 for 'dpgtb.pem' are too open.
    It is required that your private key files are NOT accessible by others.
    This private key will be ignored.
    Load key "dpgtb.pem": bad permissions

    • 해결 방법
      SSH가 프라이빗 키 파일의 권한이 너무 넓게 설정되어 있어 보안 문제가 발생할 수 있다는 경고입니다. pem 파일에 대해 올바른 권한을 설정해야 SSH가 이를 인식할 수 있습니다.
    chmod 400 dpgtb.pem

    -> dpgtb.pem 파일을 소유자만 읽을 수 있도록 설정

3. DB 서버 접속

4. Docker image

1. 이미지 생성

docker buildx build -t <repository>:<tag> .
  • 이미지 삭제
docker rmi <image_name_or_id>
  • 모든 이지미 삭제
docker rmi $(docker images -q)

2. 로컬 테스트

이미지 실행

docker run -p 8000:8000 <이미지 REPOSITORY>:<이미지 TAG>

이미지 목록 확인

docker images

사용하지 않는 컨테이너, 네트워크 삭제

docker system prune

컨테이너 상태 확인

  • 실행중
docker ps
  • 모든 컨테이너 (중지된 것 포함)
docker ps -a

컨테이너 중지

docker stop <컨테이너_ID 또는 컨테이너_이름>
  • 모든 컨테이너 중지
docker stop $(docker ps -aq)

컨테이너 삭제

docker rm <container_id_or_name>
  • 모든 컨테이너 삭제
docker rm $(docker ps -aq)

도커 빌더 캐시 삭제

docker buildx prune -a

4. NHN Container Registry

https://docs.nhncloud.com/ko/Container/NCR/ko/user-guide/

1. NHN Cloud Container Registry 로그인

다음 명령어로 Docker 레지스트리에 로그인

docker login {NHN_CLOUD_REGISTRY_URI}
docker login {URI} -u {User Access Key ID} -p {Secret Access Key}

2. 이미지 푸시/풀

로그인이 완료되면, Docker 이미지를 NHN Cloud Container Registry로 푸시하거나 풀 수 있습니다.

이미지 태깅:

docker tag {LOCAL_IMAGE_NAME} {NHN_CLOUD_REGISTRY_URI}/{PROJECT_NAME}/{IMAGE_NAME}:{TAG}

이미지 푸시:

docker push {NHN_CLOUD_REGISTRY_URI}/{PROJECT_NAME}/{IMAGE_NAME}:{TAG}

이미지 풀:

docker pull {NHN_CLOUD_REGISTRY_URI}/{PROJECT_NAME}/{IMAGE_NAME}:{TAG}

이 방법을 통해 NHN Cloud Container Registry에 접근하고 Docker 이미지를 관리할 수 있습니다.

5. K8s 구성

yaml 파일 작성

1. pod

2. service

3. Ingress

4. yaml 파일 변경 사항 적용

kubectl apply -f <yaml-file-name>.yaml

5. deployment 로그 보기

kubectl describe deployment <deployment-name>

??

  • ssh

  • bastion

  • pem

  • k8s

    • deploy 가 파드를 계속 생성하므로 파드 생성이 안되게 할려면 deploy 를 삭제해줘야함

    • name space 에 따라 get 을 했을때 보이지 않을 수 있으므로 -n [namespace] 옵션을 잘쓰자

    • 관계성
      deploy -> replicas -> pod

profile
개린이

0개의 댓글