mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-30 23:15:14 +00:00
cluster/saltbase: Enable rkt to load master components images.
This commit is contained in:
parent
16d69f9f37
commit
d96c7edc34
5
cluster/gce/coreos/configure-node.sh
Normal file → Executable file
5
cluster/gce/coreos/configure-node.sh
Normal file → Executable file
@ -173,8 +173,8 @@ function configure-master-components() {
|
||||
configure-kube-apiserver
|
||||
configure-kube-scheduler
|
||||
configure-kube-controller-manager
|
||||
configure-addon-manager
|
||||
configure-master-addons
|
||||
configure-addon-manager
|
||||
}
|
||||
|
||||
# TODO(yifan): Merge this with mount-master-pd() in configure-vm.sh
|
||||
@ -301,9 +301,10 @@ function load-docker-images() {
|
||||
}
|
||||
|
||||
|
||||
# TODO(yifan): Making this function more generic for other runtimes.
|
||||
function load-master-components-images() {
|
||||
echo "Loading docker images for master components"
|
||||
export RKT_BIN=/opt/rkt/rkt
|
||||
export DOCKER2ACI_BIN=/opt/docker2aci/docker2aci
|
||||
${SALT_DIR}/install.sh ${KUBE_BIN_TAR}
|
||||
${SALT_DIR}/salt/kube-master-addons/kube-master-addons.sh
|
||||
|
||||
|
@ -15,52 +15,76 @@
|
||||
# limitations under the License.
|
||||
|
||||
# loadedImageFlags is a bit-flag to track which docker images loaded successfully.
|
||||
let loadedImageFlags=0
|
||||
|
||||
while true; do
|
||||
restart_docker=false
|
||||
|
||||
if which docker 1>/dev/null 2>&1; then
|
||||
|
||||
timeout 30 docker load -i /srv/salt/kube-bins/kube-apiserver.tar 1>/dev/null 2>&1
|
||||
rc=$?
|
||||
if [[ $rc == 0 ]]; then
|
||||
let loadedImageFlags="$loadedImageFlags|1"
|
||||
elif [[ $rc == 124 ]]; then
|
||||
restart_docker=true
|
||||
function load-docker-images() {
|
||||
let loadedImageFlags=0
|
||||
|
||||
while true; do
|
||||
restart_docker=false
|
||||
|
||||
if which docker 1>/dev/null 2>&1; then
|
||||
|
||||
timeout 30 docker load -i /srv/salt/kube-bins/kube-apiserver.tar 1>/dev/null 2>&1
|
||||
rc=$?
|
||||
if [[ $rc == 0 ]]; then
|
||||
let loadedImageFlags="$loadedImageFlags|1"
|
||||
elif [[ $rc == 124 ]]; then
|
||||
restart_docker=true
|
||||
fi
|
||||
|
||||
timeout 30 docker load -i /srv/salt/kube-bins/kube-scheduler.tar 1>/dev/null 2>&1
|
||||
rc=$?
|
||||
if [[ $rc == 0 ]]; then
|
||||
let loadedImageFlags="$loadedImageFlags|2"
|
||||
elif [[ $rc == 124 ]]; then
|
||||
restart_docker=true
|
||||
fi
|
||||
|
||||
timeout 30 docker load -i /srv/salt/kube-bins/kube-controller-manager.tar 1>/dev/null 2>&1
|
||||
rc=$?
|
||||
if [[ $rc == 0 ]]; then
|
||||
let loadedImageFlags="$loadedImageFlags|4"
|
||||
elif [[ $rc == 124 ]]; then
|
||||
restart_docker=true
|
||||
fi
|
||||
fi
|
||||
|
||||
timeout 30 docker load -i /srv/salt/kube-bins/kube-scheduler.tar 1>/dev/null 2>&1
|
||||
rc=$?
|
||||
if [[ $rc == 0 ]]; then
|
||||
let loadedImageFlags="$loadedImageFlags|2"
|
||||
elif [[ $rc == 124 ]]; then
|
||||
restart_docker=true
|
||||
|
||||
# required docker images got installed. exit while loop.
|
||||
if [[ $loadedImageFlags == 7 ]]; then break; fi
|
||||
|
||||
# Sometimes docker load hang, restart docker daemon resolve the issue
|
||||
if [[ $restart_docker ]]; then
|
||||
if ! service docker restart; then # Try systemctl if there's no service command.
|
||||
systemctl restart docker
|
||||
fi
|
||||
fi
|
||||
|
||||
# sleep for 15 seconds before attempting to load docker images again
|
||||
sleep 15
|
||||
|
||||
done
|
||||
}
|
||||
|
||||
timeout 30 docker load -i /srv/salt/kube-bins/kube-controller-manager.tar 1>/dev/null 2>&1
|
||||
rc=$?
|
||||
if [[ $rc == 0 ]]; then
|
||||
let loadedImageFlags="$loadedImageFlags|4"
|
||||
elif [[ $rc == 124 ]]; then
|
||||
restart_docker=true
|
||||
fi
|
||||
fi
|
||||
function convert-rkt-image() {
|
||||
(cd /tmp; ${DOCKER2ACI_BIN} $1)
|
||||
}
|
||||
|
||||
# required docker images got installed. exit while loop.
|
||||
if [[ $loadedImageFlags == 7 ]]; then break; fi
|
||||
function load-rkt-images() {
|
||||
convert-rkt-image /srv/salt/kube-bins/kube-apiserver.tar
|
||||
convert-rkt-image /srv/salt/kube-bins/kube-scheduler.tar
|
||||
convert-rkt-image /srv/salt/kube-bins/kube-controller-manager.tar
|
||||
|
||||
# Sometimes docker load hang, restart docker daemon resolve the issue
|
||||
if [[ $restart_docker ]]; then
|
||||
if ! service docker restart; then # Try systemctl if there's no service command.
|
||||
systemctl restart docker
|
||||
fi
|
||||
fi
|
||||
# Currently, we can't run docker image tarballs directly,
|
||||
# So we use 'rkt fetch' to load the docker images into rkt image stores.
|
||||
# see https://github.com/coreos/rkt/issues/2392.
|
||||
${RKT_BIN} fetch /tmp/*.aci --insecure-options=image
|
||||
}
|
||||
|
||||
# sleep for 15 seconds before attempting to load docker images again
|
||||
sleep 15
|
||||
|
||||
done
|
||||
if [[ "${KUBERNETES_CONTAINER_RUNTIME}" == "rkt" ]]; then
|
||||
load-rkt-images
|
||||
else
|
||||
load-docker-images
|
||||
fi
|
||||
|
||||
# Now exit. After kube-push, salt will notice that the service is down and it
|
||||
# will start it and new docker images will be loaded.
|
||||
|
Loading…
Reference in New Issue
Block a user