Coup de Grace

K8s后日谈 源与镜像

我们在之前搭建了集群,可是rpm与镜像一直还是友情赞助,这让我很不安.


rpm获取

https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64是kubernetes repo的描述文件.

查看其中的location并且与前文拼接,那么形成类似如下的串:

https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64/../../pool/xxx-kubeadm-1.5.1-xxx.x86_64.rpm

也可以看到/etc/systemd/system/kubelet.service.d/10-kubeadm.conf是kubectl配置的中心

一共是四个:

安装之前需要安装之前的socat,ebtables,姑且放着吧.

那么

scp *.rpm  root@192.168.6.5[1:3]:/root
rpm -ivh *.rpm

镜像版本获取

k8s镜像版本

这里有gcr.io的镜像们.

systemctl enable kubelet
systemctl start kubelet
# init并停止,获取manifest版本
kubectl init 

查看/etc/kubernetes/manifests/*.json内版本

那么我们需要知道的所有镜像就如下,可是还不知道版本:

下载源码 checkout到对应tag

基础组件(json内容):

–use-kubernetes-version 1.4.6 就可以手动指定核心4组件的版本,所以这块也就看看etcd.

addon(cmd/kubeadm/app/images/images.go):

独立:

Heapster镜像版本

实际是来自这个地址

里面的三个deploy翻一下就是了.

Weave镜像版本

来自这里

Calico镜像版本

来自Calico文档这个文件.

Flannel镜像版本

来自这个文件


镜像pull

我机器上Docker for Mac设置代理直接就可以pull gcr.io的镜像.

如果不能这样做的话,可以:

  1. 建立github repo
  2. 在package下建立Dockerfile
  3. 而其中只是单纯地FROM gcr.io
  4. 再利用dockerhub的automated build来构建镜像
  5. 最后trigger一下即可

而后置入registry就可以开始搞起了.


done.