1. 쿠버네티스 CNI (Container Network Interface)
- pod 안의 컨테이너는 localhost로 통신을 할 수 있음
- 원리는 도커 컨테이너가 시작될 때 만들어지는 veth0 가상네트워크 인터페이스가 생성되고,
veth0 인터페이스를 통하여 서로 같은 네트워크에 상에 존재 하기 때문
* 이슈 : 여러 개의 노드가 생성 될 경우 (ex: master, node1, node2)
- 위의 이슈를 가정해본다 하면 자체적으로 veth 네트워크 인터페이스로 통신은 가능하지만
노드 끼리의 통신은 불가능한 상황이 발생
- 노드 끼리 통신을 위한 네트워크 구성을 별도로 만들어야 하는 상황 (오버레이 네트워크)
* 오버레이 네트워크 : 실제 노드 간의 네트워크 위에 별도 Flat한 네트워크를 구성
쿠버네티스는 자체적으로 네트워크 구성을 해주지 않기 때문에 클러스터를 구성할 때 CNI 플러그인을 함께 설치해 야 한다.
- 대표 적인 CNI 플러그인 : Flannel, Calico
2. 쿠버네티스 DNS
- 쿠버네티스에서는 클러스터 내부에서 사용 가능한 DNS를 설정하여 사용할 수 있습니다.
그래서 POD간 통신을 할 때 IP가 아닌 도메인을 설정하고 사용할 수 있습니다.
- 클러스터에서 도메인 사용하기
. 쿠버네티스에서 사용하는 내부 도메인은 일정한 패턴을 보유
. 구조 : 'NS'.'Service'.svc.cluster.local
NS = 네임스페이스 (AQUA)
Service =등록한 서비스 (AQUA-WEB)
svc.cluster.local = 기본 도메인 (쿠버네티스 도메인)
. EX: dns-test.yaml
3. 쿠버네티스 SERVICE
- Pod의 경우 IP가 랜덤하게 지정이 되고 재시작이 될 경우 변하기 때문에 고정 엔드포인트 호출이 어렵다. 또한
여러 POD에 같은 APP을 운용할 경우 POD간 로드 밸런싱을 지원해야 하는데 서비스는 이러한 역할을 하게 된다.
- Service Type (크게 4종류)
1) ClusterIP : 기본 설정으로 서비스에 클러스터 IP를 할당, 외부IP가 없기에 접근 불가
2) NodePort : 모든 노드의 IP + PORT를 사용하여 외부 접근이 가능
3) LoadBalancer : 외부 IP를 할당하여 외부 접근을 사용
4) External name : 외부서비스를 쿠버네티스 내부에서 호출하고자 할 때 사용
ex:
- 그 외 서비스
ExternalIP: externalIPs : 192.168.222.50 입력 하여 직접 IP를 할당
headless service, dns 등등 존재
4. 쿠버네티스 Ingress
- 쿠버네티스 CNI Addon 종류중 하나, 외부에서 쿠버네티스에 실행중인 deploy와 service에 접근하기 위한 관문(Gateway) 역할
ingress : 외부에서 내부로 유입되는 네트워크 트래픽
- Ingress 기능
1) 외부에서 접근 가능한 URL을 사용 할 수 있음 (HOSTING이 되어 있어야함)
2) 트래픽 로드밸런싱
3) SSL 인증서 처리
4) PATH-BASED ROUTING (도메인 기반으로 호스팅 제공)
5) SSL/TLS Termination
6) virtual hosts
- Ingress, Ingress controller
쿠버네티스에서 Ingress를 사용하기 위해서 두 가지가 필요
. Ingress 오브젝트
. Ingress가 적용될 Controller
- MetalLB (쿠버네티스 Addon) – LoadBalancer 환경의 Ingress
Ingress 요청을 위한 Service Type은 Loadbalancer Type을 사용
On-Premise 환경은 운영중인 Ingress를 직접 구축해야 되어 MetalLB를 사용 할 수 있음
url : https://ikcoo.tistory.com/16 (Ingress 상세설명)
- MetalLB 구조
'Kubernetes > Kubernetes 사용법' 카테고리의 다른 글
Argocd-github 연결 (0) | 2022.12.12 |
---|---|
Istio 모니터링 (feat. nginx) (0) | 2022.12.08 |
Ingress 에 cert-manager 연결 (0) | 2022.12.05 |