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

上一篇下一篇

猜你喜欢

热点阅读