首先是,HomeLab 上起了个 K8S 集群,Master 用了一台 Phicomm N1 ,Worker 用 ESXi 起了两台 8C16G 的 Ubuntu 的 VM 。配合 TrueNAS 提供 NFS 、MySQL 作为 Storage 跑了几个应用。
Phicomm N1 装完 Master 的时候感觉这小身板还是能跑得动的。直到我用 Helm 试图装 Prometheus 全家桶的时候,我就知道错了……负载满了,然后炸 swap ,被迫重启。虽然 N1 上有 taint 不会调度应用 Pod ,controller-manager 和 scheduler 半年均重启了 800+次。
N1 的表现让我不得不重新整合一下资源。重新收拾了一下 ESXi 的机器,包括将 TrueNAS 拆回物理机部署,以及将原来的两个 Worker delete 掉,直接物理机部署 Ubuntu ,作为 Master 重新加入进集群。去掉新机器上 NoSchedule 的 taint 后,整个集群又可以欢快的跑起来了。
现在最危险的操作就是如何下掉 Phicomm N1 这个 Master 了。不敢贸然的直接 delete node ,不了解是否会有问题。主要是不了解是否需要重新签发证书,去避免原有的 n1 这个域名不可用带来集群不可用。
N1 这类羸弱的 4 核 A53+2G 规格显然是吃不消 Kubernetes 这类应用的。是否有比较合适的用途?目前有在考虑准备拿来当 Ceph 的 Mon 节点,凑数做一些 Quorum 工作。或者说如何能在 Kubernetes 上仅跑跑 etcd 之类的?
1
ccde8259 OP 能猜到的几个改动点:
1. configmap 里 kubeadm-config 里有个 controlPlaneEndpoint 需要调整 2. configmap 里 kube-proxy 里有个 clusters[0].cluster.server 需要调整 2. /etc/kubernetes/pki 下的 apiserver.crt 、etcd/peer.crt 、etcd/server.crt 三本证书要改 |
2
Ansen 2022-10-11 23:59:00 +08:00 via iPhone
目前有几个 master ? 你可以尝试断掉 n1 的网络,看看集群正常不,
|
3
ccde8259 OP @Ansen
1. 双 master 2. N1 炸过重启过一次,N1 失效期间应用 Pod 正常访问,但 kubectl 无法使用,修改.kube/config 到新 master 上无效。 3.想起来可能是因为 etcd 的 quorum 不可能成功。所以 N1 失效以后,猜测 kubelet 把 pod 全 restart 了一遍…… |
4
i4t 2022-10-12 01:37:02 +08:00
你直接在 esxi 上新建一个 master ,我理解这样就可以解决了。 二进制的话比较麻烦,证书要全部修改,如果只是 kubeadm 的方式,直接 kubeadm join master 就可以
|
5
DAPTX4869 2022-10-12 08:47:53 +08:00
2g 内存敢上 k8s...
|
6
hzfyjgw 2022-10-12 09:24:30 +08:00
N1 换 k3s 集群 试试
|
7
wellsc 2022-10-12 09:58:44 +08:00
Prometheus eat much memory and disk io
|
9
ccde8259 OP 作死操作了一下猜想的前两条,把 configmap 里的配置改完以后集群没啥问题。
观察到另一台 master 里面的 /etc/kubernetes/manifests/etcd.yaml 配置上有点问题:initial-cluster 包含两台 etcd 配置。 但是另一台 master 里面的 apiserver.crt 、etcd/peer.crt 、etcd/server.crt 三本证书 CN 是对的。 这让我对于踢掉 n1 这台 master 具有了非常强大的信心。 |
10
baeyer 2022-10-12 22:33:47 +08:00 via Android
master 之前部署用的是域名吗,是的话随便迁
|