kubeadm init 与已为 HAProxy 设置的 etcd 发生冲突

问题描述 投票:0回答:1

在我的 Server1、Server2 和 Server3 上,我安装了 PostgreSQL 和 Patroni,仅在 Server1 上安装了 HAProxy 和 etcd。 Server1 充当主数据库,Server2 和 Server3 充当副本。

由于它不是生产设置,因此我尝试在 Server1 和 Server2 上安装 kubernetes,其中 Server1 将充当 kmaster,Server2 将充当 knode。

由于 Patroni 和 HaProxy 已经使用 etcd,Kubeadm 会抛出错误。

root@Server1:# kubeadm init --apiserver-advertise-address=192.168.1.111 --pod-network-cidr=192.168.0.0/16
[init] Using Kubernetes version: v1.28.1
[preflight] Running pre-flight checks
error execution phase preflight: [preflight] Some fatal errors occurred:
    [ERROR Port-2379]: Port 2379 is in use
    [ERROR Port-2380]: Port 2380 is in use
    [ERROR DirAvailable--var-lib-etcd]: /var/lib/etcd is not empty
[preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`
To see the stack trace of this error execute with --v=5 or higher

我的Server1的IP是192.168.1.111,我按照这个指南进行设置,因为这是我第一次使用K8s。使用 Minikube start 进行设置不会出现任何错误,一切都设置顺利。但是,手动设置会引发错误。我应该如何修改 kubeadm init 命令以确保 K8s 和 Patroni 都使用 etcd。

kubernetes kubeadm etcd etcd3 patroni
1个回答
0
投票

原因:您可能已经删除了 kubernetes 节点,并且正在尝试重新创建它。

解决方案:删除目录/var/lib/etcd,这将有助于解决您的问题。使用命令:

rm -rf /var/lib/etcd
删除目录。 (
kubeadm reset
做同样的工作)。

您还可以尝试跳过预检检查。

注意: 它将在 1.15.1 中修复(kubernetes 补丁版本)。

© www.soinside.com 2019 - 2024. All rights reserved.