• kubeadm init失败


    关注 码龄 粉丝数 原力等级 -- 被采纳 被点赞 采纳率 2401_83635544 2024-04-14 10:30 采纳率: 0% 浏览 5 首页/ 运维 / kubeadm init失败 kubernetes自动化docker kubeadm init初始化失败了报这个错误是什么问题啊 kubernetes的镜像源也切换成国内的了 收起 写回答 好问题 0 提建议 追加酬金 关注问题 微信扫一扫 点击复制链接 分享 邀请回答 编辑 收藏 删除 结题 收藏 举报 追加酬金 (90%的用户在追加酬金后获得了解决方案) 当前问题酬金 ¥ 0 (可追加 ¥500) ¥ 15¥ 20¥ 50¥ 100¥ 200 支付方式 扫码支付 二维码出错 点击刷新 支付金额 15 元 提供问题酬金的用户不参与问题酬金结算和分配 支付即为同意 《付费问题酬金结算规则》 结题 再想想 删除 再等等

    3条回答 默认 最新

    • 专家-赤兔[在线] 全栈领域优质创作者 2024-04-14 10:30
      关注

      引自免费微信小程序:皆我百晓生

      看起来你在尝试使用 kubeadm init 初始化一个 Kubernetes 集群时遇到了问题。错误信息表明在拉取 coredns 镜像时出现了网络问题。具体错误是连接超时(net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers))。这可能是由于网络连接不稳定、防火墙设置限制或是 Docker 拉取镜像的速度较慢。

      首先,确保你的机器可以访问互联网,并且没有被防火墙阻止。你可以尝试手动从 Docker 中拉取 k8s.gcr.io/coredns:1.6.5 这个镜像,看是否能成功:

      docker pull k8s.gcr.io/coredns:1.6.5
      

      如果手动拉取也失败,可能是由于国内访问 Google 镜像仓库速度较慢或者受限。在这种情况下,你可以考虑使用国内的镜像加速服务,比如阿里云的 DaRocin 镜像加速器。首先,你需要安装并配置 DaRocin,然后再次运行 kubeadm init

      以下是安装 DaRocin 的步骤:

      1. 安装 DaRocin 插件:

        curl -fsSL https://get.daocloud.io/docker-ce/linux/daocloud/etc/apt/keyring.gpg | sudo apt-key add -
        echo "deb [signed-by=/etc/apt/keyring.gpg] https://get.daocloud.io/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
        
      2. 更新包列表并安装 Docker CE:

        sudo apt-get update && sudo apt-get install docker-ce docker-ce-cli containerd.io
        
      3. 配置 DaRocin 作为默认的 Docker 镜像加速器: 编辑 /etc/docker/daemon.json 文件(如果没有此文件,创建它):

        {
          "registry-mirrors": ["https://index.docker.io/v1/"]
        }
        

        "https://index.docker.io/v1/" 替换为 DaRocin 的加速地址,例如:

        {
          "registry-mirrors": ["http://hub-mirror.c.163.com"]
        }
        
      4. 重启 Docker 服务以应用新的配置:

        sudo systemctl restart docker
        

      完成上述步骤后,再次尝试执行 kubeadm init 命令,应该就可以正常进行。如果你之前已经设置了国内的 Kubernetes 镜像源,那么DaRocin会自动加速这些镜像的下载。

      kubeadm init --kubernetes-version=v1.17.4 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --apiserver-advertise-address=192.168.10.151
      

      这样应该就能解决镜像拉取的问题。如果还有其他问题,可以尝试增加日志级别 -v=5 或更高,以便获取更详细的错误信息。

      展开全部

      评论 编辑记录
    • CSDN-Ada助手 CSDN-AI 官方账号 2024-04-14 12:14
      关注

      【相关推荐】



      • 这篇博客也许可以解决你的问题👉 :记一次不典型的 kubeadm init 失败(kubelet 启动失败)
      • 除此之外, 这篇博客: Kubeadm介绍与使用Kubeadm搭建kubernetes集群环境中的 kubeadm init 初始化 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
        kubeadm init --kubernetes-version=1.14.0 --apiserver-advertise-address=192.168.1.111 --pod-network-cidr=10.244.0.0/16
        

        参数说明

        1.--apiserver-advertise-address=192.168.1.111 这里的ip 实际就是master节点的内网ip,我这里manager-node节点是192.168.1.111
        

        执行样例

        [root@manager-node ~]# kubeadm init --kubernetes-version=1.14.0 --apiserver-advertise-address=192.168.1.111 --pod-network-cidr=10.244.0.0/16
        [init] Using Kubernetes version: v1.14.0
        [preflight] Running pre-flight checks
        [preflight] Pulling images required for setting up a Kubernetes cluster
        [preflight] This might take a minute or two, depending on the speed of your internet connection
        [preflight] You can also perform this action in beforehand using 'kubeadm config images pull'
        [kubelet-start] Writing kubelet environment file with flags to file "/var/lib/kubelet/kubeadm-flags.env"
        [kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml"
        [kubelet-start] Activating the kubelet service
        [certs] Using certificateDir folder "/etc/kubernetes/pki"
        [certs] Generating "front-proxy-ca" certificate and key
        [certs] Generating "front-proxy-client" certificate and key
        [certs] Generating "ca" certificate and key
        [certs] Generating "apiserver" certificate and key
        [certs] apiserver serving cert is signed for DNS names [manager-node kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local] and IPs [10.96.0.1 192.168.1.111]
        [certs] Generating "apiserver-kubelet-client" certificate and key
        [certs] Generating "etcd/ca" certificate and key
        [certs] Generating "etcd/healthcheck-client" certificate and key
        [certs] Generating "apiserver-etcd-client" certificate and key
        [certs] Generating "etcd/server" certificate and key
        [certs] etcd/server serving cert is signed for DNS names [manager-node localhost] and IPs [192.168.1.111 127.0.0.1 ::1]
        [certs] Generating "etcd/peer" certificate and key
        [certs] etcd/peer serving cert is signed for DNS names [manager-node localhost] and IPs [192.168.1.111 127.0.0.1 ::1]
        [certs] Generating "sa" key and public key
        [kubeconfig] Using kubeconfig folder "/etc/kubernetes"
        [kubeconfig] Writing "admin.conf" kubeconfig file
        [kubeconfig] Writing "kubelet.conf" kubeconfig file
        [kubeconfig] Writing "controller-manager.conf" kubeconfig file
        [kubeconfig] Writing "scheduler.conf" kubeconfig file
        [control-plane] Using manifest folder "/etc/kubernetes/manifests"
        [control-plane] Creating static Pod manifest for "kube-apiserver"
        [control-plane] Creating static Pod manifest for "kube-controller-manager"
        [control-plane] Creating static Pod manifest for "kube-scheduler"
        [etcd] Creating static Pod manifest for local etcd in "/etc/kubernetes/manifests"
        [wait-control-plane] Waiting for the kubelet to boot up the control plane as static Pods from directory "/etc/kubernetes/manifests". This can take up to 4m0s
        [apiclient] All control plane components are healthy after 15.506013 seconds
        [upload-config] storing the configuration used in ConfigMap "kubeadm-config" in the "kube-system" Namespace
        [kubelet] Creating a ConfigMap "kubelet-config-1.14" in namespace kube-system with the configuration for the kubelets in the cluster
        [upload-certs] Skipping phase. Please see --experimental-upload-certs
        [mark-control-plane] Marking the node manager-node as control-plane by adding the label "node-role.kubernetes.io/master=''"
        [mark-control-plane] Marking the node manager-node as control-plane by adding the taints [node-role.kubernetes.io/master:NoSchedule]
        [bootstrap-token] Using token: 3wgo6s.s8gm0tum1vy4a89f
        [bootstrap-token] Configuring bootstrap tokens, cluster-info ConfigMap, RBAC Roles
        [bootstrap-token] configured RBAC rules to allow Node Bootstrap tokens to post CSRs in order for nodes to get long term certificate credentials
        [bootstrap-token] configured RBAC rules to allow the csrapprover controller automatically approve CSRs from a Node Bootstrap Token
        [bootstrap-token] configured RBAC rules to allow certificate rotation for all node client certificates in the cluster
        [bootstrap-token] creating the "cluster-info" ConfigMap in the "kube-public" namespace
        [addons] Applied essential addon: CoreDNS
        [addons] Applied essential addon: kube-proxy
        
        Your Kubernetes control-plane has initialized successfully!
        
        To start using your cluster, you need to run the following as a regular user:
        
          mkdir -p $HOME/.kube
          sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
          sudo chown $(id -u):$(id -g) $HOME/.kube/config
        
        You should now deploy a pod network to the cluster.
        Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
          https://kubernetes.io/docs/concepts/cluster-administration/addons/
        
        Then you can join any number of worker nodes by running the following on each as root:
        
        kubeadm join 192.168.1.111:6443 --token 3wgo6s.s8gm0tum1vy4a89f \
            --discovery-token-ca-cert-hash sha256:f2b7372e6745ac4e4b121b76e594b6c172730e9d76043fd307909e525c58cb9a 
        [root@manager-node ~]# 
        

        备注

        1.保存好最后一个执行的命令:(因此待会worker节点搭建集群的时候,需要跟主节点进行集群搭建)
        kubeadm join 192.168.1.111:6443 --token 3wgo6s.s8gm0tum1vy4a89f \
            --discovery-token-ca-cert-hash sha256:f2b7372e6745ac4e4b121b76e594b6c172730e9d76043fd307909e525c58cb9a 
        

      如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

      展开全部

      评论
    • GISer Liu 2024-04-14 16:24
      关注

      该回答引用自GPT-3.5,由博主GISer Liu编写:

      根据您的描述,您在使用kubeadm init初始化 Kubernetes 集群时遇到了失败的情况,报错信息没有提供,但您已经将 Kubernetes
      的镜像源切换到了国内。首先,让我们分析可能导致初始化失败的一些常见问题和解决方案。

      1. 网络问题 :初始化过程中需要从国外的服务器下载一些镜像和文件,网络不稳定或者被防火墙等限制可能导致下载失败。
      • 解决方案 :确保您的网络连接稳定,并且没有被防火墙等设备限制。您可以尝试使用 VPN 连接以确保能够访问国外资源。
      1. 镜像源设置错误 :尽管您已经将镜像源切换到了国内,但可能存在配置错误或者镜像源不稳定的情况。
      • 解决方案 :确认您的镜像源配置正确,并且能够正常访问。您可以尝试手动从镜像源下载一些文件,以确认能够顺利访问。
      1. 系统资源不足 :Kubernetes 初始化过程需要一定的系统资源,如果资源不足可能导致初始化失败。
      • 解决方案 :检查您的服务器资源使用情况,尤其是内存和磁盘空间。确保有足够的资源用于 Kubernetes 初始化。
      1. 版本兼容性问题 :某些版本的 Kubernetes 可能与其他组件不兼容,导致初始化失败。
      • 解决方案 :确保您选择的 Kubernetes 版本与其他组件兼容。您可以尝试使用较稳定的版本或者查看官方文档中的建议。
        综上所述,您可以按照以下步骤来解决初始化失败的问题:
      1. 确认网络连接稳定,没有被防火墙等设备限制。
      2. 检查镜像源配置,确保配置正确并且能够正常访问。
      3. 检查服务器资源使用情况,确保有足够的资源用于 Kubernetes 初始化。
      4. 确认所选的 Kubernetes 版本与其他组件兼容。
        如果您在尝试以上步骤后仍然无法解决问题,建议提供具体的报错信息以便更好地定位和解决问题。

      如果该回答解决了您的问题,请采纳!如果没有,请私信联系或评论您的疑惑

      评论
    编辑
    预览

    报告相同问题?

  • 相关阅读:
    2023-9-27 JZ18 删除链表的结点
    如何使用Etherscan Remix插件验证智能合约
    2023,8种必备Selenium编写自动化用例的技巧!
    MySQL数据库——存储引擎(2)-存储引擎特点(InnoDB、MyISAM、Memory)、存储引擎选择
    数字藏品值得探究,依然是广阔的大海播
    用 Go 快速开发一个 RESTful API 服务
    中断原理简介
    Part 4.2 背包动态规划
    掌握React中的useEffect:函数组件中的魔法钩子
    Redisi消息队列
  • 原文地址:https://ask.csdn.net/questions/8088183