【Azure K8S | AKS】在中国区AKS上遇见ImagePullBackOff时的替代方案

简介: 【Azure K8S | AKS】在中国区AKS上遇见ImagePullBackOff时的替代方案

问题描述

在AKS集群中部署calico时候,遇见 ImagePullBackOff 问题。 在创建POD calico-typha-horizontal-autoscale 时候遇见拉取镜像失败问题。错误消息为:

Failed to pull image "k8s.gcr.io/cluster-proportional-autoscaler-amd64:1.1.2-r2": rpc error: code = Unknown desc = Error response from daemon: Get https://k8s.gcr.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

 

问题解答

这个问题的原因是从中国区访问全球的镜像库时,遇见了无法连接的问题。所以需要修改镜像的地址,在中国区有专门为一些基础镜像做的代理库。

比如:k8s.gcr.io  修改成中国区专用的 gcr.azk8s.cn/google_containers/

通常情况下,AKS组件的yaml文件存储在主节点中的 /etc/kubernetes/addons 目录中,以下示例时修改主节点中的 /etc/kubernetes/addons/calico-daemonset.yaml 文件。

修改前:

metadata:
  name: calico-typha-horizontal-autoscaler
  namespace: kube-system
   
      containers:
      - image: k8s.gcr.io/cluster-proportional-autoscaler-amd64:1.1.2-r2
        name: autoscaler

修改后:

metadata:
  name: calico-typha-horizontal-autoscaler
  namespace: kube-system
   
      containers:
      - image: gcr.azk8s.cn/google_containers/cluster-proportional-autoscaler-amd64:1.1.2-r2
        name: autoscaler

然后,用一下的命令apply这次的改动:

kubectl apply -f /etc/kubernetes/addons/calico-daemonset.yaml

这样,Kubernetes 旧可以拉取镜像并创建POD。

Events:
  Type    Reason     Age    From                                  Message
  ----    ------     ----   ----                                  -------
  Normal  Scheduled  3m11s  default-scheduler       Successfully assigned kube-system/calico-typha-horizontal-autoscaler-5b8f8b8479-rj6ff to k8s-xxx-111-0
  Normal  Pulling    3m8s   kubelet, k8s-xxx-111-0  pulling image "gcr.azk8s.cn/google_containers/cluster-proportional-autoscaler-amd64:1.1.2-r2"
  Normal  Pulled     3m4s   kubelet, k8s-xxx-111-0  Successfully pulled image "gcr.azk8s.cn/google_containers/cluster-proportional-autoscaler-amd64:1.1.2-r2"
  Normal  Created    3m4s   kubelet, k8s-xxx-111-0  Created container
  Normal  Started    3m2s   kubelet, k8s-xxx-111-0  Started container

 

参考资料

Container Registry Proxy : https://github.com/Azure/container-service-for-azure-china/blob/master/aks/README.md#22-container-registry-proxy

 

 

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
5月前
|
Kubernetes 容器 Perl
【Azure K8S | AKS】在AKS中创建 StatefulSet 示例
【Azure K8S | AKS】在AKS中创建 StatefulSet 示例
|
5月前
|
JSON Kubernetes Shell
【Azure K8S | AKS】在不丢失文件/不影响POD运行的情况下增加PVC的大小
【Azure K8S | AKS】在不丢失文件/不影响POD运行的情况下增加PVC的大小
100 0
|
5月前
|
Kubernetes Shell Perl
【Azure K8S|AKS】进入AKS的POD中查看文件,例如PVC Volume Mounts使用情况
【Azure K8S|AKS】进入AKS的POD中查看文件,例如PVC Volume Mounts使用情况
100 0
|
5月前
|
Kubernetes Cloud Native 网络协议
Kubernetes 高可用性与灾难恢复方案
【8月更文第29天】随着业务的不断增长,保持应用程序的高可用性和灾难恢复能力变得越来越重要。Kubernetes 作为现代云原生应用的主要平台,提供了丰富的工具和方法来保证应用的高可用性以及快速恢复的能力。本文将详细介绍如何利用 Kubernetes 的功能来构建高可用性的系统,并实施有效的灾难恢复策略。
290 1
|
26天前
|
人工智能 Kubernetes 安全
赋能加速AI应用交付,F5 BIG-IP Next for Kubernetes方案解读
赋能加速AI应用交付,F5 BIG-IP Next for Kubernetes方案解读
60 13
|
4月前
|
Kubernetes API Docker
跟着iLogtail学习容器运行时与K8s下日志采集方案
iLogtail 作为开源可观测数据采集器,对 Kubernetes 环境下日志采集有着非常好的支持,本文跟随 iLogtail 的脚步,了解容器运行时与 K8s 下日志数据采集原理。
|
3月前
|
Kubernetes 监控 测试技术
k8s学习--OpenKruise详细解释以及原地升级及全链路灰度发布方案
k8s学习--OpenKruise详细解释以及原地升级及全链路灰度发布方案
|
5月前
|
Kubernetes Windows 容器
【Azure Kubernetes】通过 kubelogin 进行非交互式登录AKS
【Azure Kubernetes】通过 kubelogin 进行非交互式登录AKS
|
11天前
|
Prometheus Kubernetes 监控
OpenAI故障复盘 - 阿里云容器服务与可观测产品如何保障大规模K8s集群稳定性
聚焦近日OpenAI的大规模K8s集群故障,介绍阿里云容器服务与可观测团队在大规模K8s场景下我们的建设与沉淀。以及分享对类似故障问题的应对方案:包括在K8s和Prometheus的高可用架构设计方面、事前事后的稳定性保障体系方面。
|
8天前
|
Kubernetes Ubuntu 网络安全
ubuntu使用kubeadm搭建k8s集群
通过以上步骤,您可以在 Ubuntu 系统上使用 kubeadm 成功搭建一个 Kubernetes 集群。本文详细介绍了从环境准备、安装 Kubernetes 组件、初始化集群到管理和使用集群的完整过程,希望对您有所帮助。在实际应用中,您可以根据具体需求调整配置,进一步优化集群性能和安全性。
44 12

热门文章

最新文章