Skip to content

Commit 875bed6

Browse files
committed
Update kubernetes to 1.14
Also enable external storage provisioners like Ceph RBD. Added eudev needed for detecting device mounts. Without it tools like rbd will timeout waiting for a message on /run/udev/control. Signed-off-by: Bastiaan Schaap <[email protected]>
1 parent 7622bd4 commit 875bed6

File tree

20 files changed

+160
-68
lines changed

20 files changed

+160
-68
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
*.iso
2+
*.tar
23
kube-*-kernel
34
kube-*-cmdline
45
kube-*-initrd.img
56
kube-*-state
67
kube-weave.yaml
8+
kube-calico.yaml

Makefile

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
KUBE_RUNTIME ?= docker
22
KUBE_NETWORK ?= weave
3+
KUBE_VERSION ?= 1.14
4+
KUBE_NETWORK_WEAVE ?= v2.5.2
5+
KUBE_NETWORK_CALICO ?= v3.8
36

4-
KUBE_NETWORK_WEAVE ?= v2.2.1
5-
6-
ifeq ($(shell uname -s),Darwin)
7-
KUBE_FORMATS ?= iso-efi
8-
else
9-
KUBE_FORMATS ?= iso-bios
10-
endif
7+
# ifeq ($(shell uname -s),Darwin)
8+
# KUBE_FORMATS ?= iso-efi
9+
# else
10+
#KUBE_FORMATS ?= iso-bios
11+
# endif
12+
KUBE_FORMATS ?= tar-kernel-initrd
1113

1214
KUBE_FORMAT_ARGS := $(patsubst %,-format %,$(KUBE_FORMATS))
1315

