Kubernetes service LoadBalancer

jaeyeon ha·2026년 3월 7일

[교육] Kubernetes

목록 보기
26/34

LoadBalancer

별도의 loadbalancer 장치를 이용하여 접근

[root@master ~/kube/08/loadbalancer]# vi nginx-loadbalancer.yaml
[root@master ~/kube/08/loadbalancer]# cat nginx-loadbalancer.yaml
apiVersion: v1
kind: Service
metadata:
name: nginx-loadbalancer
spec:
type: LoadBalancer
clusterIP: 10.233.10.10
selector:
	app: webui
ports:
- protocol: TCP
	port: 80
	targetPort: 80
	nodePort: 30000
[root@master ~/kube/08/loadbalancer]# kubectl apply -f nginx-loadbalancer.yaml
service/nginx-loadbalancer created
[root@master ~/kube/08/loadbalancer]# kubectl get svc,ep,pod
NAME                         TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE
service/kubernetes           ClusterIP      10.233.0.1     <none>        443/TCP        5h34m
service/nginx-loadbalancer   LoadBalancer   10.233.10.10   <pending>     80:30000/TCP   24s

NAME                           ENDPOINTS                                           AGE
endpoints/kubernetes           192.168.2.60:6443                                   5h34m
endpoints/nginx-loadbalancer   10.233.102.172:80,10.233.71.38:80,10.233.75.61:80   24s

NAME                               READY   STATUS    RESTARTS   AGE
pod/nginx-deploy-9cc457697-8bjql   1/1     Running   0          16m
pod/nginx-deploy-9cc457697-gq5fd   1/1     Running   0          16m
pod/nginx-deploy-9cc457697-lrks7   1/1     Running   0          16m

LoadBalancer 노드에 haproxy 설치 및 설정

[root@loadbalancer /root]# yum install -y haproxy
[root@loadbalancer /root]# vi /etc/haproxy/haproxy.cfg
---
frontend main
	bind *:80 ▶ 80으로 변경
backend app ▶ nodeIP:lbport로 변경
	server app1 192.168.2.61:30000 check
	server app2 192.168.2.62:30000 check
	server app3 192.168.2.63:30000 check
[root@loadbalancer /root]# systemctl enable haproxy
Created symlink /etc/systemd/system/multi-user.target.wants/haproxy.service → /usr/lib/systemd/system/haproxy.service.
[root@loadbalancer /root]# systemctl start haproxy

image.png

image.png

테스트

loadbalancer IP로 접근

[root@master ~/kube/08/loadbalancer]# curl <http://192.168.2.80>
<h1>#3# TEST Page</h1>
[root@master ~/kube/08/loadbalancer]# curl <http://192.168.2.80>
<h1>#1# TEST Page</h1>
[root@master ~/kube/08/loadbalancer]# curl <http://192.168.2.80>
<h1>#1# TEST Page</h1>
[root@master ~/kube/08/loadbalancer]# curl <http://192.168.2.80>
<h1>#3# TEST Page</h1>

0개의 댓글