|
|
@ -99,12 +99,12 @@ get_latest_version_number() {
|
|
|
|
|
|
|
|
|
|
|
|
# Detect ip address od docker host
|
|
|
|
# Detect ip address od docker host
|
|
|
|
detect_docker_host_ip() {
|
|
|
|
detect_docker_host_ip() {
|
|
|
|
if [ -n "${DOCKER_HOST:-}" ]; then
|
|
|
|
if [[ -n "${DOCKER_HOST:-}" ]]; then
|
|
|
|
awk -F'[/:]' '{print $4}' <<< "$DOCKER_HOST"
|
|
|
|
awk -F'[/:]' '{print $4}' <<< "$DOCKER_HOST"
|
|
|
|
else
|
|
|
|
else
|
|
|
|
ifconfig docker0 \
|
|
|
|
ifconfig docker0 \
|
|
|
|
| grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' \
|
|
|
|
| grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' \
|
|
|
|
| grep -Eo '([0-9]*\.){3}[0-9]*' >/dev/null 2>&1 || :
|
|
|
|
| grep -Eo '([0-9]*\.){3}[0-9]*'
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -134,7 +134,9 @@ start_kubernetes() {
|
|
|
|
dns_args="--cluster-dns=8.8.8.8"
|
|
|
|
dns_args="--cluster-dns=8.8.8.8"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
local start_time=$(date +%s)
|
|
|
|
local started_at
|
|
|
|
|
|
|
|
local finished_at
|
|
|
|
|
|
|
|
started_at=$(date +%s)
|
|
|
|
|
|
|
|
|
|
|
|
docker run \
|
|
|
|
docker run \
|
|
|
|
--name=kubelet \
|
|
|
|
--name=kubelet \
|
|
|
@ -147,7 +149,7 @@ start_kubernetes() {
|
|
|
|
--pid=host \
|
|
|
|
--pid=host \
|
|
|
|
--privileged=true \
|
|
|
|
--privileged=true \
|
|
|
|
-d \
|
|
|
|
-d \
|
|
|
|
gcr.io/google_containers/hyperkube-amd64:${KUBE_VERSION} \
|
|
|
|
"gcr.io/google_containers/hyperkube-amd64:${KUBE_VERSION}" \
|
|
|
|
/hyperkube kubelet \
|
|
|
|
/hyperkube kubelet \
|
|
|
|
--containerized \
|
|
|
|
--containerized \
|
|
|
|
--hostname-override="127.0.0.1" \
|
|
|
|
--hostname-override="127.0.0.1" \
|
|
|
@ -155,7 +157,7 @@ start_kubernetes() {
|
|
|
|
--config=/etc/kubernetes/manifests \
|
|
|
|
--config=/etc/kubernetes/manifests \
|
|
|
|
--allow-privileged=true \
|
|
|
|
--allow-privileged=true \
|
|
|
|
${dns_args} \
|
|
|
|
${dns_args} \
|
|
|
|
--v=${LOG_LEVEL} >/dev/null
|
|
|
|
--v="${LOG_LEVEL}" >/dev/null
|
|
|
|
|
|
|
|
|
|
|
|
# We expect to have at least 3 running pods - etcd, master and kube-proxy.
|
|
|
|
# We expect to have at least 3 running pods - etcd, master and kube-proxy.
|
|
|
|
local attempt=1
|
|
|
|
local attempt=1
|
|
|
@ -165,13 +167,13 @@ start_kubernetes() {
|
|
|
|
done
|
|
|
|
done
|
|
|
|
echo
|
|
|
|
echo
|
|
|
|
|
|
|
|
|
|
|
|
local end_time=$(date +%s)
|
|
|
|
finished_at=$(date +%s)
|
|
|
|
echo "Started master components in $((end_time - start_time)) seconds."
|
|
|
|
echo "Started master components in $((finished_at - started_at)) seconds."
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# Open kubernetes master api port.
|
|
|
|
# Open kubernetes master api port.
|
|
|
|
setup_firewall() {
|
|
|
|
setup_firewall() {
|
|
|
|
[[ -n "${DOCKER_MACHINE_NAME}" ]] || return
|
|
|
|
[[ -n "${DOCKER_MACHINE_NAME:-}" ]] || return
|
|
|
|
|
|
|
|
|
|
|
|
echo "Adding iptables hackery for docker-machine..."
|
|
|
|
echo "Adding iptables hackery for docker-machine..."
|
|
|
|
|
|
|
|
|
|
|
@ -195,7 +197,9 @@ create_kube_system_namespace() {
|
|
|
|
create_kube_dns() {
|
|
|
|
create_kube_dns() {
|
|
|
|
[[ "${ENABLE_CLUSTER_DNS}" = true ]] || return
|
|
|
|
[[ "${ENABLE_CLUSTER_DNS}" = true ]] || return
|
|
|
|
|
|
|
|
|
|
|
|
local start_time=$(date +%s)
|
|
|
|
local started_at
|
|
|
|
|
|
|
|
local finished_at
|
|
|
|
|
|
|
|
started_at=$(date +%s)
|
|
|
|
|
|
|
|
|
|
|
|
echo "Setting up cluster dns..."
|
|
|
|
echo "Setting up cluster dns..."
|
|
|
|
|
|
|
|
|
|
|
@ -209,8 +213,8 @@ create_kube_dns() {
|
|
|
|
sleep $(( attempt++ ))
|
|
|
|
sleep $(( attempt++ ))
|
|
|
|
done
|
|
|
|
done
|
|
|
|
echo
|
|
|
|
echo
|
|
|
|
local end_time=$(date +%s)
|
|
|
|
finished_at=$(date +%s)
|
|
|
|
echo "Started DNS in $((end_time - start_time)) seconds."
|
|
|
|
echo "Started DNS in $((finished_at - started_at)) seconds."
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# Generate kubeconfig data for the created cluster.
|
|
|
|
# Generate kubeconfig data for the created cluster.
|
|
|
@ -245,22 +249,15 @@ download_kubectl() {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# Clean volumes that are left by kubelet
|
|
|
|
# Clean volumes that are left by kubelet
|
|
|
|
#
|
|
|
|
|
|
|
|
# https://github.com/kubernetes/kubernetes/issues/23197
|
|
|
|
|
|
|
|
# code stolen from https://github.com/huggsboson/docker-compose-kubernetes/blob/SwitchToSharedMount/kube-up.sh
|
|
|
|
|
|
|
|
clean_volumes() {
|
|
|
|
clean_volumes() {
|
|
|
|
|
|
|
|
echo "Cleaning up volumes"
|
|
|
|
|
|
|
|
|
|
|
|
if [[ -n "${DOCKER_MACHINE_NAME:-}" ]]; then
|
|
|
|
if [[ -n "${DOCKER_MACHINE_NAME:-}" ]]; then
|
|
|
|
docker-machine ssh "${DOCKER_MACHINE_NAME}" "mount | grep -o 'on /var/lib/kubelet.* type' | cut -c 4- | rev | cut -c 6- | rev | sort -r | xargs --no-run-if-empty sudo umount"
|
|
|
|
docker-machine ssh "${DOCKER_MACHINE_NAME}" "mount | grep -o 'on /var/lib/kubelet' | cut -c 4- | rev | cut -c 6- | rev | sort -r | xargs --no-run-if-empty sudo umount"
|
|
|
|
docker-machine ssh "${DOCKER_MACHINE_NAME}" "sudo rm -Rf /var/lib/kubelet"
|
|
|
|
docker-machine ssh "${DOCKER_MACHINE_NAME}" "sudo rm -rf /var/lib/kubelet"
|
|
|
|
docker-machine ssh "${DOCKER_MACHINE_NAME}" "sudo mkdir -p /var/lib/kubelet"
|
|
|
|
|
|
|
|
docker-machine ssh "${DOCKER_MACHINE_NAME}" "sudo mount --bind /var/lib/kubelet /var/lib/kubelet"
|
|
|
|
|
|
|
|
docker-machine ssh "${DOCKER_MACHINE_NAME}" "sudo mount --make-shared /var/lib/kubelet"
|
|
|
|
|
|
|
|
else
|
|
|
|
else
|
|
|
|
mount | grep -o 'on /var/lib/kubelet.* type' | cut -c 4- | rev | cut -c 6- | rev | sort -r | xargs --no-run-if-empty sudo umount
|
|
|
|
mount | grep -o 'on /var/lib/kubelet' | cut -c 4- | rev | cut -c 6- | rev | sort -r | xargs --no-run-if-empty sudo umount
|
|
|
|
sudo rm -Rf /var/lib/kubelet
|
|
|
|
sudo rm -rf /var/lib/kubelet
|
|
|
|
sudo mkdir -p /var/lib/kubelet
|
|
|
|
|
|
|
|
sudo mount --bind /var/lib/kubelet /var/lib/kubelet
|
|
|
|
|
|
|
|
sudo mount --make-shared /var/lib/kubelet
|
|
|
|
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|