跳轉到

Istio EKS ARM64 Installation

概念概覽

版本選型

核心知識

版本選型

K8s 1.34 需要 Istio 1.25+。1.26.2 EOL 至 2026/08 後無官方安全修補,生產環境應直接選 1.29.0。

ARM64 映像問題

Locust EKS 節點為 ARM64(aarch64),私有 ECR 若僅有 amd64 映像會在 kubectl exec 階段報 exec format error不會在 imagePull 階段失敗,容易誤判為映像損壞。解法:改用 docker.io 官方 multi-arch 映像,繞過私有 ECR 維護負擔(需確認 NAT Gateway 可外網拉取)。

CA 憑證生成必要欄位

用 openssl 生成 Istio root CA 時,**必須包含**以下兩個 extension,否則 istiod 報 certificate is not authorized to sign other certificates

-addext 'basicConstraints=critical,CA:true'
-addext 'keyUsage=critical,keyCertSign,cRLSign'

Helm chart 預設值覆蓋陷阱

-f values.yaml 無法清除 chart 內建的預設 key,必須用 --set key=null 明確清除。

CRLF 換行符

Windows 編輯器產生的 CRLF 會導致 env: bash\r: No such file or directory。腳本提交前需 dos2unix 或 CI 加入自動轉換。

動態版本路徑

ISTIO_DEPLOY_PATH 不能寫死版本號,必須動態組合 ${ISTIO_VERSION},否則升版後路徑仍指向舊版目錄。

經驗教訓

  • ARM64 架構不匹配錯誤(exec format error)發生在執行期而非拉取期,容易被誤診

  • 私有 ECR 版本管理成本高,多架構場景優先考慮官方 docker.io 映像

  • openssl 生成 CA 憑證的 basicConstraints + keyUsage 是必要條件,不是可選項

  • Helm --set key=null 才能真正清除 chart 預設值,-f 覆蓋不完整

常見陷阱

  • exec format error 不代表映像損壞,可能是 amd64/arm64 架構不匹配

  • 私有 ECR 升版時若忘記推 ARM64 映像,會立即 ImagePullBackOff

  • Helm -f 無法清除 chart 預設 key,需明確 --set key=null

最佳實踐

  • ARM64 EKS 安裝 Istio 優先使用 docker.io 官方 multi-arch 映像

  • CA 憑證生成腳本必須包含 basicConstraints 和 keyUsage extension

  • 腳本路徑中的版本號應動態取自參數,不寫死

  • Git 提交前對 shell 腳本執行 dos2unix

相關概念

來源 Sessions

日期 Session 貢獻摘要

| 2026-03-22 | 64b0516b-af8e-4206-8a1b-037aee68b1bf | 完整記錄了在 ARM64 EKS + K8s 1.34 環境安裝 Istio 1.29.0 的四層陷阱與解法 |


本概念頁面由 Semi-Brain Wiki 系統自動維護

最後更新: 2026-03-22