記事ディレクトリ
1. サーバーの準備
ノード名 | マシンIP | OSバージョン | ハプロキシのバージョン |
---|---|---|---|
ノード1 | 192.168.0.145 | 7.9セント | ハプロキシ-2.6.1 |
ノード2 | 192.168.0.200 | 7.9セント | ハプロキシ-2.6.1 |
ノード3 | 192.168.0.233 | 7.9セント | ハプロキシ-2.6.1 |
2.haproxy のインストールと展開
上記 3 台のマシンに haproxy サービスをデプロイし、各マシンで次の操作を実行します。
2.1 パラメータの調整
- 基本的な環境設定 /etc/sysctl.conf 設定ファイルを変更し、次の内容をファイルに追加します
net.ipv4.ip_nonlocal_bind=1
/etc/sysctl.conf ファイルを保存した後、コマンドラインで実行します。
sysctl -p
2.2 haproxy ソースコードをダウンロードする
su - root
cd /opt
wget https://www.haproxy.org/download/2.6/src/haproxy-2.6.1.tar.gz
- haproxy サービスをコンパイルしてインストールする
cd /opt
tar -xvf haproxy-2.6.1.tar.gz
cd haproxy-2.6.1
make clean
make -j $(nproc) TARGET=linux-glibc USE_OPENSSL=1
make install
- haproxy 初期化構成
cd /opt/haproxy-2.6.1
mkdir /etc/haproxy
cp examples/basic-config-edge.cfg /etc/haproxy/haproxy.cfg
cp examples/haproxy.init /etc/init.d/haproxy
chmod +x /etc/init.d/haproxy
ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
mkdir /usr/share/haproxy
- haproxy ビジネス ルール設定 haproxy ビジネス ルール設定ファイルは /etc/haproxy/haproxy.cfg にあります。構成ファイルの内容を次のように設定します。
global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
maxconn 8192
chroot /usr/share/haproxy
user root
group root
daemon
# default settings common to all HTTP proxies below
defaults http
mode http
option httplog
log global
option dontlognull
maxconn 8192
timeout client 1m
timeout server 1m
timeout connect 10s
timeout http-keep-alive 2m
timeout queue 15s
timeout tunnel 4h # for websocket
frontend k8sfrontend
bind 192.168.0.110:8443
mode tcp
option tcplog
tcp-request inspect-delay 5s
default_backend k8scluster
backend k8scluster
mode tcp
option tcplog
option tcp-check
balance roundrobin
default-server inter 10s downinter 5s rise 2 fall 2 slowstart 60s maxconn 250 maxqueue 256 weight 100
server k8s-cluster-145 192.168.0.145:6443 check
server k8s-cluster-200 192.168.0.200:6443 check
上記の設定では、192.168.0.110 が keepalived の vip です。192.168.0.200:6443 および 192.168.0.145:6443 は、負荷分散する必要があるバックグラウンド サービスのアドレス情報であり、後続の kube-spiserver ポート アドレスです。
2.3 haproxyサービスを開始する
systemctl enable haproxy
systemctl start haproxy
サービスが開始されると、haproxy は 8443 を通じて負荷分散サービスを開始します。192.168.0.1108443 に対して開始されたアクセスは、192.168.0.200:6443、192.168.0.145:6443 のサービスに対して自動的に負荷分散されます。
2.4 サービスステータスの確認
systemctl status haproxy
3. 負荷分散アプリケーション
/etc/haproxy/haproxy.cfg にメンテナンス構成情報を追加して、HAProxy がより多くのサービスにロード バランシング サービスを提供できるようにします。