다른 카테고리와 다르게 정말 혼자 실습 연습해보면서 기록하기 때문에
굉장히 편한 어투와 말투 !
지식을 공유한다는 느낌보다는 일기장 같은 느낌일 것!
지식을 원하신다면,, 다른 포스팅으로..
이전까지 bastion 서버에서 설정을 하고있었는데
설정을 하다보니 자꾸 맘에 걸리는게 있어 해당 부분을 확인했다
DNS 서버에 모든 서버가 먼저 연결되어있는가?
디테일하게 서버별 참고할 문서가 없을까? 정도였는데
Openshift4.7 Baremetal 설치 - Restricted Network - 호롤리한 하루
Openshift4.7 Baremetal 설치 - Restricted Network
Overview 작년에 Openshift 4.3에대한 baremetal UPI방식, 그리고 폐쇄망에서의 설치에 대해서 기술한 적이 있습니다. Openshift4.3 Installation on Baremetal Openshift4.3 Baremetal 설치 - Restricted Network 시간이 지나면서
gruuuuu.github.io
대리님 통해서 이거 참고했었다는 이야기로(정말 자세하게 나와있다!)
한번 작성해보자 아자자
그래서 여기 나온 순서대로 L/B부터 만들고자 한다ㅎㅎ
fedora core가 아닌 RHOSH를 구성할거라 아마 참고하는 정도로 사용할 수 있지 않을까 싶다
1) LoadBalancer 로 사용할 서버를 준비한다
2) haproxy 설치
dnf install -y gcc make openssl openssl-devel pcre-devel systemd-devel wget
haproxy에 필요한 패키지를 깔아 준 후
wget http://www.haproxy.org/download/2.4/src/haproxy-2.4.2.tar.gz
tar xvf haproxy-2.4.2.tar.gz
3) 설치 옵션 설정
make TARGET=linux-glibc USE_OPENSSL=1 USE_PCRE=1 USE_ZLIB=1 USE_SYSTEMD=1
그럼 포스팅에선 이런식으로 나온다고 하셨는데...
##################
여기서 또다시 의문의 오류들 발생! 이번엔 따로 다루지 않고 같이 여기 작성해둘 예정!
# 1
Makefile이 없어서 생기는 메세지로,
내가 잘 보고 들어갔어야하는데 해당 명령을 수행하는 디렉터리 지정이 잘못되어있었다
haproxy-2.4.2 디렉터리 안으로 들어가 수행했어야했음!
#2
zlib.h 헤더 파일이 없어서 빌드에 실패한 상태이다.
의존성 문제라고 볼 수 있음!
이렇게 해당 패키지를 설치해주면 문제 해결이다!
#3
해당 부분은 OpenSSL 관련 경고와 함께 실제 빌드 에러가 발생한 상태이다.
단순히 DH_free() 함수가 OpenSSL 3.0부터 deprecated(더 이상 권장되지 않음) 되었다는 것이고,
문제는 이 것 때문에 오류가 나는 점!
결론적으로 쉽게 말하자면 버전차이로 인한 호환성 문제였다.
해당 부분을 haproxy 디렉터리로 클로닝하고
해당 버전에서 다시 설치 옵션을 지정해주면
등등 이렇게 성고옹 한다!
4) 설치확인
haproxy -v
5) template를 다운받아 서비스 등록
wget https://raw.githubusercontent.com/haproxy/haproxy/master/admin/systemd/haproxy.service.in -O /etc/systemd/system/haproxy.service
6) haproxy의 sbin 경로 재설정
해당 디폴트 값을
이렇게 바꿔준다(경로 변경)
7) haproxy 관련 디렉터리 생성
sudo mkdir -p /etc/haproxy
sudo mkdir -p /var/log/haproxy
sudo mkdir -p /etc/haproxy/certs
sudo mkdir -p /etc/haproxy/errors/
8) config 파일 생성
vi /etc/haproxy/haproxy.cfg
----------------------------
global
daemon
# transmit UDP to rsyslog
log 127.0.0.1 local0
defaults
log global
timeout connect 5s
timeout client 50s
timeout server 50s
frontend kubernetes_api_F
bind 0.0.0.0:6443
default_backend kubernetes_api_B
option tcplog
backend kubernetes_api_B
balance roundrobin
server bastion www.bastion.example.com:6443 check
server master1 www.master1.example.com:6443 check
server master2 www.master2.example.com:6443 check
server master3 www.master3.example.com:6443 check
frontend machine_config_F
bind 0.0.0.0:22623
default_backend machine_config_B
option tcplog
backend machine_config_B
balance roundrobin
server bastion www.bastion.example.com:22623 check
server master1 www.master1.example.com:22623 check
server master2 www.master2.example.com:22623 check
server master3 www.master3.example.com:22623 check
frontend router_https_F
bind 0.0.0.0:443
default_backend router_https_B
backend router_https_B
balance roundrobin
server worker1 www.worker1.example.com:443 check
server worker2 www.worker2.example.com:443 check
frontend router_http_F
mode http
bind 0.0.0.0:80
default_backend router_http_B
backend router_http_B
mode http
balance roundrobin
server worker1 www.worker1.example.com:80 check
server worker2 www.worker2.example.com:80 check
frontend ocp_registry_F
bind 0.0.0.0:5000
default_backend ocp_registry_B
option tcplog
backend ocp_registry_B
server bastion 192.168.192.101:5000 check
이래도 괜찮다! 각 노드가 아직 켜져있지 않기 때문에 뜨는 warning이라고 한댜
enable 설정해주고
haproxy.cfg가 정상 작동하고 다른 설정 충돌이 없는지 재확인해준다
응답이 따로 없으면 정상!
9-1) haproxy log 설정
rsyslog에 haproxy용 로그 설정(UDP전송)
vim /etc/rsyslog.d/haproxy.conf
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
$template Haproxy, "%msg%\n"
#local0.* /var/log/haproxy/haproxy.log
local0.=info /var/log/haproxy/haproxy-info.log;Haproxy
local0.notice /var/log/haproxy/haproxy-allbutinfo.log
# rsyslog는 시간 및 데몬 이름 등의 정보가 prepend 되기 때문에 essage를 haproxy-info.log에만 적용할 수 있도록 변수를 지정해준다.
# 모든 haproxy 로그를 남기려면 주석을 풀어주면 되지만 너무 많은 access log가 기록되기 때문에 주석처리해둠
# local0.=info를 통해 haproxy에서 에러로 처리된 로그만 기록하게 함
# haproxy 를 재시작 할 경우 시스템 메세지를 기록하 ㄹ수 있도록 local0.notice를 적용
9-2) 로그 회전주기 설정(데이터 관리)
$ vim /etc/logrotate.d/haproxy
/var/log/haproxy/*log {
daily
rotate 90
create 0644 nobody nobody
dateext
missingok
notifempty
compress
sharedscripts
postrotate
/bin/systemctl restart rsyslog.service > /dev/null 2>/dev/null || true
endscript
}
# logrotate는 회전 주기 관리 서비스임
9-3) rsyslog 재시작
haproxy에서 설정한 포트가 정상적으로 listen 중인지 확인해준다
+++
방화벽 테스트는 접어두고 다 비활성화하는걸로 했다
+++
이렇게 기본적인 L/B 설정 ,,, 끝!!
기나긴.. 여정이었다!
OpenShift 준비하기 : RHCOS 이미지 캐시 만들기 (0) | 2025.04.02 |
---|---|
OpenShift 준비하기 : OpenShift Container Platform 설치 (0) | 2025.04.02 |
OpenShift 준비하기 : OpenShift? (0) | 2025.04.02 |