tencent cloud

容器服务

动态与公告
产品动态
公告
产品发布记录
产品简介
产品概述
产品优势
产品架构
应用场景
产品功能
基本概念
原生 Kubernetes 名词对照
容器服务高危操作
地域和可用区
开源组件
购买指南
购买指引
购买 TKE 标准集群
购买原生节点
购买超级节点
快速入门
新手指引
快速创建一个标准集群
入门示例
容器应用部署 Check List
集群配置
标准集群概述
集群管理
网络管理
存储管理
节点管理
GPU 资源管理
远程终端
应用配置
工作负载管理
服务和配置管理
组件和应用管理
弹性伸缩
容器登录方式
可观测配置
运维可观测性
成本洞察和优化
调度配置
调度组件概述
资源利用率优化调度
业务优先级保障调度
Qos 感知调度
安全和稳定性
容器服务安全组设置
身份验证和授权
应用安全
多集群管理
计划升级
备份中心
云原生服务指南
云原生 etcd
Prometheus 监控服务
TKE Serverless 集群指南
TKE 注册集群指南
实践教程
集群
Serverless 集群
调度
安全
服务部署
网络
发布
日志
监控
运维
Terraform
DevOps
弹性伸缩
容器化
微服务
成本管理
混合云
AI
故障处理
节点磁盘爆满排障处理
节点高负载排障处理
节点内存碎片化排障处理
集群 DNS 解析异常排障处理
集群 Kube-Proxy 异常排障处理
集群 API Server 网络无法访问排障处理
Service&Ingress 网络无法访问排障处理
Service&Ingress 常见报错和处理
Nginx Ingress 偶现 Connection Refused
CLB Ingress 创建报错排障处理
Pod 网络无法访问排查处理
Pod 状态异常与处理措施
授权腾讯云售后运维排障
CLB 回环问题
API 文档
History
Introduction
API Category
Making API Requests
Elastic Cluster APIs
Resource Reserved Coupon APIs
Cluster APIs
Third-party Node APIs
Relevant APIs for Addon
Network APIs
Node APIs
Node Pool APIs
TKE Edge Cluster APIs
Cloud Native Monitoring APIs
Scaling group APIs
Super Node APIs
Other APIs
Data Types
Error Codes
TKE API 2022-05-01
常见问题
TKE 标准集群
TKE Serverless 集群
运维类
隐患处理
服务类
镜像仓库类
远程终端类
事件类
资源管理类
服务协议
TKE Service Level Agreement
TKE Serverless Service Level Agreement
联系我们
词汇表

镜像仓库相关

PDF
聚焦模式
字号
最后更新时间: 2025-09-28 21:11:42

Serverless 集群如何使用容器镜像服务 TCR?

Serverless 集群如需使用容器镜像服务 TCR,需要确保 已选择对应的镜像访问凭证Serverless 集群到镜像服务网络打通

确保已选择对应的镜像访问凭证

容器镜像默认私有,因此在创建工作负载时,需选择实例对应的镜像访问凭证。

您可参考以下步骤创建镜像访问凭证:
2. 在集群列表页面,单击您需要创建访问凭证的Serverless 集群名称,进入Serverless 集群详情页。
3. 选择左侧的“命名空间”,单击新建
4. 在新建“新建Namespace” 页中,勾选自动下发容器镜像服务企业版访问凭证
5. 单击创建Namespace进行创建。此时在新建的命名空间上,即可选择镜像的访问凭证。

确保 Serverless 集群到镜像服务网络打通

Serverless 集群与容器镜像服务之间的网络默认不通,因此在拉取镜像时会报网络不通的错误:
dial tcp x.x.x.x:443: i/o timeout

解决步骤

处理方式有以下两种:
处理方式
说明
方式1:内网访问方式(推荐)
容器镜像服务新建内网访问链路,并配置内网域名解析,Serverless 集群通过新建的内网链路访问容器镜像服务。
方式2:外网访问方式
Serverless 集群开启外网访问,通过公网访问容器镜像服务,同时容器镜像服务也需允许公网访问。

方式1:内网访问方式(推荐)

1. 新建内网访问链路
1.1 登录 容器镜像服务控制台,选择左侧导航栏中的访问控制>内网访问
1.2 在“内网访问”页面中选择对应的地域和实例,单击新建
1.3 在弹出的“新建内网访问链路”窗口中,配置私有网络及子网信息。
2. 配置完成并单击确定,该内网访问链路将启动新建。
3. 开启域名内网解析。 容器镜像服务使用的域名为 “<tcr-name>.tencentcloudcr.com”,此域名在 VPC 内的解析需额外开通。若不开通,“<tcr-name>.tencentcloudcr.com” 的域名依旧解析成公网 IP,无法解析成内网 IP,内网访问将会失败。
注意:
新建链路后,需要等待后台生成内网解析 IP,IP 生成后才可开启以下按钮。

