microk8s之避墙术
2020-04-13 本文已影响0人
JohnYuCN
1. 我们可以很简单的在阿里云的ECS上安装microk8s,但。。
在启动microk8s时,其基础服务如:ecd,pause等
所需要的镜像,默认会从gcr.io下载,墙外资源!
2. 自定义的fetch-images.sh,用于将k8s启动所需要的镜像进行抓取,同时改变其tag值。
#!/bin/bash
images=(
k8s.gcr.io/pause:3.1=mirrorgooglecontainers/pause-amd64:3.1
gcr.io/google_containers/defaultbackend-amd64:1.4=mirrorgooglecontainers/defaultbackend-amd64:1.4
k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1=registry.cn-hangzhou.aliyuncs.com/google_containers/kubernetes-dashboard-amd64:v1.10.1
k8s.gcr.io/heapster-influxdb-amd64:v1.3.3=registry.cn-hangzhou.aliyuncs.com/google_containers/heapster-influxdb-amd64:v1.3.3
k8s.gcr.io/heapster-amd64:v1.5.2=registry.cn-hangzhou.aliyuncs.com/google_containers/heapster-amd64:v1.5.2
k8s.gcr.io/heapster-grafana-amd64:v4.4.3=registry.cn-hangzhou.aliyuncs.com/google_containers/heapster-grafana-amd64:v4.4.3
)
OIFS=$IFS; # 保存旧值
for image in ${images[@]};do
IFS='='
set $image
docker pull $2
docker tag $2 $1
docker rmi $2
docker save $1 > 1.tar && microk8s.ctr --namespace k8s.io image import 1.tar && rm 1.tar
IFS=$OIFS; # 还原旧值
done
使用方法:chmod +x fetch-images.sh
, ./fetch-images.sh
3. 创建k8s官网文档中的depolyment,此处使用了我阿里云的镜像
root@host3:~# microk8s.kubectl create deployment kubernetes-bootcamp \
--image=registry.cn-zhangjiakou.aliyuncs.com/johnyucn525/kubernetes-bootcamp:v1
如果一切顺利,使用microk8s.kubectl get deployments
,你将会看到
root@host3:~# microk8s.kubectl get deployments
NAME READY UP-TO-DATE AVAILABLE AGE
kubernetes-bootcamp 1/1 1 1 12m