mirror of https://github.com/easzlab/kubeasz.git
practice: 容器化系统服务haproxy/chrony
parent
eb6ff79735
commit
c662ba1df6
|
@ -0,0 +1,141 @@
|
|||
# 容器化系统服务
|
||||
|
||||
## 容器化 haproxy
|
||||
|
||||
本例使用 [docker hub 官方](https://github.com/docker-library/haproxy) 维护的 haproxy 镜像;haproxy 配置举例如下
|
||||
|
||||
```
|
||||
global
|
||||
log stdout format raw local1 notice
|
||||
nbproc 1
|
||||
|
||||
defaults
|
||||
log global
|
||||
timeout connect 5s
|
||||
timeout client 10m
|
||||
timeout server 10m
|
||||
|
||||
listen apiservers
|
||||
bind 0.0.0.0:6443
|
||||
mode tcp
|
||||
option tcplog
|
||||
option dontlognull
|
||||
option dontlog-normal
|
||||
balance roundrobin
|
||||
server 192.168.1.1 192.168.1.1:6443 check inter 10s fall 2 rise 2 weight 1
|
||||
server 192.168.1.2 192.168.1.2:6443 check inter 10s fall 2 rise 2 weight 1
|
||||
```
|
||||
|
||||
在 systemd 系统上编写服务文件如下 /etc/systemd/system/haproxy.service
|
||||
|
||||
```
|
||||
[Unit]
|
||||
Description=haproxy
|
||||
Documentation=https://github.com/docker-library/haproxy
|
||||
After=docker.service
|
||||
Requires=docker.service
|
||||
|
||||
[Service]
|
||||
User=root
|
||||
ExecStart=/bin/docker run \
|
||||
--name haproxy \
|
||||
--publish 6443:6443 \
|
||||
--volume /etc/haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg \
|
||||
docker.io/library/haproxy:1.9.8-alpine
|
||||
ExecStop=/bin/docker rm -f haproxy
|
||||
ExecReload=/bin/docker kill -s HUP haproxy
|
||||
Restart=always
|
||||
RestartSec=10
|
||||
Delegate=yes
|
||||
LimitNOFILE=50000
|
||||
LimitNPROC=50000
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
|
||||
## 容器化 chrony
|
||||
|
||||
- chrony 服务器端配置(假设chrony服务器端192.168.1.1)
|
||||
|
||||
```
|
||||
$ cat /etc/chrony.conf
|
||||
# Use public servers from the pool.ntp.org project.
|
||||
server ntp1.aliyun.com iburst
|
||||
server ntp2.aliyun.com iburst
|
||||
pool pool.ntp.org iburst
|
||||
|
||||
# Ignor source level
|
||||
stratumweight 0
|
||||
|
||||
# Record the rate at which the system clock gains/losses time.
|
||||
driftfile /var/lib/chrony/drift
|
||||
|
||||
# Allow the system clock to be stepped in the first five updates
|
||||
# if its offset is larger than 1 second.
|
||||
makestep 1 5
|
||||
|
||||
# Enable kernel synchronization of the real-time clock (RTC).
|
||||
rtcsync
|
||||
|
||||
# Allow NTP client access from local network.
|
||||
allow 0.0.0.0/0
|
||||
|
||||
# Serve time even if not synchronized to a time source.
|
||||
local stratum 10
|
||||
|
||||
# Select which information is logged.
|
||||
#log measurements statistics tracking
|
||||
|
||||
#
|
||||
noclientlog
|
||||
```
|
||||
- chrony 客户端配置
|
||||
|
||||
```
|
||||
$ cat /etc/chrony.conf
|
||||
# Use local chrony server.
|
||||
server 192.168.1.1 iburst
|
||||
|
||||
# Record the rate at which the system clock gains/losses time.
|
||||
driftfile /var/lib/chrony/drift
|
||||
|
||||
# Allow the system clock to be stepped in the first five updates
|
||||
# if its offset is larger than 1 second.
|
||||
makestep 1 5
|
||||
|
||||
# Enable kernel synchronization of the real-time clock (RTC).
|
||||
rtcsync
|
||||
|
||||
# Select which information is logged.
|
||||
#log measurements statistics tracking
|
||||
```
|
||||
|
||||
- 在 systemd 系统上编写服务文件如下 /etc/systemd/system/chrony.service
|
||||
|
||||
```
|
||||
[Unit]
|
||||
Description=chrony
|
||||
Documentation=https://github.com/kubeasz/dockerfiles/chrony
|
||||
After=docker.service
|
||||
Requires=docker.service
|
||||
|
||||
[Service]
|
||||
User=root
|
||||
ExecStart=/opt/kube/bin/docker run \
|
||||
--cap-add SYS_TIME \
|
||||
--name chrony \
|
||||
--network host \
|
||||
--volume /etc/chrony.conf:/etc/chrony/chrony.conf \
|
||||
--volume /var/lib/chrony:/var/lib/chrony \
|
||||
easzlab/chrony:0.1.0
|
||||
ExecStartPost=/sbin/iptables -t raw -A PREROUTING -p udp -m udp --dport 123 -j NOTRACK
|
||||
ExecStartPost=/sbin/iptables -t raw -A OUTPUT -p udp -m udp --sport 123 -j NOTRACK
|
||||
ExecStop=/opt/kube/bin/docker rm -f chrony
|
||||
Restart=always
|
||||
RestartSec=10
|
||||
Delegate=yes
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
Loading…
Reference in New Issue