更新时间:2025-08-05 GMT+08:00
分享

登录容器实例

操作场景

如果在使用容器的过程中遇到非预期的问题,您可登录容器进行调试。

约束与限制

  • 在CloudShell中使用kubectl时,kubectl的权限由登录用户的权限决定。
  • CloudShell暂不支持委托账号。
  • 同一用户在使用CloudShell组件连接集群或容器时,限制同时打开的实例上限数量为15个。
  • CloudShell中kubectl集群访问凭据有效期为1天,从UCS重新跳转可以重置有效期。
  • 当前仅华北-北京四、华北-北京一、华北-乌兰察布一、华东-上海二、华东-上海一、华南-广州、西南-贵阳一和亚太-新加坡等支持使用CloudShell登录容器,具体请以控制台为准。

前提条件

远程登录接入点配置

  1. 进入UCS控制台,左侧导航栏选择“容器舰队”。

    • 如果是未加入舰队集群,直接单击集群名即可进入集群控制台。
    • 如果是已加入容器舰队的集群,先进入对应容器舰队控制台,选择左侧 “集群管理”内的“容器集群”,再进入对应集群控制台。

  2. 进入目标集群的“基本信息”页面,单击基本信息页面的“接入信息”对应的“配置”按钮。

    • 选择项目:如果开通了IAM项目,还需要选择一个项目。
    • 终端节点服务:可选择已有VPC终端节点服务,或者新建VPC终端节点服务。

  3. 单击“确定”

    等待集群接入信息配置成功后,“接入信息”将显示接入终端节点服务的名称,说明集群远程登录接入点已配置成功。

使用CloudShell登录容器

  1. 进入UCS控制台,左侧导航栏选择“容器舰队”。

    • 如果是未加入舰队集群,直接单击集群名即可进入集群控制台。
    • 如果是已加入容器舰队的集群,先进入对应容器舰队控制台,选择左侧 “集群管理”内的“容器集群”,再进入对应集群控制台。

  2. 在左侧导航栏选择“工作负载”,单击目标工作负载名称,查看工作负载的实例列表。
  3. 单击目标实例操作列中的“更多 > 远程登录”

    图1 登录容器

    若工作负载所在集群未配置终端节点服务,则工作负载实例操作列的“远程登录”按钮将会是置灰不可点击状态,并提示用户进行远程登录接入点配置

  4. 在弹出窗口中选择要登录的容器以及命令,然后单击“确定”

    图2 选择登录的容器与命令

  5. 页面会自动跳转到CloudShell,并初始化启动kubectl,然后自动执行kubectl exec命令登录到容器。

    请等待kubectl exec 命令自动执行后再进行后续操作,此命令出现需要一段时间 5-10秒。

    图3 CloudShell页面

使用kubectl命令登录容器

  1. 使用kubectl连接集群,可参见通过kubectl连接集群
  2. 执行以下命令,查看已创建的Pod。

    kubectl get pod
    示例输出如下:
    NAME                               READY   STATUS    RESTARTS       AGE
    nginx-59d89cb66f-mhljr             1/1     Running   0              11m

  3. 查询该Pod中的容器名称。

    kubectl get po nginx-59d89cb66f-mhljr -o jsonpath='{range .spec.containers[*]}{.name}{end}{"\n"}'
    示例输出如下:
    container-1

  4. 执行以下命令,登录到nginx-59d89cb66f-mhljr这个Pod中名为container-1的容器。

    kubectl exec -it nginx-59d89cb66f-mhljr -c container-1 -- /bin/sh

  5. 如需退出容器,可执行exit命令。

使用CloudShell连接集群

CloudShell中已预装并配置了kubectl工具,且默认连接到对应集群,您可以在CloudShell界面中直接执行kubectl命令,管理集群资源。使用CloudShell连接集群的具体步骤如下:

  1. 进入UCS控制台,左侧导航栏选择“容器舰队”。

    • 如果是未加入舰队集群,直接单击集群名即可进入集群控制台。
    • 如果是已加入容器舰队的集群,先进入对应容器舰队控制台,选择左侧 “集群管理”内的“容器集群”,再进入对应集群控制台

  2. 在集群基本信息页面,单击页面右上角“命令行工具”即可使用CloudShell。

    图4 未加入舰队集群CloudShell

    图5 已加入容器舰队的集群CloudShell

  3. 进入CloudShell后,执行以下命令,验证CloudShell中的kubectl是否已连接对应集群。

    kubectl cluster-info    # 查看集群信息

    若回显结果如下,则说明CloudShell中的kubectl已连接集群,您可以直接使用kubectl命令管理集群资源。

    Kubernetes control plane is running at https://xx.xx.xx.xx:5443
    CoreDNS is running at https://xx.xx.xx.xx:5443/api/v1/namespaces/kube-system/services/coredns:dns/proxy
    To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

相关文档