docker k8s等资源研究

本文记录docker k8s等资源。

背景

docker和k8s很多资源均在外面,里面无法直接访问,需要通过一些机制方可。因此很多有志之士不断研究如何加快内外的沟通。

docker hub

k8s资源

k8s官方发布版本: https://github.com/kubernetes/kubernetes/releases

azk8s开源镜像站点: http://mirror.azk8s.cn/
gcr.io镜像: http://mirror.azk8s.cn/help/gcr-proxy-cache.html
k8s安装包: http://mirror.azk8s.cn/kubernetes/ 注:只有amd64版本

通过镜像中转别名实现的脚本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#!/usr/bin/env bash
# 脚本名称:pullk8s.sh
# 使用:pullk8s.sh k8s.gcr.io/pause-amd64:3.0
# 会自动转换地址,再修改镜像,保持与原来一致。
# 来自:https://github.com/xuxinkun/littleTools/blob/master/azk8spull.sh
# gcr.io也可以用阿里云的:registry.cn-hangzhou.aliyuncs.com/google_containers/
image=$1
if [ -z $image ]; then
echo "image name cannot be null."
exit;
fi

array=(`echo $image | tr '/' ' '` )

domainName=""
repoName=""
imageName=""

if [ ${#array[*]} -eq 3 ]; then
repoName=${array[1]}
imageName=${array[2]}
if [ "${array[0]}"x = "docker.io"x ]; then
domainName="dockerhub.azk8s.cn"
elif [ "${array[0]}"x = "gcr.io"x ]; then
domainName="gcr.azk8s.cn"
elif [ "${array[0]}"x = "quay.io"x ]; then
domainName="quay.azk8s.cn"
else
echo 'can not support pulling $image right now.'
fi
elif [ ${#array[*]} -eq 2 ]; then
if [ "${array[0]}"x = "k8s.gcr.io"x ]; then
domainName="gcr.azk8s.cn"
repoName="google_containers"
imageName=${array[1]}
else
domainName="dockerhub.azk8s.cn"
repoName=${array[0]}
imageName=${array[1]}
fi
elif [ ${#array[*]} -eq 1 ]; then
domainName="dockerhub.azk8s.cn"
repoName="library"
imageName=${array[0]}
else
echo "not support pulling $image."
exit
fi
if [ $domainName != "" ]; then
echo "try to pull image from mirror $domainName/$repoName/$imageName."
docker pull $domainName/$repoName/$imageName
if [ $? -eq 0 ]; then
echo "try to tag $domainName/$repoName/$imageName to $image."
docker tag $domainName/$repoName/$imageName $image
if [ $? -eq 0 ]; then
docker rmi $domainName/$repoName/$imageName
echo 'pull finished.'
fi
fi
fi

添加可执行属性:chmod +x pullk8s.sh
放置系统PATH目录,如/usr/bin。
使用:pullk8s.sh k8s.gcr.io/pause-amd64:3.0