TOC
Hi there 👋
国内安装K8S基本镜像站—> lank8s.cn China mirror for registry.k8s.io and gcr.io :)
lank8s.cn 服务是什么
⭐⭐⭐目前 lank8s.cn 正在逐步开源,项目开源地址->liangyuanpeng/lank8s.cn,欢迎参与贡献!⭐⭐⭐
在参与贡献的过程中也加深了自己对容器镜像相关的知识,怎么找到任务?-> 在 github repo 里面会有一些带有 help wanted
标签的 issue,感兴趣的话可以认领来完成 issue 提到的内容.
lank8s.cn
的使命是希望国内能够更低门槛的学习 Kubernetes 技术!
在微软的镜像代理节点还可用的时候,azk8s.cn
一直是一个很好的选择,但是 2020 年上半年微软不再对外提供 azk8s 服务,只对微软云的国内服务器提供服务,非常的遗憾。
在这样一个背景下我创立了 lank8s.cn
,目前只提供搭建 K8S 所需要的最基本的镜像,希望国内技术人在学习 kubernetes 之初能够很好的进行一个 Kubernetes 的 Hello World!
使用的方式也非常简单,如果使用了 Kubeadm 来进行搭建 kubernetes 集群,只需要一行命令就可以快速开始:
kubeadm init --image-repository=lank8s.cn --kubernetes-version=v1.17.4 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --ignore-preflight-errors=Swap
其中使用 image-repository 参数指定镜像的仓库为lank8s.cn
即可.
上述例子是部署一个 1.17.4 版本的 K8S ,如需其他版本可自行修改.
自 2020 年 7 月份到现在,lank8s 服务已经运行了3年了!
欢迎使用,有问题/建议都可以加我微信交流,在博客底部可以找到我的微信联系方式 :)
相关文章推荐阅读
lank8s.cn和registry.aliyuncs.com/google_containers的区别
registry.aliyuncs.com/google_containers 是定时同步 kubernetes 的镜像到阿里镜像仓库服务的,但只是 K8S 组件的镜像,可以看下和 lank8s.cn 的对比:
k8s组件镜像 | k8s.gcr.io其他镜像 | 及时性 | 容易记 | |
---|---|---|---|---|
registry.aliyuncs.com/google_containers | 支持 | 不支持 | 定时,存在时间差 | 容易记 |
lank8s.cn | 支持 | 支持 | 直接从 registry.k8s.io 拉取,不存在时间差 | 容易记,短域名 |
技术使人懒惰
我们知道,不管使用哪一种方式,我们都少不了的步骤时再部署一些 registry.k8s.io
的资源时需要在部署前将 registry.k8s.io
的镜像修改为国内某个地方(例如 lank8s.cn
),这样的事情做得多了也会显得繁琐.
因此我们即将推出一个k8s mutating webhook, 这个webhook的唯一作用就是在创建或更新资源(例如Deployment,Statefulset)将k8s.gcr.io
修改为lank8s.cn
.后续也会支持参数化,例如支持配置将registry.aliyuncs.com/google_containers
修改为lank8s.cn
你可以为 containerd 配置仓库镜像,这样当你拉取 registry.k8s.io 的镜像时,不再需要去手动为每个镜像修改地址,可以直接使用到 lank8scn 服务. 参考文章:为containerd配置仓库镜像
服务说明
仓库镜像对应
原始仓库 | lank8s服务 |
---|---|
registry.k8s.io | registry.lank8s.cn |
gcr.io | gcr.lank8s.cn |
使用
由于维护 lank8s.cn
存在一定的经济压力(服务器费用,域名费用,带宽费用等),因此 lank8s.cn
保证可用性,但不保证绝佳的镜像下载速度.
这样的原因是越来越多人使用 lank8s.cn
,镜像下载速度会变慢,而提升服务器配置/带宽是解决这类问题的方法.如果有对 lank8s.cn
的赞助将把所有赞助都使用在 lank8s.cn
服务的优化上.
不推荐的做法
⚠请勿在公司项目内直接使用 lank8s.cn⚠
主要的原因是随着服务/应用的增多可能会对 lank8s.cn 造成一定的流量压力,从而造成未知的影响⚠
如果是在公司内使用,那么强烈建议在本地部署一个镜像仓库,例如 Zot/Harbor/Distribution,然后可以将 lank8s.cn 作为一个镜像上游来拉取镜像,公司内的服务则使用本地部署的镜像仓库.
安全性
由于 lank8s.cn 是一个镜像服务,那么必然会存在一个安全性的问题,如何保证拉取到的容器镜像与上游( gcr.io 等地址)的容器镜像是相同的呢?
可以看看官方文章:验证已签名容器镜像
从文章中了解到,kubernetes 1.24 以及之后版本的内容都可以使用 cosign 来校验 kubernetes 组件的数据完整性.
这里给出一个简单的校验容器镜像的示例:
COSIGN_EXPERIMENTAL=1 cosign verify registry.lank8s.cn/kube-apiserver-amd64:v1.24.0
校验 kube-apiserver 1.24 版本的镜像.
注意:你从哪里下载的镜像就从哪里校验镜像,例如如果你的镜像地址是 abc.com/kube-apiserver-amd64:v1.24.0
,那么你的校验命令应该是:
COSIGN_EXPERIMENTAL=1 cosign verify abc.com/kube-apiserver-amd64:v1.24.0
k8s.lank8s.cn 将被淘汰
官方镜像 k8s.gcr.io
使用 registry.k8s.io
替代,而 lank8s 服务也会跟随上游,将 k8s.lank8s.cn
淘汰,请使用 registry.k8s.io
的镜像服务 registry.lank8s.cn
.
应用场景
除了拉取 K8S 官方组件镜像之外,典型的应用场景有以下几个:
- tekton 镜像,使用 gcr.lank8s.cn/tekton-releases 来拉取 gcr.io/tekton-releases 下的镜像
- knative 镜像, 使用 gcr.lank8s.cn/knative-releases 来拉取 gcr.io/knative-releases 下的镜像
- ml-pipeline 镜像,使用 gcr.lank8s.cn/ml-pipeline 来拉取 gcr.io/ml-pipeline 下的镜像
- kubernetes 的 CI 镜像,使用gcr.lank8s.cn/k8s-staging-ci-images 来拉取 gcr.io/k8s-staging-ci-images 下的镜像
- cncf 项目 pixie 的容器镜像,gcr.lank8s.cn/pixio-oss/xxxxx
- 使用 gcr.lank8s.cn/google_samples 来拉取 gcr.io/google_samples 下的镜像
- 使用 gcr.lank8s.cn/distroless 来拉取 gcr.io/distroless 下的镜像
- 使用 gcr.lank8s.cn/etcd-development 来拉取 gcr.io/etcd-development 下的镜像
- 使用 gcr.lank8s.cn/k8s-staging-sig-auth 来拉取 gcr.io/k8s-staging-sig-auth 下的镜像
可能的付费服务
为什么是可能呢?
因为在服务器压力承受范围内的话gcr.lank8s.cn
、lank8s.cn
、registry.lank8s.cn
、k8s.lank8s.cn
都会免费提供服务,但使用的人越来越多之后服务器承受不了太多人共同使用时gcr.lank8s.cn
(lank8s.cn
/registry.lank8s.cn
依然是免费服务)将会作为付费服务推出.经过多次决策,最终定价为 15 一年.有意者请加我微信,谢谢!
由于本意不是为了赚钱,因此即使是收费也会采取比较宽松的策略,比如付费用户在登录了 lank8s.cn
(拉取镜像时带有正确的认证信息)后其所在 IP 都可以免费(无需登录)拉取镜像.
也就是一个局域网内,只要有一个节点登录了 lank8s.cn
,那么其他节点都可以直接使用服务.
在服务免费期间成为了付费用户的人员将会额外赠送一年使用时间.
额外的免费服务
- proxy.lank8s.cn/googleapis/oauth2/v3/certs 代理 https://www.googleapis.com/oauth2/v3/certs
- proxy.lank8s.cn/gh/avatars/ 代理 https://avatars.githubusercontent.com/
- proxy.lank8s.cn/gh/api 代理 https://api.github.com 本意是加速 giscus 评论
例如 原地址为 https://avatars.githubusercontent.com/u/19399934?v=4 替换为 https://proxy.lank8s.cn/gh/avatars/u/19399934?v=4
注意 目前这些服务都始于我个人的需要,随时会关闭,如何对你有帮助欢迎评论在此博客留下你的评论,某个服务达到足够热度会考虑长期维护.
额外付费服务
为 us-central1-docker.pkg.dev 提供镜像服务,8元3个月.
映射关系:
us-central1-docker.pkg.dev —> us-central1-docker.pkgdev.lank8s.cn
镜像案例:
- https://docs.robusta.dev kubernetes 的可观测性监控方案
- https://skypilot.readthedocs.io/en/latest/ 运行 LLM、AI 和批处理作业的框架 SkyPilot
使用到的域名
lank8s.cn 服务使用到了以下域名,如果你是在公司内使用 lank8s.cn 并且需要一些安全配置的话可能会有帮助:
- *.lank8s.cn
- *.aliyuncs.com 使用 阿里云容器镜像仓库或 阿里云 OSS
- *.amazonaws.com 使用 aws 的 S3
- *.liangyuanpeng.com 使用 Cloudflare
对于 gcr.lank8s.cn 则会涉及一下域名:
- *.lank8s.cn
- *.aliyuncs.com 使用 阿里云容器镜像仓库或 阿里云 OSS
- storage.googleapis.com 使用 google 的 S3
- *.liangyuanpeng.com 使用 Cloudflare
对于一些虚拟机,可能需要为虚拟机设置好 dns nameserver,否则可能解析不到 amazonaws.com 和 storage.googleapis.com.
目前正在考虑剔除域名 *.liangyuanpeng.com,减少不必要的域名,但这是一个长期的缓慢的工作,一旦有进展将会在这里更新.
再说一点
其实 lank8s.cn 和 registry.k8s.io 本质上是一类东西:将流量分发到实际的镜像存储服务,当然出发点是不一样的,registry.k8s.io 是希望将流量代理到与用户相近的地方,同时减少存储服务流量成本. 而 lank8s.cn 完全是因为成本问题,但目前不会将流量代理到与用户相近的地方,毕竟 lank8s.cn 目前只保证镜像可下载,没有保证最优的下载速度.
目前部分流量会分到 liangyuanpeng.com,最近正在处理将这部分迁移回 lank8s.cn,减少涉及到的域名数量.
接受赞助
为了提供更好的服务,lank8s.cn
服务接受赞助,我承诺所有赞助都只会用于优化lank8s.cn
服务.点击本文下方的赞助按钮开始赞助:)
感谢各位的赞助
已经收到一些人的赞助,由于此赞助完全是自愿的并且被赞助方没有任何盈利目的,因此我相信他们对技术一定拥有敬畏之心,愿他们都能在云原生之路越走越远并且找到自己想要的东西!
以下是赞助过 lank8s 并且 由于部分人不希望展示在这个列表中或之前没有记录到 Github ID,因此可能此列表可能丢失了部分人,如果你曾赞助过并且希望回到这个赞助者列表,请随时联系我!
微信公众号
扫描下面的二维码关注我们的微信公众号,第一时间查看最新内容。同时也可以关注我的Github,看看我都在了解什么技术,在页面底部可以找到我的Github。