[转帖]k8s国内镜像
k8s国内镜像
最近折腾k8s,使用kubeadm部署集群,遇到镜像下载的问题
$ kubeadm config images list
k8s.gcr.io/kube-apiserver:v1.14.1
k8s.gcr.io/kube-controller-manager:v1.14.1
k8s.gcr.io/kube-scheduler:v1.14.1
k8s.gcr.io/kube-proxy:v1.14.1
k8s.gcr.io/pause:3.1
k8s.gcr.io/etcd:3.3.10
k8s.gcr.io/coredns:1.3.1
由于一些众所周知的原因,国内是不太容易下载k8s.gcr.io站点的镜像的,偶然发现微软做了一个k8s的镜像站点,真香
| global | proxy in China |
|---|---|
| dockerhub (docker.io) | dockerhub.azk8s.cn |
| gcr.io
k8s.gcr.io |
gcr.azk8s.cn
|
| quay.io | quay.azk8s.cn |
注意,因为k8s.gcr.io会重定向到gcr.io/google-containers,因此比如安装k8s所必须的镜像如 k8s.gcr.io/pause:3.1
需要替换成 gcr.azk8s.cn/google-containers/pause:3.1
已经使用超过一周,非常稳定。
- https://github.com/Azure/container-service-for-azure-china/blob/master/aks/README.md
- 官网介绍
Container Registry
2.1 Azure Container Registry(ACR)
Azure Container Registry(ACR) provides storage of private Docker container images, enabling fast, scalable retrieval, and network-close deployment of container workloads on Azure.
ACR does not provide public anonymous access functionality on Azure China, this feature is in public preview on global Azure.
AKS has good integration with ACR, container image stored in ACR could be pulled in AKS after Configure ACR authentication.
2.2 Container Registry Proxy
Since some well known container registries like
docker.io,gcr.ioare not accessible or very slow in China, we have set up container registry proxies on Azure China for public anonymous access:The first docker pull of new image will be still slow, and then image would be cached, would be much faster in the next docker pull action.
global proxy in China format example dockerhub(docker.io) dockerhub.azk8s.cn dockerhub.azk8s.cn/<repo-name>/<image-name>:<version>dockerhub.azk8s.cn/microsoft/azure-cli:2.0.61dockerhub.azk8s.cn/library/nginx:1.15gcr.io gcr.azk8s.cn gcr.azk8s.cn/<repo-name>/<image-name>:<version>gcr.azk8s.cn/google_containers/hyperkube-amd64:v1.13.5quay.io quay.azk8s.cn quay.azk8s.cn/<repo-name>/<image-name>:<version>quay.azk8s.cn/deis/go-dev:v1.10.0Note:
k8s.gcr.iowould redirect togcr.io/google-containers, following image urls are identical:k8s.gcr.io/pause-amd64:3.1 gcr.io/google_containers/pause-amd64:3.1Container Registry Proxy Example
specify
defaultBackend.image.repositoryasgcr.azk8s.cn/google_containers/defaultbackendin nginx-ingress chart since originalk8s.gcr.iodoes not work in Azure China:helm install stable/nginx-ingress --set defaultBackend.image.repository=gcr.azk8s.cn/google_containers/defaultbackend --set defaultBackend.image.tag=1.4
3. Install kubectl
az aks install-clicommand is used to downloadkubectlbinary, it works on Azure China from version2.0.61or later, another alternative is use following command to downloadkubectlif don't have azure-cli:# docker run -v ${HOME}:/root -v /usr/local/bin/:/kube -it dockerhub.azk8s.cn/microsoft/azure-cli:2.0.61 root@09feb993f352:/# az cloud set --name AzureChinaCloud root@09feb993f352:/# az aks install-cli --install-location /kube/kubectlrun
sudo az aks install-cliif hit following permission errorConnection error while attempting to download client ([Errno 13] Permission denied: '/usr/local/bin/kubectl'4. Install helm
Follow detailed installation steps here.
- Example:
# Install wordpress helm repo add bitnami https://charts.bitnami.com/bitnami helm install bitnami/wordpress --set global.imageRegistry=dockerhub.azk8s.cn # Install nginx-ingress helm repo add stable https://mirror.azure.cn/kubernetes/charts/ helm install stable/nginx-ingress --set defaultBackend.image.repository=gcr.azk8s.cn/google_containers/defaultbackendNote: All kubernetes related binaries on github could be found under https://mirror.azk8s.cn/kubernetes, e.g. helm, charts, etc.
5. Cluster autoscaler
Note: AKS integrated Cluster-autoscaler is not availalbe on Azure China now since it's still in Preview on Global Azure, instead following autoscaler is supported on Azure China now, it supports both VMAS and VMSS: Follow detailed steps in Cluster Autoscaler on Azure and in
Deploymentconfig ofaks-cluster-autoscaler.yaml:use
gcr.azk8s.cn/google-containers/cluster-autoscaler:versioninstead ofgcr.io/google-containers/cluster-autoscaler:versionadd following environment variable:
- name: ARM_CLOUD value: AzureChinaCloudHere is the complete
Deploymentconfig example.
Hands on
Known issues
- RBAC related issues(RABC is enabled on AKS cluster): https://github.com/andyzhangx/demo/blob/master/issues/rbac-issues.md
Tips
For production usage:
- agent VM size should have at least 8 CPU cores(e.g. D4_v2) since k8s components would also occupy CPU, memory resources on the node, details about AKS resource reservation.
- it's better set a bigger os disk size on agent VM in AKS cluster creation, e.g. set
--node-osdisk-size 128, original 30GB os disk size is not enough since all images are stored on os disk.
Links
[转帖]k8s国内镜像的更多相关文章
- google gcr.io、k8s.gcr.io 国内镜像
1.首先添加docker官方的国内镜像 sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ...
- K8S学习笔记之将Google的gcr.io、k8s.gcr.io 换为国内镜像
0x00 添加docker官方的国内镜像 sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ...
- [K8S]kubeadm国内镜像安装方式
使用国内镜像站 sudo apt-get update && sudo apt-get install -y apt-transport-https curl sudo curl -s ...
- docker学习(2) mac中docker-machine使用vmware fusion以及配置国内镜像加速
一.前言 先回顾下上一节创建docker-machine的过程,默认情况下docker toolbox中的docker-machine使用virtual box创建虚拟机,KI首次启动时创建虚拟机的过 ...
- 同步、更新、下载Android Source & SDK from 国内镜像站(转载)
同步.更新.下载Android Source & SDK from 国内镜像站 转自: 同步.更新.下载Android Source & SDK from 国内镜像站 Download ...
- Docker - Docker国内镜像的配置及使用
Docker国内镜像 DaoCloud - Docker加速器 阿里云 - 开发者平台 微镜像 - 希云cSphere 镜像广场 - 时速云 灵雀云 网易蜂巢 阿里云的Docker加速器 阿里云 - ...
- 使用国内镜像加速下载Android SDK
本文转自:http://blog.kuoruan.com/24.html.感谢原作者. 什么是Android SDK SDK:(software development kit)软件开发工具包.被软件 ...
- 腾讯bugly团队提供的android国内镜像
腾讯bugly团队提供的国内镜像 如果使用Android SDK Manager下载比较慢或者打不开,可以使用国内镜像 使用说明 http://android-mirror.bugly.qq.co ...
- eclipse使用国内镜像站点安装插件
把eclipse 4.x的界面改为经典样式 打开eclipse,菜单栏>windows>preference>general>appearance>theme>cl ...
随机推荐
- Luogu P1641 [SCOI2010]生成字符串 组合数学
神仙.... 当时以为是,$x$代表$1$,$y$代表$0$,所以不能过$y=x$的路径数...结果不会... 然后康题解...ヾ(。`Д´。)竟然向右上是$1$,向右下是$0$.... 所以现在就是 ...
- PHP mysqli_fetch_row() 函数
定义和用法 mysqli_fetch_row() 函数从结果集中取得一行,并作为枚举数组返回. <?php // 假定数据库用户名:root,密码:123456,数据库:RUNOOB $con= ...
- PHP mysqli_get_connection_stats() 函数
定义和用法 mysqli_get_connection_stats() 函数返回有关客户端连接的统计. 语法 mysqli_get_connection_stats(connection); 返回有关 ...
- Spring详解------事务管理
目录 1.事务介绍 2.事务的四个特性(ACID) 3.Spring 事务管理的核心接口 4. PlatformTransactionManager 事务管理器 5.TransactionStatu ...
- luogu 2294 [HNOI2005]狡猾的商人 差分约束
一个差分约束模型,只需判一下有没有负环即可. #include <bits/stdc++.h> #define N 103 #define M 2004 #define setIO(s) ...
- (二)一个MFC程序,消息映射,纯代码
1.应用程序类 CWinApp https://docs.microsoft.com/zh-cn/cpp/mfc/reference/cwinapp-class?f1url=https%3A%2F%2 ...
- Ant环境搭建
1.上传安装包到linux服务器 2.解压缩 tar zxvf apache-ant-1.10.1-bin.tar.gz 3.修改环境变量 vim /etc/profile 添加以下内容 expor ...
- elasticsearch Delete (根据条件删除)
之前在 2.X版本里 这个Delete By Query功能被去掉了 因为官方认为会引发一些错误 如需使用 需要自己安装插件. bin/plugin install delete-by-query 需 ...
- JavaScript设计模式—装饰器模式
装饰器模式介绍 为对象添加新的功能,不改变其原有的结构和功能,原有的功能还是可以使用,跟适配器模式不一样,适配器模式原有的已经不能使用了,装饰器示例比如手机壳 UML类图和代码示例 Circle示原来 ...
- 数据结构之双端队列(Deque)
1,双端队列定义 双端队列:其两端都可以入列和出列的数据结构,如下图所示,队列后面(rear)可以加入和移出数据,队列前面(front)可以加入和移出数据 双端队列操作: deque=Deque() ...