Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >EKS集群拉取腾讯云镜像仓库镜像

EKS集群拉取腾讯云镜像仓库镜像

原创
作者头像
聂伟星
修改于 2021-11-15 06:29:07
修改于 2021-11-15 06:29:07
8.4K00
代码可运行
举报
运行总次数:0
代码可运行

最近很多人在使用eks弹性集群的过程中遇到了一些镜像拉取问题,很多人部署了工作负载后,pod一直pengding,查看事件发现有报错ImagePullBackOff,但是这个镜像在镜像仓库是存在的,其实这里拉取镜像报错主要原因是网络问题和镜像拉取密钥没有匹配上导致的,下面我们来说说如何在eks上拉取不同镜像仓库的镜像。

eks上拉取腾讯云上的镜像仓库镜像可以走内网和公网,如果拉取非腾讯云平台镜像则必须要走公网,但是eks集群创建后pod默认是不能访问公网的,这里需要给eks集群的容器子网配置一个nat网关来访问外网,eks集群配置nat网关的方式参考文档https://cloud.tencent.com/document/product/457/48710 nat网关配置好之后,我们来讲解下如何拉取不同仓库的镜像,下面操作都是基于eks集群已经配置好nat网关前提下。

1. eks集群拉取TCR仓库镜像

拉取TCR上的镜像,首先需要创建一个TCR实例,然后将镜像上传到实例中镜像仓库,这里我们说说分别通过公网和内网拉取镜像如何配置,首先我们在TCR上配置一个永久访问凭证,这里后续配置到eks集群生成镜像拉取secret。

控制台点击实例,然后再访问凭证页新建一个永久的访问凭证,最后保存下这个凭证。

接下来在eks集群中配置下之前获取的tcr访问凭证,新建secret。

这里类型我们选择Dockercfg,域名和登录账号密码从我们之前保存的凭证获取,这里可以选择存量命名空间,如果后面新增命名空间则需要在对应命名空间新建一个相同的secret。

1.1 eks公网拉取TCR镜像

我们在TCR实例上开启下公网访问

然后配置下访问白名单,默认是拒绝所有公网流量访问的,注意eks访问公网需要配置nat网关才行,具体可以参考文档https://cloud.tencent.com/document/product/457/48710 。这里我们配置下我们的nat网关中eip就行,如果nat网关有多个eip就配置多个,配置好白名单后,我们在eks集群中通过拉取tcr上镜像来创建pod试试看。

eks上创建deployment的时候可以点击选择镜像选择到你tcr实例的镜像, 然后在镜像访问凭证选择我们之前创建的tcr-secret,从事件和pod运行状态看,pod已经成功运行,说明我们的eks已经能从公网拉取tcr镜像。

1.2 eks内网拉取TCR镜像

1.2.1 手动配置hosts解析拉取镜像

tcr默认开启内网访问,会在vpc下生成一个统一的入口ip作为实例访问ip,但是这个ip不会自动解析到tcr的域名上,如果您没有开启内网自动解析,也可以通配置hosts的模式来内网拉取tcr镜像。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
apiVersion: apps/v1beta2
kind: Deployment
metadata:
  labels:
    k8s-app: tcr-hosts-test
    qcloud-app: tcr-hosts-test
  name: tcr-hosts-test
  namespace: default
spec:
  replicas: 1
  selector:
    matchLabels:
      k8s-app: tcr-hosts-test
      qcloud-app: tcr-hosts-test
  template:
    metadata:
      labels:
        k8s-app: tcr-hosts-test
        qcloud-app: tcr-hosts-test
    spec:
      containers:
      - env:
        - name: PATH
          value: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
        - name: NGINX_VERSION
          value: 1.19.6
        - name: NJS_VERSION
          value: 0.5.0
        - name: PKG_RELEASE
          value: 1~buster
        image: nwx-test.tencentcloudcr.com/tke/nginx:latest
        imagePullPolicy: Always
        name: tcr-hosts-test
        resources:
          limits:
            cpu: 500m
            memory: 1Gi
          requests:
            cpu: 250m
            memory: 256Mi
        securityContext:
          privileged: false
      dnsPolicy: ClusterFirst
      hostAliases:
      - hostnames:
        - nwx-test.tencentcloudcr.com
        ip: 10.0.0.184
      imagePullSecrets:
      - name: tcr-secret
      restartPolicy: Always

这里我们在yaml配置下tcr域名和内网访问ip的hosts解析,然后配置下tcr镜像拉取秘钥,即可正常拉取镜像。

1.2.2开启内网自动解析拉取镜像

如果你不希望和上面步骤一样每个pod都去配置hosts解析,这里我们可以用到tcr的内网自动解析功能,首先开启tcr实例内网解析到eks所在的vpc内,然后在集群内配置访问凭证,最好创建pod的时候选择配置好的镜像访问凭证。这里访问凭证就用上面配置的tcr-secret即可。下面我们关闭tcr公网访问,开启内网解析访问。

我们关闭公网访问,新建内网接入,选择eks所在集群的vpc,然后点击管理自动解析,这样tcr域名就可以在vpc内自动解析了。下面我们创建deploymen试试。

这里我们选择我们实例中的镜像,然后选择tcr-secret这个拉取秘钥,从事件和pod状态可以发现镜像拉取成功并且pod成功运行,我们关闭了公网还是成功拉取了镜像,说明eks已经可以成功内网拉取tcr镜像了。

2. eks集群拉取CCR仓库镜像

eks集群上拉取个人版仓库ccr上的镜像,如果eks集群和镜像仓库是同一个地域,默认是走内网的,如果是跨地域访问,则需要走公网,这里不建议跨地域拉取ccr镜像,公网质量没有保证,如果必须跨地域拉取,可以参考tcr公网拉取方式配置secret,建议还是同地域内网拉取,这里我们讲讲如何内网拉取ccr上的镜像。

eks上拉取ccr上的镜像默认是不需要配置镜像拉取secret,只需要在命名空间下发默认的秘钥qcloudregistrykey即可

点击秘钥下发后,我们在test里面创建一个deployment,然后配置ccr的镜像和下发的qcloudregistrykey秘钥

从事件和pod状态可以发现镜像拉取成功,pod运行正常,说明eks可以正常拉取ccr上的私有镜像仓库了

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
TKE集群如何拉取不同镜像仓库镜像
最近遇到了很多在tke集群部署服务出现拉取镜像失败的问题,很多人碰到这个问题不知道该怎么解决,下面我们来讲讲在tke上如何配置拉取不同镜像仓库的镜像。
聂伟星
2021/12/15
2.3K0
TKE集群pod镜像拉取失败定位思路
一般我们在部署服务的时候会遇到一些镜像拉取失败的问题,这里简单讲述下如何定位解决这类镜像拉取失败的问题,大致的定位思路如下
聂伟星
2020/09/06
2.3K0
TKE操作笔记02
本次笔记主要讲述了如何在腾讯云控制台创建并使用你的第一个kubernetes集群,创建过程中每个步骤的区别以及如何选择,保证自己的集群资源达到最优。
聂伟星
2020/06/02
1.6K0
云原生在线技术工坊——EKS助力小白实践云原生
云原生技术工坊 通过六天的学习,让零基础的小白能够对云原生,特别是对如何基于 Kubernetes 部署应用,有一个初步的了解。在每天1-2小时的动手学习之后,还可以参与打卡,对所学进行记录和输出,学习氛围十足。本次学习的内容主要有以下几点:
CathonZHD
2022/01/03
8540
云原生在线技术工坊——EKS助力小白实践云原生
业务上云之镜像批量迁移一站式解决方案
用户业务在上云或者云迁移过程中,需要对镜像进行批量迁移。奈何大部分云厂商并未提供镜像批量迁移的工具,导致业务在上云初期,海量镜像迁移耗时耗力。
赵思晨
2020/12/02
2.1K0
业务上云之镜像批量迁移一站式解决方案
【TKE】 平台常见问题 QA
本文章将以 QA 方式记录在使用 TKE 产品过程中的可能会遇到的常见问题解答,将不定期更新。
Jokey
2022/10/09
2.8K0
腾讯云TKE使用
以下通过视频方式来分别介绍“搭建wordPress”、“腾讯云TKE容器创建Nginx”和“手工搭建Hello world 服务”,因为很多细节不能整理入博客建议视频方式学习,并同步以下讲义进行学习的回顾与操作。
研究僧
2020/08/16
3K0
创建Workload怎么直接拉取非腾讯云的镜像?
此专栏是为了“补货”一些官网没有的操作文档,大家走过路过,可以留言告诉我,哪里写的不清不楚的地方,这里给它整明白了、
pengsiryan
2020/01/11
2.5K0
使用Secret拉取私有仓库镜像
在 Kubernetes 集群中使用私有仓库的镜像时,需要提供仓库的访问凭证。而这些访问凭证通常包含敏感信息,比如用户名和密码,因此不能直接在 YAML 配置文件中明文存储。为了解决这个问题,我们可以使用 Kubernetes 中的 Secret 对象来存储这些凭证,并在 Pod 中使用它们来拉取私有仓库的镜像。
玖叁叁
2023/05/02
8220
如何利用k8s拉取私有仓库镜像
最近实战时,发现一个很奇怪的问题,在通过 k8s 创建 pod,拉取镜像时,总是显示如下信息:
程序猿Damon
2020/08/20
7.1K0
如何利用k8s拉取私有仓库镜像
自建dns实现tke集群apiserver域名内网自动解析
腾讯云tke集群访问apiserver地址都是域名来访问的,支持内网和公网访问apiserver,如果是公网访问会创建一个公网的类型的clb,然后将域名自动解析到clb的vip上。如果是内网访问会创建一个内网clb类型的service,default命名空间下的kube-user,但是内网不会做域名的自动解析,所以通常需要配置在客户端配置hosts解析才能访问集群。客户端机器较多的时候,需要每一台配置host解析就比较麻烦,能否实现tke集群apiserver域名做内网的自动解析?
聂伟星
2021/10/11
4.1K0
TKE/EKS多集群事件日志如何采集并配置事件告警
上一次,我们讲了如何采集tke/eks集群的事件日志,具体可以参考文档 如何将TKE/EKS集群事件日志持久化
聂伟星
2022/05/10
1.5K5
使用Coding与TCR在TKE中实现DevOps
选择后点击【信息确认】按钮,等待自动开启公网访问与内网访问。公网访问创建需要一些时间,期间内网访问红字不用理会。
帅帅哒小章鱼
2023/05/19
2K2
从无到有基于腾讯云TKE部署Kubernetes全流程(一)
这里我们希望的是,提供一个腾讯云TKE中部署整个基础环境,以及对部分服务的一个示例。
蒋经纬
2020/06/22
2.1K0
tke上如何通过jenkins和argocd完成代码自动化发布
CI/CD是大部分企业非常重要的一部分,也是必备的,相信大家都不陌生,每个企业都有自己的CI/CD,今天我们讲讲如何通过jenkins和argocd来实现CI/CD。
聂伟星
2022/05/10
2.6K1
TKE集群如何在pod内执行kubectl访问apiserver及登录node节点
腾讯云上创建一个TKE集群,一般都是需要开启集群的内网或者公网访问,才能kubectl访问集群apiserver,如果要登录node节点,需要ssh工具去登录,这种一般要有节点秘钥或者密码,但是一般只有运维才有节点登录方式。 下面我们来说说如何创建一个pod,来访问集群的apiserver,并登录node节点,下面我说的方式,是不需要节点登录密码或者秘钥,也不需要集群开启内网或者公网访问。
聂伟星
2024/10/04
2200
如何将TKE/EKS集群事件日志持久化
腾讯云上的tke集群和eks集群的事件日志默认只会保留一个小时,有的时候,服务出现了问题,需要根据历史事件日志来进行排查下,因为历史事件日志只有1个小时,这样给我们排查带来了极大不便。腾讯云上默认是支持将集群的事件日志采集到cls,但是cls是需要收费的,而且很多人习惯用Elasticsearch来查询日志。 下面我们通过开源的eventrouter来将日志采集到Elasticsearch,然后通过kibana来查询事件日志。 eventrouter介绍说明:https://github.com/heptiolabs/eventrouter
聂伟星
2022/04/30
1.3K9
tke集群固定ip模式pod如何绑定eip访问公网
业务部署到tke集群中,很多时候需要通过公网去调用第三方接口服务,正常pod访问公网是依赖于节点访问公网的能力,节点访问公网可以给节点绑定公网ip或者给vpc绑定nat网关。其实在tke中,我们还可以给pod绑定弹性公网ip(eip),让pod通过绑定的eip去访问公网。下面我们来说说如何给pod配置eip,并通过eip去访问公网。
聂伟星
2021/10/31
7.8K2
【腾讯云容器服务】在 TKE 上自建 harbor 镜像仓库
腾讯云有 容器镜像服务 TCR,企业级容器镜像仓库,满足绝大多数镜像仓库的需求,如果需要使用镜像仓库,可以首选 TCR,如果是考虑到成本,或想使用 Harbor 最新功能等因素,可以考虑自建 Harbor 镜像仓库,本文介绍如何在腾讯云容器服务中部署 Harbor 作为自建的容器镜像仓库。
imroc
2022/07/18
3.5K0
【腾讯云容器服务】在 TKE 上自建 harbor 镜像仓库
Elasticsearch跨集群复制(CCR)之腾讯云ES跨地域容灾
腾讯云ES目前已经提供了多可用区部署,即支持同地域跨机房的高可用容灾方案,满足了绝大多数客户的需求。但是依然会有部分客户希望进一步提升容灾级别,能够做到跨地域容灾。随着腾讯云ES双网卡功能的发布,使得跨地域容灾成为可能。接下来我将介绍下腾讯云ES实现跨地域容灾的详细步骤。
吴容
2020/08/18
5.1K3
Elasticsearch跨集群复制(CCR)之腾讯云ES跨地域容灾
相关推荐
TKE集群如何拉取不同镜像仓库镜像
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验