挑選版本

Image Tag Kubernetes Ver. Kubespray Ver.
v2.21.0-1.25.6-e86c0cf0-1 1.25.6 v2.21.0
v2.22.0-1.26.11-71b6fa13-1 1.26.11 v2.22.0
v2.23.0-1.27.7-07e19e54-1 1.27.7 v2.23.0

環境變數

設定檔放置位置

CNI Plugin 安裝位置

部分情況下,主機上會出現已經 CNI Plugin 已經安裝的情形發生,因此必須宣告 CNI 二進制檔位置

  export CNI_DIR=/path/to/cni/binary/directory
  
不知道 CNI 路徑時,請點擊看指令

如果不知道 CNI 二進制檔位置,需分別檢測以下資料夾

  • check-cni.sh
  #!/bin/bash

folders=(
    "/usr/local/libexec/cni"
    "/usr/libexec/cni"
    "/usr/local/lib/cni"
    "/usr/lib/cni"
    "/opt/cni/bin"
)

file_name="bridge"

for folder in "${folders[@]}"; do
    file_path="$folder/$file_name"

    if [[ -f "$file_path" ]]; then
        echo "export CNI_DIR=$folder"
        exit 0
    fi
done
echo "export CNI_DIR="
  

請複製並執行以下指令後,將會自動宣告 CNI_DIR 環境變數

  $(bash check-cni.sh)
  

主機 IP 地址

使用 ip 指令取得主機 IP,如無該指令亦可直接指定

  # 1.2.3.4 僅作為佔位符 (placeholder) 之用,非真實地址
export HOST_IP=$(ip route get 1.2.3.4 | awk '{print $7}' | head -n 1)
  

進入 Kubespray 執行環境

啟動執行環境並進入到容器內

  #!/bin/bash
sudo /usr/local/bin/nerdctl run -d \
   --mount type=bind,source="${HOME}"/".ssh",dst=/root/.ssh \
   --mount type=bind,source="${INVENTORY_DIR}",dst=/inventory \
   -p 80:80 -p 35000:35000 \
   -e HOST_IP=${HOST_IP} \
   --name "koffline" $([ ! -z "${CNI_DIR}" ] && echo "--cni-path=${CNI_DIR}") \
   <kubespray-offline-image>
  

進入到 Kubespray Offline 容器內

  sudo /usr/local/bin/nerdctl exec -it koffline bash
  
Was this page helpful?