728x90
먼저, 로그인!
이번 실습은 vmware로 시작.
Metallb
쿠버네티스 사용시 AWS,GCP,Azure와 같은 클라우드 플랫폼에서는 자체적으로 LB를 제공해주지만. 온프레미스 클러스터에서는 로드 밸런싱 기능을 제공하는 모듈을 추가적으로 설치해야 한다. MetalLB는 BareMetalLoadBalancer약자로 베어메탈 환경에서 사용할 수 있는 로드밸런서를 제공하는 오픈소스 프로젝트! 클라우드 환경의 서비스(로드밸런서)와는 동작이 조금 다르다. 서비스의 External IP 전파를 위해서 표준 프로토콜인 ARP(IPv4)/NDP(IPv6), BGP를 사용한다. 데몬셋으로 speaker 파드를 생성하여 External IP를 전파한다. |
git clone https://github.com/hali-linux/_Book_k8sInfra.git
--- metallb
# kubectl apply -f /root/_Book_k8sInfra/ch3/3.3.4/metallb.yaml
# kubectl get pods -n metallb-system -o wide
# vi metallb-l2config.yaml
apiVersion: v1
kind: ConfigMap
metadata:
namespace: metallb-system
name: config
data:
config: |
address-pools:
- name: nginx-ip-range
protocol: layer2
addresses:
- 172.25.0.157/32
- 172.25.0.158/32
- 172.25.0.159/32
# kubectl apply -f metallb-l2config.yaml
# kubectl describe configmaps -n metallb-system
최신 버전은 아니니.. 프로젝트시에 적용해보도록!
speaker가 바로 ip를 자동으로 부여할 수 있는 기능임.
외부에서 접속할 수 있도록 일종의 proxy역할!
config map이라는 자원을 metallb-system name space에 만들어줘.
ip 범위, ip 갯수, ip 주소 3가지 정보가 담겨있다.
# vi metallb-test2.yaml
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod2
labels:
app: nginx-pod2
spec:
containers:
- name: nginx-pod-container2
image: nginx
---
apiVersion: v1
kind: Service
metadata:
name: loadbalancer-service-pod2
spec:
type: LoadBalancer
# externalIPs:
# -
selector:
app: nginx-pod2
ports:
- protocol: TCP
port: 80
targetPort: 80
이제 자원정리!!
kubectl delete all --all --force
728x90
'Kubernetes' 카테고리의 다른 글
쿠버네티스 - GCP에서 이미지를 띄워서 쿠버네티스 해보기 (pv정적프로비저닝) (0) | 2024.02.19 |
---|---|
Kubernetes-volume (1) | 2024.02.19 |
쿠버네티스 3 (0) | 2024.02.05 |
쿠버네티스 2 (0) | 2024.02.02 |
쿠버네티스 1 (0) | 2024.02.01 |