mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-04 09:49:50 +00:00
Merge pull request #123943 from dims/allow-installing-newer-containerd-runc-on-cos
Allow installing newer containerd runc on cos
This commit is contained in:
commit
9df98f3d39
@ -112,6 +112,13 @@ export LOAD_IMAGE_COMMAND=${KUBE_LOAD_IMAGE_COMMAND:-ctr -n=k8s.io images import
|
|||||||
export UBUNTU_INSTALL_CONTAINERD_VERSION=${KUBE_UBUNTU_INSTALL_CONTAINERD_VERSION:-}
|
export UBUNTU_INSTALL_CONTAINERD_VERSION=${KUBE_UBUNTU_INSTALL_CONTAINERD_VERSION:-}
|
||||||
export UBUNTU_INSTALL_RUNC_VERSION=${KUBE_UBUNTU_INSTALL_RUNC_VERSION:-}
|
export UBUNTU_INSTALL_RUNC_VERSION=${KUBE_UBUNTU_INSTALL_RUNC_VERSION:-}
|
||||||
|
|
||||||
|
# Ability to inject custom versions (COS images ONLY)
|
||||||
|
# if KUBE_COS_INSTALL_CONTAINERD_VERSION or KUBE_COS_INSTALL_RUNC_VERSION
|
||||||
|
# is set to empty then we do not override the version(s) and just
|
||||||
|
# use whatever is in the default installation of containerd package
|
||||||
|
export COS_INSTALL_CONTAINERD_VERSION=${KUBE_COS_INSTALL_CONTAINERD_VERSION:-}
|
||||||
|
export COS_INSTALL_RUNC_VERSION=${KUBE_COS_INSTALL_RUNC_VERSION:-}
|
||||||
|
|
||||||
# MASTER_EXTRA_METADATA is the extra instance metadata on master instance separated by commas.
|
# MASTER_EXTRA_METADATA is the extra instance metadata on master instance separated by commas.
|
||||||
export MASTER_EXTRA_METADATA=${KUBE_MASTER_EXTRA_METADATA:-${KUBE_EXTRA_METADATA:-}}
|
export MASTER_EXTRA_METADATA=${KUBE_MASTER_EXTRA_METADATA:-${KUBE_EXTRA_METADATA:-}}
|
||||||
# MASTER_EXTRA_METADATA is the extra instance metadata on node instance separated by commas.
|
# MASTER_EXTRA_METADATA is the extra instance metadata on node instance separated by commas.
|
||||||
|
@ -125,6 +125,13 @@ export GCI_DOCKER_VERSION=${KUBE_GCI_DOCKER_VERSION:-}
|
|||||||
export UBUNTU_INSTALL_CONTAINERD_VERSION=${KUBE_UBUNTU_INSTALL_CONTAINERD_VERSION:-}
|
export UBUNTU_INSTALL_CONTAINERD_VERSION=${KUBE_UBUNTU_INSTALL_CONTAINERD_VERSION:-}
|
||||||
export UBUNTU_INSTALL_RUNC_VERSION=${KUBE_UBUNTU_INSTALL_RUNC_VERSION:-}
|
export UBUNTU_INSTALL_RUNC_VERSION=${KUBE_UBUNTU_INSTALL_RUNC_VERSION:-}
|
||||||
|
|
||||||
|
# Ability to inject custom versions (COS images ONLY)
|
||||||
|
# if KUBE_COS_INSTALL_CONTAINERD_VERSION or KUBE_COS_INSTALL_RUNC_VERSION
|
||||||
|
# is set to empty then we do not override the version(s) and just
|
||||||
|
# use whatever is in the default installation of containerd package
|
||||||
|
export COS_INSTALL_CONTAINERD_VERSION=${KUBE_COS_INSTALL_CONTAINERD_VERSION:-}
|
||||||
|
export COS_INSTALL_RUNC_VERSION=${KUBE_COS_INSTALL_RUNC_VERSION:-}
|
||||||
|
|
||||||
# MASTER_EXTRA_METADATA is the extra instance metadata on master instance separated by commas.
|
# MASTER_EXTRA_METADATA is the extra instance metadata on master instance separated by commas.
|
||||||
export MASTER_EXTRA_METADATA=${KUBE_MASTER_EXTRA_METADATA:-${KUBE_EXTRA_METADATA:-}}
|
export MASTER_EXTRA_METADATA=${KUBE_MASTER_EXTRA_METADATA:-${KUBE_EXTRA_METADATA:-}}
|
||||||
# MASTER_EXTRA_METADATA is the extra instance metadata on node instance separated by commas.
|
# MASTER_EXTRA_METADATA is the extra instance metadata on node instance separated by commas.
|
||||||
|
@ -542,6 +542,46 @@ function install-containerd-ubuntu {
|
|||||||
sudo systemctl start containerd
|
sudo systemctl start containerd
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# If we are on cos we can try to install containerd
|
||||||
|
function install-containerd-cos {
|
||||||
|
# bailout if we are not on COS
|
||||||
|
if [ -e /etc/os-release ] && ! grep -q "ID=cos" /etc/os-release; then
|
||||||
|
echo "Unable to automatically install containerd in non-cos image. Bailing out..."
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Override to latest versions of containerd and runc
|
||||||
|
systemctl stop containerd
|
||||||
|
mkdir -p /home/containerd/
|
||||||
|
mount --bind /home/containerd /home/containerd
|
||||||
|
mount -o remount,exec /home/containerd
|
||||||
|
if [[ -n "${COS_INSTALL_CONTAINERD_VERSION:-}" ]]; then
|
||||||
|
# containerd versions have slightly different url(s), so try both
|
||||||
|
# shellcheck disable=SC2086
|
||||||
|
( curl ${CURL_FLAGS} \
|
||||||
|
--location \
|
||||||
|
"https://github.com/containerd/containerd/releases/download/${COS_INSTALL_CONTAINERD_VERSION}/containerd-${COS_INSTALL_CONTAINERD_VERSION:1}-${HOST_PLATFORM}-${HOST_ARCH}.tar.gz" \
|
||||||
|
|| curl ${CURL_FLAGS} \
|
||||||
|
--location \
|
||||||
|
"https://github.com/containerd/containerd/releases/download/${COS_INSTALL_CONTAINERD_VERSION}/containerd-${COS_INSTALL_CONTAINERD_VERSION:1}.${HOST_PLATFORM}-${HOST_ARCH}.tar.gz" ) \
|
||||||
|
| tar --overwrite -xzv -C /home/containerd/
|
||||||
|
cp /usr/lib/systemd/system/containerd.service /etc/systemd/system/containerd.service
|
||||||
|
# fix the path of the new containerd binary
|
||||||
|
sed -i 's|ExecStart=.*|ExecStart=/home/containerd/bin/containerd|' /etc/systemd/system/containerd.service
|
||||||
|
fi
|
||||||
|
if [[ -n "${COS_INSTALL_RUNC_VERSION:-}" ]]; then
|
||||||
|
# shellcheck disable=SC2086
|
||||||
|
curl ${CURL_FLAGS} \
|
||||||
|
--location \
|
||||||
|
"https://github.com/opencontainers/runc/releases/download/${COS_INSTALL_RUNC_VERSION}/runc.${HOST_ARCH}" --output /home/containerd/bin/runc \
|
||||||
|
&& chmod 755 /home/containerd/bin/runc
|
||||||
|
# ensure runc gets picked up from the correct location
|
||||||
|
sed -i "/\[Service\]/a Environment=PATH=/home/containerd/bin:$PATH" /etc/systemd/system/containerd.service
|
||||||
|
fi
|
||||||
|
systemctl daemon-reload
|
||||||
|
sudo systemctl start containerd
|
||||||
|
}
|
||||||
|
|
||||||
function install-auth-provider-gcp {
|
function install-auth-provider-gcp {
|
||||||
local -r filename="auth-provider-gcp"
|
local -r filename="auth-provider-gcp"
|
||||||
local -r auth_provider_storage_full_path="${AUTH_PROVIDER_GCP_STORAGE_PATH}/${AUTH_PROVIDER_GCP_VERSION}/${HOST_PLATFORM}_${HOST_ARCH}/${filename}"
|
local -r auth_provider_storage_full_path="${AUTH_PROVIDER_GCP_STORAGE_PATH}/${AUTH_PROVIDER_GCP_VERSION}/${HOST_PLATFORM}_${HOST_ARCH}/${filename}"
|
||||||
@ -587,6 +627,9 @@ function ensure-containerd-runtime {
|
|||||||
if [[ -n "${UBUNTU_INSTALL_CONTAINERD_VERSION:-}" || -n "${UBUNTU_INSTALL_RUNC_VERSION:-}" ]]; then
|
if [[ -n "${UBUNTU_INSTALL_CONTAINERD_VERSION:-}" || -n "${UBUNTU_INSTALL_RUNC_VERSION:-}" ]]; then
|
||||||
log-wrap "InstallContainerdUbuntu" install-containerd-ubuntu
|
log-wrap "InstallContainerdUbuntu" install-containerd-ubuntu
|
||||||
fi
|
fi
|
||||||
|
if [[ -n "${COS_INSTALL_CONTAINERD_VERSION:-}" || -n "${COS_INSTALL_RUNC_VERSION:-}" ]]; then
|
||||||
|
log-wrap "InstallContainerdCOS" install-containerd-cos
|
||||||
|
fi
|
||||||
|
|
||||||
# Fall back to installing distro specific containerd, if not found
|
# Fall back to installing distro specific containerd, if not found
|
||||||
if ! command -v containerd >/dev/null 2>&1; then
|
if ! command -v containerd >/dev/null 2>&1; then
|
||||||
@ -598,6 +641,9 @@ function ensure-containerd-runtime {
|
|||||||
Ubuntu)
|
Ubuntu)
|
||||||
log-wrap "InstallContainerdUbuntu" install-containerd-ubuntu
|
log-wrap "InstallContainerdUbuntu" install-containerd-ubuntu
|
||||||
;;
|
;;
|
||||||
|
cos)
|
||||||
|
log-wrap "InstallContainerdCOS" install-containerd-cos
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
echo "Installing containerd for linux release ${linuxrelease} not supported" >&2
|
echo "Installing containerd for linux release ${linuxrelease} not supported" >&2
|
||||||
exit 2
|
exit 2
|
||||||
|
@ -1211,6 +1211,8 @@ CONTAINER_RUNTIME_TEST_HANDLER: $(yaml-quote "${CONTAINER_RUNTIME_TEST_HANDLER:-
|
|||||||
CONTAINERD_INFRA_CONTAINER: $(yaml-quote "${CONTAINER_INFRA_CONTAINER:-}")
|
CONTAINERD_INFRA_CONTAINER: $(yaml-quote "${CONTAINER_INFRA_CONTAINER:-}")
|
||||||
UBUNTU_INSTALL_CONTAINERD_VERSION: $(yaml-quote "${UBUNTU_INSTALL_CONTAINERD_VERSION:-}")
|
UBUNTU_INSTALL_CONTAINERD_VERSION: $(yaml-quote "${UBUNTU_INSTALL_CONTAINERD_VERSION:-}")
|
||||||
UBUNTU_INSTALL_RUNC_VERSION: $(yaml-quote "${UBUNTU_INSTALL_RUNC_VERSION:-}")
|
UBUNTU_INSTALL_RUNC_VERSION: $(yaml-quote "${UBUNTU_INSTALL_RUNC_VERSION:-}")
|
||||||
|
COS_INSTALL_CONTAINERD_VERSION: $(yaml-quote "${COS_INSTALL_CONTAINERD_VERSION:-}")
|
||||||
|
COS_INSTALL_RUNC_VERSION: $(yaml-quote "${COS_INSTALL_RUNC_VERSION:-}")
|
||||||
NODE_LOCAL_SSDS_EXT: $(yaml-quote "${NODE_LOCAL_SSDS_EXT:-}")
|
NODE_LOCAL_SSDS_EXT: $(yaml-quote "${NODE_LOCAL_SSDS_EXT:-}")
|
||||||
NODE_LOCAL_SSDS_EPHEMERAL: $(yaml-quote "${NODE_LOCAL_SSDS_EPHEMERAL:-}")
|
NODE_LOCAL_SSDS_EPHEMERAL: $(yaml-quote "${NODE_LOCAL_SSDS_EPHEMERAL:-}")
|
||||||
LOAD_IMAGE_COMMAND: $(yaml-quote "${LOAD_IMAGE_COMMAND:-}")
|
LOAD_IMAGE_COMMAND: $(yaml-quote "${LOAD_IMAGE_COMMAND:-}")
|
||||||
|
Loading…
Reference in New Issue
Block a user