You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Ubuntu节点加入RHEL Kubernetes集群时kube-proxy容器创建停滞问题?

解决Ubuntu节点加入RHEL Kubernetes集群后kube-proxy停滞的问题

从错误信息来看,核心问题是Ubuntu节点无法访问registry.k8s.io,导致拉取pause镜像超时,进而无法创建pod sandbox,最终导致kube-proxy停滞。以下是针对性的解决步骤:

1. 排查Ubuntu节点的网络连通性

  • 测试与registry.k8s.io的网络连通性:
    curl -v https://registry.k8s.io/v2/
    
    如果出现超时,说明节点网络存在以下问题之一:
    • DNS解析失败:执行nslookup registry.k8s.io,若无法解析IP,修改/etc/resolv.conf添加可靠DNS(如8.8.8.8),或重启systemd-resolved服务:
      systemctl restart systemd-resolved
      
    • 防火墙/iptables拦截:关闭Ubuntu的ufw防火墙测试:
      ufw disable
      
      或检查iptables规则,确保允许出站443端口流量。

2. 配置CRI-O镜像加速

如果节点无法直接访问registry.k8s.io,给CRI-O配置国内镜像源:

  • 编辑CRI-O配置文件(路径通常为/etc/crio/crio.conf或/etc/crio/conf.d/00-default.conf):
    • 在[registries.search]段添加国内镜像仓库:
      registries = ["registry.k8s.io", "docker.io", "registry.cn-hangzhou.aliyuncs.com"]
      
    • 添加registry.k8s.io的镜像镜像映射:
      [registries.mirrors.registry.k8s.io]
      endpoint = ["https://registry.cn-hangzhou.aliyuncs.com/google_containers"]
      
  • 重启CRI-O服务:
    systemctl restart crio
    
  • 删除停滞的kube-proxy pod,触发重新创建:
    kubectl delete pod kube-proxy-s56kp -n kube-system
    
    (将kube-proxy-s56kp替换为实际的pod名称)

3. 手动拉取并标记pause镜像

若配置镜像加速仍无效,手动从国内镜像站拉取pause镜像并标记:

  • 拉取镜像:
    crio pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.6
    
  • 标记为集群所需的镜像名称:
    crio tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.6 registry.k8s.io/pause:3.6
    
  • 再次删除kube-proxy pod,验证是否正常启动。

4. 调整kube-proxy的镜像拉取策略

确保kube-proxy的DaemonSet使用IfNotPresent拉取策略,避免每次启动都强制拉取镜像:

  • 编辑kube-proxy的DaemonSet:
    kubectl edit daemonset kube-proxy -n kube-system
    
  • 找到spec.template.spec.containers[0].imagePullPolicy,将其修改为IfNotPresent,保存退出。

内容的提问来源于stack exchange,提问作者Prems

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 21:31:17