尝试登录到 pod 时,为什么会看到超时错误?

排查工作节点上 Pod 执行超时问题。

经典基础设施

您删除了集群中的工作程序节点,然后添加了工作程序节点。 当您部署 Pod 或 Kubernetes 服务时,该资源无法访问新创建的工作节点,导致连接超时。

如果从集群中删除工作程序节点,然后添加工作程序节点,那么可能会将已删除工作程序节点的专用 IP 地址分配给新工作程序节点。 Calico 使用此专用 IP 地址作为标记,并继续尝试访问已删除的节点。

手动更新专用 IP 地址的引用以指向正确的节点。

  1. 确认您是否有两个工作程序节点使用相同的专用 IP 地址。 记下已删除的工作程序的专用 IP标识

    ibmcloud oc worker ls --cluster CLUSTER_NAME_OR_ID
    
    ID                                                 Public IP       Private IP       Machine Type   State     Status   Zone   Version
    kube-dal10-cr9b7371a7fcbe46d08e04f046d5e6d8b4-w1   169.xx.xxx.xxx  10.xxx.xx.xxx    b3c.4x16       normal    Ready    dal10      1.35
    kube-dal10-cr9b7371a7fcbe46d08e04f046d5e6d8b4-w2   169.xx.xxx.xxx  10.xxx.xx.xxx    b3c.4x16       deleted    -       dal10      1.35
    
  2. 安装 Calico CLI

  3. 列出 Calico 中的可用工作程序节点。 将 <path_to_file> 替换为 Calico 配置文件的本地路径。

    calicoctl get nodes --config=filepath/calicoctl.cfg
    
    NAME
    kube-dal10-cr9b7371a7faaa46d08e04f046d5e6d8b4-w1
    kube-dal10-cr9b7371a7faaa46d08e04f046d5e6d8b4-w2
    
  4. 删除 Calico 中的重复工作程序节点。 将 NODE_ID 替换为工作程序节点标识。

    calicoctl delete node NODE_ID --config=<path_to_file>/calicoctl.cfg
    
  5. 重新引导未删除的工作程序节点。

    ibmcloud oc worker reboot --cluster <cluster_name_or_id> --worker <worker_id>
    

已删除的节点不会再在 Calico 中列出。