도커 데스크탑 쿠버네티스 환경 wsl-host-k8s 네트워크 구성도
설명
윈도우환경에서 도커로 대표되는 컨테이너 개념과 쿠버네티스 기술을 사용하기 위한 여러가지 방법이 존재한다.
그 중 WSL2와 Docker Desktop을 통해서 Kubernetes를 사용하는 방법이 있는데,
이 경 기본적으로 쿠버네티스 싱글 노드가 구축되고 리눅스 커널을 사용하게 된다.
host인 윈도우와 wsl2 환경인 리눅스, 그리고 쿠버네티스 환경까지 총 3가지 환경을 다루게 되고,
서로 다른 환경에 구축된 프로그램들끼리 통신을 해야 할 필요성이 있다.
이 때 윈도우의 Host Network Adapter인 localhost가 바로 그 중심에서 다리 역할을 수행한다.
사용 예제
1. 윈도우환경에 0.0.0.0:1521 로 동작 중인 데이터베이스를 리눅스나 쿠버네티스에서 접속할 경우
- 리눅스 → 윈도우: localhost
- ex. jdbc:oracle:thin@0.0.0.0:1521:xe
- 쿠버네티스 → 윈도우 : Host(Windows PC) IP
- ex. jdbc:oracle:thin@192.168.0.2:1521:xe
2. 리눅스환경에 0.0.0.0:30000 로 Listen 중인 TCP 엔드포인트를 윈도우나 쿠버네티스에서 접속할 경우
- 윈도우 → 리눅스 : localhost
- ex. telnet 127.0.0.1 30000
- 쿠버네티스 → 리눅스 : Host( Windows PC ) IP
- ex. telnet 192.168.0.2 1521
- 윈도우 netsh 포트포워딩 필요
- ex. netsh interface portproxy add v4tov4 listenport=8629 listenaddress=192.168.172.30 \
connectport=8629 connectaddress=127.0.0.1
3. 쿠버네티스환경에 0.0.0.0:8080 로 서비스 중인 api서버를 윈도우나 리눅스에서 접속할 경우
- 쿠버네티스 Service의 포트포워딩 필요
- ex. port: 8080
nodePort: 30080
targetPort: 8080
- 쿠버네티스 Service의 type이 LoadBalancer인 경우 외부 IP로 localhost가 기본적으로 제공 됨
- ex. type: LoadBalancer
- 윈도우 → 쿠버네티스 : localhost
- ex. http://localhost:8080/v1/api
- 리눅스 → 쿠버네티스 : localhost
- ex. http://localhost:8080/v1/api
'알아두면 좋은 IT 지식 > General' 카테고리의 다른 글
AWS 프리티어 EC2 인스턴스 리눅스 서버 무료로 사용하기 (1) (0) | 2024.05.02 |
---|---|
WSL Docker Desktop Kubernetes Volume Architecture - 윈도우 도커 데스크탑 쿠버네티스 저장소 구성 (0) | 2024.02.06 |
WSL2 Docker CentOS 컨테이너 초기세팅 및 이미지 만들기 - 무작정 따라하기 (2) (1) | 2024.01.01 |
WSL2 Docker Desktop CentOS 컨테이너 생성 - 무작정 따라하기 (1) (4) | 2023.12.30 |
리눅스 vi 명령어 필수 사용법 - 실제 사용 팁 (0) | 2022.08.31 |