Skip to content

Conversation

@stephen-zeng
Copy link

@stephen-zeng stephen-zeng commented May 2, 2025

How wonderful guide it is! It helped me a lot and here's some improvement that I think will be helpful. Add up-to-date-version-fetching command to 02-jumpbox.md and add the download-template.txt file to fit that, making sure the software downloaded are the latest stable version. The instruction command had been tested from my own server to ensure it worked. Following are the input and output from my server. Hope it helps 😊.

root@SZ-Main:~/test# ls
download-template.txt
root@SZ-Main:~/test# {
  export ARCH=$(dpkg --print-architecture)
  echo $ARCH

  export K8S_VERSION=$(curl -sSL https://dl.k8s.io/release/stable.txt)
  echo "K8S Version: $K8S_VERSION"

  export CRI_VERSION=$(wget -qO- https://api.github.com/repos/kubernetes-sigs/cri-tools/releases/latest | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
  echo "CRI Version: $CRI_VERSION"


  export RUNC_VERSION=$(wget -qO- https://api.github.com/repos/opencontainers/runc/releases/latest | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
  echo "runc Version: $RUNC_VERSION"

  export CNI_VERSION=$(wget -qO- https://api.github.com/repos/containernetworking/plugins/releases/latest | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
  echo "cni Version: $CNI_VERSION"

  export CONTAINERD_VERSION=$(wget -qO- https://api.github.com/repos/containerd/containerd/releases/latest | grep '"tag_name":' | sed -E 's/.*"v?([^"]+)".*/\1/')
  echo "containerd Version: v$CONTAINERD_VERSION"

  export ETCD_VERSION=$(wget -qO- https://api.github.com/repos/etcd-io/etcd/releases/latest | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
  echo "etcd Version: $ETCD_VERSION"

  envsubst < download-template.txt > download.txt

  wget -q --show-progress \
  --https-only \
  --timestamping \
  -P downloads \
  -i download.txt
}
amd64
K8S Version: v1.33.0
CRI Version: v1.33.0
runc Version: v1.3.0
cni Version: v1.7.1
containerd Version: v2.0.5
etcd Version: v3.5.21
kubectl                                        100%[==================================================================================================>]  57.34M  11.4MB/s    in 6.5s    
kube-apiserver                                 100%[==================================================================================================>]  93.42M  11.4MB/s    in 9.2s    
kube-controller-manager                        100%[==================================================================================================>]  86.55M  10.3MB/s    in 9.2s    
kube-scheduler                                 100%[==================================================================================================>]  66.38M  9.14MB/s    in 8.2s    
kube-proxy                                     100%[==================================================================================================>]  67.32M  11.3MB/s    in 7.0s    
kubelet                                        100%[==================================================================================================>]  77.91M  11.4MB/s    in 8.2s    
crictl-v1.33.0-linux-amd64.tar.gz              100%[==================================================================================================>]  19.43M  7.09MB/s    in 2.7s    
runc.amd64                                     100%[==================================================================================================>]  11.31M  5.64MB/s    in 2.0s    
cni-plugins-linux-amd64-v1.7.1.tgz             100%[==================================================================================================>]  53.31M  10.2MB/s    in 6.6s    
containerd-2.0.5-linux-amd64.tar.gz            100%[==================================================================================================>]  35.26M  10.2MB/s    in 4.1s    
etcd-v3.5.21-linux-amd64.tar.gz                100%[==================================================================================================>]  19.96M  6.42MB/s    in 3.1s    
root@SZ-Main:~/test# {
  mkdir -p downloads/{client,cni-plugins,controller,worker}
  tar -xvf downloads/crictl-${CRI_VERSION}-linux-${ARCH}.tar.gz \
    -C downloads/worker/
  tar -xvf downloads/containerd-${CONTAINERD_VERSION}-linux-${ARCH}.tar.gz \
    --strip-components 1 \
    -C downloads/worker/
  tar -xvf downloads/cni-plugins-linux-${ARCH}-${CNI_VERSION}.tgz \
    -C downloads/cni-plugins/
  tar -xvf downloads/etcd-${ETCD_VERSION}-linux-${ARCH}.tar.gz \
    -C downloads/ \
    --strip-components 1 \
    etcd-${ETCD_VERSION}-linux-${ARCH}/etcdctl \
    etcd-${ETCD_VERSION}-linux-${ARCH}/etcd  
  mv downloads/{etcdctl,kubectl} downloads/client/
  mv downloads/{etcd,kube-apiserver,kube-controller-manager,kube-scheduler} \
    downloads/controller/
  mv downloads/{kubelet,kube-proxy} downloads/worker/
  mv downloads/runc.${ARCH} downloads/worker/runc
}
crictl
bin/containerd-shim-runc-v2
bin/containerd
bin/containerd-stress
bin/ctr
./
./dummy
./tap
./sbr
./bandwidth
./LICENSE
./host-device
./dhcp
./firewall
./loopback
./host-local
./static
./ipvlan
./vlan
./vrf
./bridge
./ptp
./portmap
./macvlan
./README.md
./tuning
etcd-v3.5.21-linux-amd64/etcdctl
etcd-v3.5.21-linux-amd64/etcd
root@SZ-Main:~/test# ls
downloads  download-template.txt  download.txt
root@SZ-Main:~/test# rm -rf downloads/*gz
root@SZ-Main:~/test# chmod +x downloads/{client,cni-plugins,controller,worker}/*
root@SZ-Main:~/test# cd downloads
root@SZ-Main:~/test/downloads# ls
client  cni-plugins  controller  worker

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant