event etcd 集群运行在了 tmpfs 文件系统之上
1. 预留节点并安装 etcd(systemd 版)
选 1~3 台 master 节点(已有 etcd 集群之外),安装 etcd:
bash
# 以 Ubuntu 为例
apt update && apt install -y etcd
2. 创建 tmpfs 挂载点
bash
mkdir -p /var/lib/etcd-events
# 内存 2 GiB 足够,上限可再调
mount -t tmpfs -o size=2G,nr_inodes=1M,mode=700 tmpfs /var/lib/etcd-events
# 开机自动挂载
echo "tmpfs /var/lib/etcd-events tmpfs size=2G,nr_inodes=1M,mode=700 0 0" >> /etc/fstab
3. 生成 etcd-events systemd 单元
/etc/systemd/system/etcd-events.serviceini
[Unit]
Description=etcd-events on tmpfs
After=network.target
[Service]
Type=notify
ExecStart=/usr/bin/etcd \
--name etcd-events-0 \
--data-dir /var/lib/etcd-events \
--wal-dir /var/lib/etcd-events \
--listen-client-urls https://0.0.0.0:2399 \
--advertise-client-urls https://$(hostname -i):2399 \
--listen-peer-urls https://0.0.0.0:2398 \
--initial-advertise-peer-urls https://$(hostname -i):2398 \
--initial-cluster etcd-events-0=https://<node0-ip>:2398[,etcd-events-1=...,etcd-events-2=...] \
--initial-cluster-token etcd-events-cluster \
--initial-cluster-state new \
--cert-file=/etc/kubernetes/pki/etcd/server.crt \
--key-file=/etc/kubernetes/pki/etcd/server.key \
--trusted-ca-file=/etc/kubernetes/pki/etcd/ca.crt \
--client-cert-auth \
--peer-cert-file=/etc/kubernetes/pki/etcd/peer.crt \
--peer-key-file=/etc/kubernetes/pki/etcd/peer.key \
--peer-trusted-ca-file=/etc/kubernetes/pki/etcd/ca.crt \
--peer-client-cert-auth \
--snapshot-count 5000 \
--heartbeat-interval 100 \
--election-timeout 1000
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
证书直接复用现有 k8s etcd PKI 即可。
端口故意换成 2399/2398,避免和默认 etcd 2379/2380 冲突。
启动并设为开机自启:
bash
systemctl daemon-reload
systemctl enable --now etcd-events
4. 让 kube-apiserver 把 Event 单独指过去
编辑
/etc/kubernetes/manifests/kube-apiserver.yaml,在原有 --etcd-servers= 不变的前提下,新增一行:yaml
- --etcd-servers-overrides=/events#https://<node0-ip>:2399,https://<node1-ip>:2399,https://<node2-ip>:2399
时来天地皆同力,运去英雄不自由
浙公网安备 33010602011771号