@@ -25,7 +27,12 @@ node: yml/kube.yml yml/$(KUBE_RUNTIME).yml yml/$(KUBE_NETWORK).yml $(KUBE_EXTRA_
2527
yml/weave.yml: kube-weave.yaml
2628

2729
kube-weave.yaml:
28-
curl -L -o $@ https://cloud.weave.works/k8s/v1.8/net?v=$(KUBE_NETWORK_WEAVE)
30+
curl -L -o $@ https://cloud.weave.works/k8s/v$(KUBE_VERSION)/net?v=$(KUBE_NETWORK_WEAVE)
31+
32+
yml/calico.yml: kube-calico.yaml
33+
34+
kube-calico.yaml:
35+
curl -L -o $@ https://docs.projectcalico.org/${KUBE_NETWORK_CALICO}/manifests/calico.yaml
2936

3037
.PHONY: update-hashes
3138
update-hashes:

pkg/cri-containerd/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM linuxkit/alpine:1b05307ae8152e3d38f79e297b0632697a30c65c AS build
1+
FROM linuxkit/alpine:08c8d8aa3638d035e18499a74faf50eedb8d6cf6-amd64 AS build
22

33
RUN \
44
apk add \

pkg/eudev/Dockerfile

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
FROM linuxkit/alpine:08c8d8aa3638d035e18499a74faf50eedb8d6cf6-amd64 AS mirror
2+
3+
RUN mkdir -p /out/etc/apk && cp -r /etc/apk/* /out/etc/apk/
4+
5+
RUN apk add --no-cache --initdb -p /out \
6+
alpine-baselayout \
7+
busybox \
8+
ca-certificates \
9+
tini \
10+
eudev \
11+
&& true
12+
13+
# Remove apk residuals. We have a read-only rootfs, so apk is of no use.
14+
RUN rm -rf /out/etc/apk /out/lib/apk /out/var/cache
15+
16+
FROM scratch
17+
WORKDIR /
18+
ENTRYPOINT []
19+
COPY --from=mirror /out /
20+
COPY etc/ /etc/
21+
COPY usr/ /usr/
22+
CMD ["/sbin/tini", "/usr/bin/udevd.sh"]

pkg/eudev/build.yml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
org: linuxkit
2+
image: eudev
3+
network: true
4+
arches:
5+
- amd64
6+
config:
7+
binds:
8+
- /dev:/dev
9+
- /run:/run:rshared,rbind
10+
- /var:/var:rshared,rbind
11+
capabilities:
12+
- all
13+
rootfsPropagation: shared
14+
pid: host
15+
runtime:
16+
mkdir:
17+
- /run/udev
18+
mounts:
19+
- type: bind
20+
source: /run/udev
21+
destination: /run/udev
22+
options: ["rw","bind"]

pkg/eudev/etc/udev/udev.conf

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# see udev.conf(5) for details
2+
3+
udev_log="info"

pkg/eudev/usr/bin/udevd.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#!/bin/sh
2+
udevadm hwdb --update
3+
exec /sbin/udevd

pkg/kube-e2e-test/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM linuxkit/alpine:1b05307ae8152e3d38f79e297b0632697a30c65c AS build
1+
FROM linuxkit/alpine:08c8d8aa3638d035e18499a74faf50eedb8d6cf6-amd64 AS build
22

33
# When changing kubernetes_version remember to also update:
44
# - scripts/mk-image-cache-lst and run `make refresh-image-caches` from top-level

pkg/kubelet/Dockerfile

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
FROM linuxkit/alpine:1b05307ae8152e3d38f79e297b0632697a30c65c AS build
1+
FROM linuxkit/alpine:08c8d8aa3638d035e18499a74faf50eedb8d6cf6-amd64 AS build
22

33
# When changing kubernetes_version remember to also update:
44
# - scripts/mk-image-cache-lst and run `make refresh-image-caches` from top-level
55
# - pkg/e2e-test/Dockerfile
6-
ENV kubernetes_version v1.10.3
7-
ENV cni_version v0.7.1
8-
ENV critools_version v1.0.0-alpha.0
6+
ENV kubernetes_version v1.14.4
7+
ENV cni_version v0.8.1
8+
ENV critools_version v1.15.0
99

1010
RUN apk add -U --no-cache \
1111
bash \
@@ -19,6 +19,7 @@ RUN apk add -U --no-cache \
1919
linux-headers \
2020
make \
2121
rsync \
22+
py-prettytable \
2223
&& true
2324

2425
ENV GOPATH=/go PATH=$PATH:/go/bin
@@ -54,7 +55,7 @@ RUN set -e; \
5455
git fetch origin "CNI_BRANCH"; \
5556
fi; \
5657
git checkout -q $CNI_COMMIT
57-
RUN ./build.sh
58+
RUN ./build_linux.sh
5859

5960
### critools
6061

@@ -94,6 +95,12 @@ RUN apk add --no-cache --initdb -p /out \
9495
socat \
9596
util-linux \
9697
nfs-utils \
98+
ceph-common \
99+
rbd-nbd \
100+
py-prettytable \
101+
e2fsprogs \
102+
xfsprogs \
103+
btrfs-progs \
97104
&& true
98105

99106
RUN cp $GOPATH/src/github.com/kubernetes/kubernetes/_output/bin/kubelet /out/usr/bin/kubelet
@@ -116,4 +123,5 @@ FROM scratch
116123
WORKDIR /
117124
ENTRYPOINT ["/usr/bin/kubelet.sh"]
118125
COPY --from=build /out /
126+
COPY --from=docker:18.03.0-ce /usr/local/bin/docker /usr/local/bin/docker
119127
ENV KUBECONFIG "/etc/kubernetes/admin.conf"

pkg/kubelet/build.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ config:
3636
- /var/lib/cni/bin
3737
- /var/lib/kubelet-plugins
3838
- /var/lib/nfs/statd/sm
39+
- /run/udev
3940
mounts:
4041
- type: bind
4142
source: /var/lib/cni/bin
@@ -45,3 +46,7 @@ config:
4546
source: /var/lib/cni/conf
4647
destination: /etc/cni/net.d
4748
options: ["rw","bind"]
49+
- type: bind
50+
source: /run/udev
51+
destination: /run/udev
52+
options: ["rw","bind"]

pkg/kubelet/kubelet.sh

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22
# Kubelet outputs only to stderr, so arrange for everything we do to go there too
33
exec 1>&2
44

5+
# Need to remount the CNI plugins mount, because it's noexec when no disk
6+
# is present in the host (tmpfs)
7+
mount -o remount,exec /opt/cni/bin
8+
59
if [ -e /etc/kubelet.sh.conf ] ; then
610
. /etc/kubelet.sh.conf
711
fi
@@ -79,7 +83,18 @@ else
7983
"enforceNodeAllocatable": [],
8084
"kubeReservedCgroup": "podruntime",
8185
"systemReservedCgroup": "systemreserved",
82-
"cgroupRoot": "kubepods"
86+
"cgroupRoot": "kubepods",
87+
"authentication": {
88+
"x509": {
89+
"clientCAFile": "/etc/kubernetes/pki/ca.crt"
90+
},
91+
"anonymous": {
92+
"enabled": true
93+
}
94+
},
95+
"authorization": {
96+
"mode": "AlwaysAllow"
97+
}
8398
}
8499
EOF
85100
fi
@@ -98,9 +113,7 @@ exec kubelet \
98113
--config=/run/config/kubelet-config.json \
99114
--kubeconfig=/etc/kubernetes/kubelet.conf \
100115
--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf \
101-
--allow-privileged=true \
102116
--network-plugin=cni \
103117
--cni-conf-dir=/etc/cni/net.d \
104118
--cni-bin-dir=/opt/cni/bin \
105-
--cadvisor-port=0 \
106119
$KUBELET_ARGS $@

pkg/kubernetes-docker-image-cache-common/Dockerfile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM linuxkit/alpine:1b05307ae8152e3d38f79e297b0632697a30c65c AS build
1+
FROM linuxkit/alpine:08c8d8aa3638d035e18499a74faf50eedb8d6cf6-amd64 AS build
22

33
RUN mkdir -p /out/etc/apk && cp -r /etc/apk/* /out/etc/apk/
44
RUN apk add --no-cache --initdb -p /out \
@@ -11,7 +11,7 @@ RUN rm -rf /out/etc/apk /out/lib/apk /out/var/cache
1111
FROM scratch
1212
WORKDIR /
1313
COPY --from=build /out /
14-
COPY --from=docker:17.06.0-ce /usr/local/bin/docker /usr/local/bin/docker
14+
COPY --from=docker:18.03.0-ce /usr/local/bin/docker /usr/local/bin/docker
1515
COPY dl/*.tar /images/
1616
ENTRYPOINT [ "/bin/sh", "-c" ]
17-
CMD [ "for image in /images/*.tar ; do docker image load -i $image && rm -f $image ; done" ]
17+
CMD [ "sleep 10; for image in /images/*.tar ; do docker image load -i $image && rm -f $image ; done" ]
Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
# autogenerated by:
22
# ./scripts/mk-image-cache-lst common
3-
gcr.io/google_containers/kube-proxy-amd64:v1.10.3@sha256:568df575bb2e630abfd4a4754a23a8af7b13c3f4a526796af01021eda3ff7a30
4-
gcr.io/google_containers/k8s-dns-sidecar-amd64:1.14.8@sha256:23df717980b4aa08d2da6c4cfa327f1b730d92ec9cf740959d2d5911830d82fb
5-
gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.14.8@sha256:6d8e0da4fb46e9ea2034a3f4cab0e095618a2ead78720c12e791342738e5f85d
6-
gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64:1.14.8@sha256:93c827f018cf3322f1ff2aa80324a0306048b0a69bc274e423071fb0d2d29d8b
7-
gcr.io/google_containers/pause-amd64:3.1@sha256:59eec8837a4d942cc19a52b8c09ea75121acc38114a2c68b98983ce9356b8610
3+
gcr.io/google_containers/kube-proxy:v1.14.4@sha256:a8d90a206f775e09927af8567b076d7a14caa1a451be16b1cf1933a972e8aad4
4+
gcr.io/google_containers/coredns:1.3.1@sha256:02382353821b12c21b062c59184e227e001079bb13ebd01f9d3270ba0fcbf1e4
5+
gcr.io/google_containers/pause:3.1@sha256:59eec8837a4d942cc19a52b8c09ea75121acc38114a2c68b98983ce9356b8610

pkg/kubernetes-docker-image-cache-control-plane/Dockerfile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM linuxkit/alpine:1b05307ae8152e3d38f79e297b0632697a30c65c AS build
1+
FROM linuxkit/alpine:08c8d8aa3638d035e18499a74faf50eedb8d6cf6-amd64 AS build
22

33
RUN mkdir -p /out/etc/apk && cp -r /etc/apk/* /out/etc/apk/
44
RUN apk add --no-cache --initdb -p /out \
@@ -11,7 +11,7 @@ RUN rm -rf /out/etc/apk /out/lib/apk /out/var/cache
1111
FROM scratch
1212
WORKDIR /
1313
COPY --from=build /out /
14-
COPY --from=docker:17.06.0-ce /usr/local/bin/docker /usr/local/bin/docker
14+
COPY --from=docker:18.03.0-ce /usr/local/bin/docker /usr/local/bin/docker
1515
COPY dl/*.tar /images/
1616
ENTRYPOINT [ "/bin/sh", "-c" ]
17-
CMD [ "for image in /images/*.tar ; do docker image load -i $image && rm -f $image ; done" ]
17+
CMD [ "sleep 10; for image in /images/*.tar ; do docker image load -i $image && rm -f $image ; done" ]
Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# autogenerated by:
22
# ./scripts/mk-image-cache-lst control-plane
3-
gcr.io/google_containers/kube-apiserver-amd64:v1.10.3@sha256:a6c4b6b2429d0a15d30a546226e01b1164118e022ad40f3ece2f95126f1580f5
4-
gcr.io/google_containers/kube-controller-manager-amd64:v1.10.3@sha256:98a3a7dc4c6c60dbeb0273302d697edaa89bd10fceed87ad5144c0b0acc5cced
5-
gcr.io/google_containers/kube-scheduler-amd64:v1.10.3@sha256:4770e1f1eef2229138e45a2b813c927e971da9c40256a7e2321ccf825af56916
6-
gcr.io/google_containers/etcd-amd64:3.1.12@sha256:68235934469f3bc58917bcf7018bf0d3b72129e6303b0bef28186d96b2259317
3+
gcr.io/google_containers/kube-apiserver:v1.14.4@sha256:be78c5871964d5f7a6716670a3e40fc0815e8a7391b31a60d261b8d40e663e34
4+
gcr.io/google_containers/kube-proxy:v1.14.4@sha256:a8d90a206f775e09927af8567b076d7a14caa1a451be16b1cf1933a972e8aad4
5+
gcr.io/google_containers/kube-controller-manager:v1.14.4@sha256:8c990c920d141979a35d3da73dac38415ba5946ecff48bdf1a4455271090ffaf
6+
gcr.io/google_containers/kube-scheduler:v1.14.4@sha256:5463ae2574811dc07f8c8bf70b8ebce8c021e630d5f176ad0d0bfeebea504d8b
7+
gcr.io/google_containers/etcd:3.3.10-1@sha256:02cd751eef4f7dcea7986e58d51903dab39baf4606f636b50891f30190abce2c

scripts/mk-image-cache-lst

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,21 @@ repo=gcr.io/google_containers
33
# When changing kubernetes_version remember to also update:
44
# - pkg/kubelet/Dockerfile
55
# - pkg/e2e-test/Dockerfile
6-
kubernetes_version=v1.10.3
7-
kube_dns_version=1.14.8
6+
kubernetes_version=v1.14.4
7+
coredns_version=1.3.1
88
pause_version=3.1
9-
etcd_version=3.1.12
9+
etcd_version=3.3.10-1
1010

1111
common="
12-
kube-proxy-amd64:$kubernetes_version
13-
k8s-dns-sidecar-amd64:$kube_dns_version
14-
k8s-dns-kube-dns-amd64:$kube_dns_version
15-
k8s-dns-dnsmasq-nanny-amd64:$kube_dns_version
16-
pause-amd64:$pause_version"
12+
kube-proxy:$kubernetes_version
13+
coredns:$coredns_version
14+
pause:$pause_version"
1715

1816
control="
19-
kube-apiserver-amd64:$kubernetes_version
20-
kube-controller-manager-amd64:$kubernetes_version
21-
kube-scheduler-amd64:$kubernetes_version
22-
etcd-amd64:$etcd_version"
17+
kube-apiserver:$kubernetes_version
18+
kube-controller-manager:$kubernetes_version
19+
kube-scheduler:$kubernetes_version
20+
etcd:$etcd_version"
2321

2422
oi() {
2523
local i="$1"

yml/calico.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
files:
2+
- path: /etc/kubeadm/kube-system.init/50-calico.yaml
3+
source: kube-calico.yaml

yml/docker-master.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
services:
22
- name: kubernetes-docker-image-cache-control-plane
3-
image: linuxkit/kubernetes-docker-image-cache-control-plane:698faae3de953d7fc0f009360bcfce98497afe76
3+
image: linuxkit/kubernetes-docker-image-cache-control-plane:698faae3de953d7fc0f009360bcfce98497afe76-dirty
44
cgroupsPath: podruntime/control-cache

yml/docker.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ services:
2626
mkdir: ["/var/lib/kubeadm", "/var/lib/cni/conf", "/var/lib/cni/bin", "/var/lib/kubelet-plugins"]
2727
cgroupsPath: podruntime/docker
2828
- name: kubernetes-docker-image-cache-common
29-
image: linuxkit/kubernetes-docker-image-cache-common:2da947148638cbbef869215cdb0e572c0402833c
29+
image: linuxkit/kubernetes-docker-image-cache-common:2da947148638cbbef869215cdb0e572c0402833c-dirty
3030
cgroupsPath: podruntime/common-cache
3131
files:
3232
- path: /etc/kubelet.sh.conf

0 commit comments

Comments
 (0)