方式2:外网访问方式

1. 
确保容器镜像服务开启公网访问

1.1 容器镜像服务控制台,选择左侧导航栏中的访问控制 > 公网访问
1.2 公网访问页面中选择对应的地域和实例。
1.3 为对应的容器镜像服务实例开启公网访问。
测试体验阶段,可将公网 IP 地址段设置为:0.0.0.0/0。后续运行阶段,可将下文步骤2中涉及的 NAT 网关出口的弹性 IP 添加到公网白名单。
2. 为 Serverless 集群开启公网访问。 Serverless 集群默认不开通外网访问,需通过 NAT 网关进行外网访问,详情可参见 通过 NAT 网关访问外网。 完成 NAT 网关配置后,将 Serverless 集群所在子网关联至 NAT 网关的路由表,并确保 NAT 网关出口的弹性 IP 在访问容器镜像服务的白名单里( 请参见上文 步骤1 ),Serverless 集群即可正常访问容器镜像服务,从公网拉取镜像。

常见报错指引

报错:Error: failed to do request: Head "xxxx/manifests/late-st": dial tcp xxx:443: i/o timeout

含有 “443: i/o timeout” 报错,大部分情况是因为 TKE Serverless 到 TCR 网络不通。 请参见上文 确保 Serverless 集群到镜像服务网络打通 ,选择其中一种访问方式,打通 TKE Serverless 到 TCR 的网络。
注意:
“<tcr-name>.tencentcloudcr.com”的域名默认会解析成公网 IP ,报错时请注意识别 “dial tcp xxx” 里的 IP 地址是公网还是内网,按实际情况处理。

报错:Error: code = Unknown, pull access denied, repository does not exist or may require authorization: server message: insufficient_scope: authorization failed

含有 “insufficient_scope: authorization failed” 报错,说明 TKE Serverless 到 TCR 网络已经开通,但权限不足。可能原因为命名空间不存在、密钥不正确、密钥不适用正在拉取的镜像等。

报错:Error: code = NotFound, failed to resolve reference "xxx:xxx": not found

含有 “not found” 报错,说明镜像不存在。
其他常见报错指引请参见 容器镜像服务常见问题指引

Serverless 集群如何使用自建的自签名镜像仓库或 HTTP 协议镜像仓库?

问题描述

在 Serverless 集群使用自建镜像仓库的镜像创建工作负载,可能会遇到 “ErrImagePull” 报错,拉取镜像失败。如下图所示:



问题原因

通常在保证网络连通性的前提下,可能有以下两个原因导致该问题:
自建镜像仓库采用 HTTPS 协议,但是 HTTPS 协议证书是自签名。
自建镜像仓库采用 HTTP 协议。
上述两个问题都可以通过在工作负载 Yaml 配置里的 PodTemplate 中添加 Annotation 来解决。

解决步骤

HTTPS 自签名镜像仓库

如果自建的镜像仓库是 HTTPS 协议且证书是自签名。则需要在 PodTemplate 中,添加如下 Annotation,使其跳过证书检验: eks.tke.cloud.tencent.com/registry-insecure-skip-verify: 镜像仓库地址(多个用“,”隔开,或者填写 all)
如下图所示:


说明:
如果 Pod 内多个容器的镜像从不同仓库拉取,可填写多个镜像仓库地址,中间用 “,” 隔开。或填写 “all”,表示 Pod 内所有容器镜像的相关仓库均跳过证书检验。

HTTP 协议镜像仓库

说明:
默认 Serverless 集群运行时会使用 HTTPS 协议拉取镜像,因此如果镜像仓库支持的协议为 HTTP ,则也需要通过 Annotation 进行说明。
通过命令 “$kubectl describe pod $podname”,发现输出 “http: server gave HTTP response to HTTPS client” 报错,则说明所访问的镜像仓库使用 HTTP 协议。如下图所示:


解决此问题需要在 PodTemplate 中,添加如下 Annotation,使其使用 HTTP 协议访问镜像仓库: eks.tke.cloud.tencent.com/registry-http-endpoint: 镜像仓库地址(多个用 “,” 隔开,或者填写all)
如下图所示:


说明:
如果 Pod 内多个容器的镜像从不同仓库拉取,可填写多个镜像仓库地址,中间用 “,” 隔开。或填写 “all”,表示 Pod 内所有容器镜像均采用 HTTP 协议拉取。

镜像仓库地址填写说明

以上两个 Annotation 均涉及镜像仓库地址的填写,多个仓库地址可用 “,” 隔开。
注意:
如果镜像仓库有端口号,则需要带上端口号。
例如,镜像地址为 10.16.100.174:5000/busybox:latest,则 Annotation 的 value 应填为 “10.16.100.174:5000”,即 “eks.tke.cloud.tencent.com/registry-insecure-skip-verify: 10.16.100.174:5000”。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