我在两个 Ubuntu 20.04 系统上安装了 MicroK8s。一个被分配为 CP,我将第二个系统作为节点加入集群。
我正在尝试使用 syslog-ng 启动几个 pod,以消耗端口 UDP/514 上的 syslog 流量。我正在从外部系统生成一些合成 syslog 流量,以查看负载平衡的运行情况。但是,在任何给定时间,我只看到其中一个使用数据的 pod。以下是我的 yaml 文件:
apiVersion: apps/v1
kind: Deployment
metadata:
name: syslogng-server
labels:
app: syslogng-server
spec:
replicas: 2
selector:
matchLabels:
app: syslogng-server
template:
metadata:
labels:
app: syslogng-server
spec:
containers:
- name: syslogng-server
image: 'balabit/syslog-ng:3.25.1'
resources:
requests:
cpu: 10m
ports:
- containerPort: 514
name: udp
protocol: UDP
volumeMounts:
- name: config-volume
mountPath: /etc/syslog-ng/conf.d
volumes:
- name: config-volume
configMap:
name: syslogng-d
---
apiVersion: v1
kind: ConfigMap
metadata:
name: syslogng-d
labels:
app: syslogng-server
data:
syslogng-test.conf: |
##################################################
options {
create_dirs(yes);
owner(root);
group(root);
perm(0640);
dir_owner(root);
dir_group(root);
dir_perm(0750);
};
##################################################
source s_net {
tcp(ip(0.0.0.0) port(514));
udp(ip(0.0.0.0) port(514));
};
##################################################
destination d_host-specific {
file("/var/log/firewalls.log");
};
log {
source(s_net);
destination(d_host-specific);
};
---
apiVersion: v1
kind: Service
metadata:
name: syslogng-server-service
labels:
app: syslogng-server-service
spec:
selector:
app: syslogng-server
type: LoadBalancer
externalTrafficPolicy: Cluster
# loadBalancerIP is optional. MetalLB will automatically allocate an IP
# from its pool if not specified. You can also specify one manually.
# loadBalancerIP: x.y.z.a
ports:
- name: udp
protocol: UDP
port: 514
targetPort: 514
我希望看到两个 pod 都在积极地使用 syslog 数据,但事实并非如此。难道我做错了什么?感谢您的帮助。