Cache Kubernetes images, update image names, add boot-master.sh

Signed-off-by: Ilya Dmitrichenko <errordeveloper@gmail.com>
This commit is contained in:
Ilya Dmitrichenko 2017-04-11 12:23:40 +01:00
parent 06ac17821b
commit 73a29022ce
7 changed files with 60 additions and 6 deletions

4
projects/kubernetes/.gitignore vendored Normal file
View File

@ -0,0 +1,4 @@
image-cache/common/*.tar
image-cache/common/Dockerfile
image-cache/control-plane/*.tar
image-cache/control-plane/Dockerfile

View File

@ -83,8 +83,7 @@ def create_kubelet_wrapper
end
def create_kubeadm_wrappers
#create_shell_wrapper 'env KUBE_KUBERNETES_DIR=/var/lib/kubeadm kubeadm init --skip-preflight-checks --kubernetes-version v1.6.1 --cert-dir /var/lib/kubeadm/pki', '/usr/bin/kubeadm-init.sh'
create_shell_wrapper "kubeadm init --skip-preflight-checks --kubernetes-version v1.6.1", '/usr/bin/kubeadm-init.sh'
create_shell_wrapper "kubeadm init --skip-preflight-checks --kubernetes-version #{@versions[:kubernetes]}", '/usr/bin/kubeadm-init.sh'
end
install_dependencies

View File

@ -8,10 +8,44 @@ build-container-images: Boxfile
boxbuilder/box:master Boxfile
push-container-images: build-container-image
docker push mobylinux/kubernetes:latest
docker image push mobylinux/kubernetes:latest
docker image push mobylinux/kubernetes:latest-image-cache-common
docker image push mobylinux/kubernetes:latest-image-cache-control-plane
build-vm-images:
../../bin/moby build -name kube-master kube-master.yml
clean:
rm -f kube-master-bzImage kube-master-cmdline kube-master-disk.img kube-master-initrd.img
rm -f -r \
kube-master-bzImage kube-master-cmdline kube-master-disk.img kube-master-initrd.img \
image-cache/common image-cache/control-plane
COMMON_IMAGES := \
kube-proxy-amd64:v1.6.1 \
k8s-dns-sidecar-amd64:1.14.1 \
k8s-dns-kube-dns-amd64:1.14.1 \
k8s-dns-dnsmasq-nanny-amd64:1.14.1 \
pause-amd64:3.0
CONTROL_PLANE_IMAGES := \
kube-apiserver-amd64:v1.6.1 \
kube-controller-manager-amd64:v1.6.1 \
kube-scheduler-amd64:v1.6.1 \
etcd-amd64:3.0.17
image-cache/%.tar:
mkdir -p $(dir $@)
DOCKER_CONTENT_TRUST=1 docker image pull gcr.io/google_containers/$(shell basename $@ .tar)
docker image save -o $@ gcr.io/google_containers/$(shell basename $@ .tar)
cache-images:
for image in $(COMMON_IMAGES) ; \
do $(MAKE) "image-cache/common/$${image}.tar" \
; done
cp image-cache/Dockerfile image-cache/common
docker image build -t mobylinux/kubernetes:latest-image-cache-common image-cache/common
for image in $(CONTROL_PLANE_IMAGES) ; \
do $(MAKE) "image-cache/control-plane/$${image}.tar" \
; done
cp image-cache/Dockerfile image-cache/control-plane
docker image build -t mobylinux/kubernetes:latest-image-cache-control-plane image-cache/control-plane

View File

@ -11,7 +11,7 @@ make
Boot Kubernetes master OS image using `hyperkit` on macOS:
```
../../bin/moby run hyperkit -cpus 2 -mem 4096 -disk-size 2048 kube-master
./boot-master.sh
```
Manually initialise master with `kubeadm`:

View File

@ -0,0 +1,3 @@
#!/bin/bash -eux
rm -f kube-master-disk.img
../../bin/moby run hyperkit -cpus 2 -mem 4096 -disk-size 2048 kube-master

View File

@ -0,0 +1,6 @@
FROM mobylinux/docker-ce:741bf21513328f674e0cdcaa55492b0b75974e08
ADD . /images
ENTRYPOINT [ "/bin/sh", "-c" ]
CMD [ "for image in /images/*.tar ; do docker image load -i $image ; done" ]

View File

@ -77,8 +77,16 @@ services:
- /var:/var:rshared,rbind
- /var/lib/kubeadm:/etc/kubernetes
rootfsPropagation: shared
- name: kubernetes-image-cache-common
image: "mobylinux/kubernetes:latest-image-cache-common"
binds:
- /var/run:/var/run
- name: kubernetes-image-cache-control-plane
image: "mobylinux/kubernetes:latest-image-cache-control-plane"
binds:
- /var/run:/var/run
- name: kubelet
image: "errordeveloper/mobykube:master"
image: "mobylinux/kubernetes:latest"
capabilities:
- all
net: host