별도의 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


테스트
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>