feat: custom docker container for haproxy with k8s ha configuration
This commit is contained in:
parent
0fd74b291c
commit
c6aba07046
3
Dockerfile
Normal file
3
Dockerfile
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
FROM haproxy:2.5.0-alpine3.15
|
||||||
|
|
||||||
|
COPY haproxy.cfg /usr/local/etc/haproxy/haproxy.cfg
|
25
Makefile
Normal file
25
Makefile
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
.PHONY: imageHaproxy
|
||||||
|
|
||||||
|
REGISTRY_IP=docker.registry
|
||||||
|
# linux/arm/v7
|
||||||
|
# linux/arm/v6
|
||||||
|
# linux/arm64
|
||||||
|
# linux/amd64
|
||||||
|
PLATFORM=linux/arm64
|
||||||
|
#OCI_CLI=nerdctl
|
||||||
|
OCI_CLI=docker
|
||||||
|
#OCI_CLI_BUILD=$(OCI_CLI)
|
||||||
|
OCI_CLI_BUILD=$(OCI_CLI) buildx
|
||||||
|
|
||||||
|
## build
|
||||||
|
|
||||||
|
shell_build_image = $(OCI_CLI_BUILD) build --platform $(PLATFORM) -t $(REGISTRY_IP):5000/$(1) .; \
|
||||||
|
$(OCI_CLI) push $(REGISTRY_IP):5000/$(1);
|
||||||
|
|
||||||
|
imageHaproxy:
|
||||||
|
$(call shell_build_image,haproxy-k8s)
|
||||||
|
|
||||||
|
## management
|
||||||
|
|
||||||
|
status:
|
||||||
|
@curl -s $(REGISTRY_IP):5000/v2/_catalog | jq
|
6
README.md
Normal file
6
README.md
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
# docker haproxy for High availability k8s control plan
|
||||||
|
|
||||||
|
docker container for haproxy deployment as container
|
||||||
|
|
||||||
|
based on official haproxy image https://hub.docker.com/_/haproxy?tab=description&page=1&ordering=last_updated&name=2.5
|
||||||
|
inspired from https://github.com/kubernetes/kubeadm/blob/main/docs/ha-considerations.md#keepalived-and-haproxy
|
37
haproxy.cfg
Normal file
37
haproxy.cfg
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
global
|
||||||
|
log /dev/log local0
|
||||||
|
log /dev/log local1 notice
|
||||||
|
daemon
|
||||||
|
|
||||||
|
defaults
|
||||||
|
mode http
|
||||||
|
user haproxy
|
||||||
|
group haproxy
|
||||||
|
log global
|
||||||
|
option httplog
|
||||||
|
option dontlognull
|
||||||
|
option http-server-close
|
||||||
|
option forwardfor except 127.0.0.0/8
|
||||||
|
option redispatch
|
||||||
|
retries 1
|
||||||
|
timeout http-request 10s
|
||||||
|
timeout queue 20s
|
||||||
|
timeout connect 5s
|
||||||
|
timeout client 20s
|
||||||
|
timeout server 20s
|
||||||
|
timeout http-keep-alive 10s
|
||||||
|
timeout check 10s
|
||||||
|
|
||||||
|
frontend apiserver
|
||||||
|
bind *:6443
|
||||||
|
mode tcp
|
||||||
|
option tcplog
|
||||||
|
default_backend apiserver
|
||||||
|
|
||||||
|
backend apiserver
|
||||||
|
option httpchk GET /healthz
|
||||||
|
http-check expect status 200
|
||||||
|
mode tcp
|
||||||
|
option ssl-hello-chk
|
||||||
|
balance roundrobin
|
||||||
|
server worker-4 100.105.163.73:6443 check
|
Loading…
Reference in New Issue
Block a user