1. 参加 Kubernetes 社区参与特性开发
- 之前在社区上提交了一个 PR,算是把流程大概走了一遍,在这里也记录下在社区做的事情,当成日记吧
2. 提交代码流程
- 本来想要写一个在社区提交代码的流程,结果发现,IBM 上已经有篇比我想要写的更加详细的文章
如果启动 k8s 集群时检查 kubelet 出现由于swap 不支持造成的错误,可以通过命令
swapoff -a
关闭swap传送门:Kubernetes 开发指南
3. 谷歌 gcr.io, k8s.gcr.io 的影子仓库
国内访问谷歌的 Registry 不太方便,在我的开发环境上,我其实自己搭建了一个 Registry 作为谷歌的 Registry 的影子仓库: gcr.io,k8s.gcr.io
3.1. 启动一个 http 的 Registry
3.2. 添加DNS记录到/etc/hosts文件,并将 gcr.io,k8s.gcr.io设置为 insecure-registry
不使用 https的原因就是一个是没必要,另外一个,即使使用https,也没有给我们带来方便,一般不会自己到权威机构申请证书(要钱);如果使用自签名证书,又需要导入证书,也很麻烦,还不如干脆就不用证书,采用http的模式。
3.2.1. 在 /etc/hosts 文件中,添加 gcr.io 和 k8s.gcr.io 的 DNS 记录,由于我的 Registry 就在本地,所以我的 DNS 记录如下 如下:
...
127.0.0.1 gcr.io k8s.gcr.io
3.2.2. 将 gcr.io 和 k8s.gcr.io 作为 insecure-registry,在 /etc/docker/daemon.json 中,修改为:
{
...,
"insecure-registries": ["gcr.io", "k8s.gcr.io"]
}
4. 镜像下载
开发中需要使用到的镜像,我都已经放在这里
- 为了方便依赖的镜像下载,我上传到了 docker hub,可利用阿里等加速器下载
- https://hub.docker.com/u/aagogeof/
5. 当前的痛点难点
5.1 安全
- 由于同一个节点上不同的 Pod 使用同一个内核,可能会造成应用穿越内核影响到其他的 Pod 的安全,提出了安全容器的概念:https://kubernetes.io/blog/2016/05/hypernetes-security-and-multi-tenancy-in-kubernetes