【问题标题】:kubeadm fails to initialize when kubeadm init is called调用 kubeadm init 时,kubeadm 无法初始化
【发布时间】:2019-08-27 03:32:41
【问题描述】:

我是 kubernetes 新手,正在尝试配置 kubernetes 主节点,我已经安装了 kubeadm、kubectl 和 kubelet

https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/

但是当我尝试通过键入 kubeadm init 来启动 kubeadm 时,它给了我以下错误

[init] Using Kubernetes version: v1.14.0
[preflight] Running pre-flight checks
        [WARNING Firewalld]: no supported init system detected, skipping checking for services
        [WARNING Service-Docker]: no supported init system detected, skipping checking for services
        [WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd". Please follow the guide at https://kubernetes.io/docs/setup/cri/
        [WARNING Service-Kubelet]: no supported init system detected, skipping checking for services
error execution phase preflight: [preflight] Some fatal errors occurred:
        [ERROR FileAvailable--etc-kubernetes-manifests-kube-apiserver.yaml]: /etc/kubernetes/manifests/kube-apiserver.yaml already exists
        [ERROR FileAvailable--etc-kubernetes-manifests-kube-controller-manager.yaml]: /etc/kubernetes/manifests/kube-controller-manager.yaml already exists
        [ERROR FileAvailable--etc-kubernetes-manifests-kube-scheduler.yaml]: /etc/kubernetes/manifests/kube-scheduler.yaml already exists
        [ERROR FileAvailable--etc-kubernetes-manifests-etcd.yaml]: /etc/kubernetes/manifests/etcd.yaml already exists
        [ERROR FileContent--proc-sys-net-ipv4-ip_forward]: /proc/sys/net/ipv4/ip_forward contents are not set to 1
[preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`

【问题讨论】:

  • 操作系统版本是多少?

标签: kubernetes kubeadm


【解决方案1】:

您的系统上似乎存在陈旧数据。要删除该数据(/etc/kubernetes)目录运行:

kubeadm reset

现在您需要通过以下命令将 ip_forward 内容设置为 1:

echo 1 > /proc/sys/net/ipv4/ip_forward

这应该可以解决您的问题。

【讨论】:

    【解决方案2】:

    kubernetes 安装需要 br_netfilter 模块。启用此内核模块,使通过网桥的数据包​​由 iptables 处理以进行过滤和端口转发,并且集群中的 kubernetes pod 可以相互通信。

    运行以下命令启用 br_netfilter 内核模块。

    #modprobe br_netfilter
    
    
    #echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables  
    

    #nano /proc/sys/net/ipv4/ip_forward

    你应该看到 0 删0写1

    【讨论】:

    • 即使在运行这个之后我也收到了echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables -bash: /proc/sys/net/bridge/bridge-nf-call-iptables: No such file or directory
    • 你的操作系统是什么?
    • 在 centos 和 ubuntu 中都有
    猜你喜欢
    • 2018-09-17
    • 2020-09-24
    • 2021-08-08
    • 2019-02-02
    • 2021-07-19
    • 1970-01-01
    • 2020-01-10
    • 2019-05-23
    • 2018-08-02
    相关资源
    最近更新 更多