處理 Docker Hub 速率限制
如何確保您的叢集不受 Docker Hub 速率限制的影響。
自 2020 年 11 月 20 日起,Docker Hub 對映像檔拉取引入了速率限制。
由於 Istio 使用 Docker Hub 作為預設的登錄檔,大型叢集上的使用可能會因超出速率限制而導致 Pod 無法啟動。這對 Istio 來說尤其成問題,因為通常叢集中大多數 Pod 旁邊都有 Istio Sidecar 映像檔。
緩解措施
Istio 允許您指定自訂的 Docker 登錄檔,您可以使用它從您的私有登錄檔獲取容器映像檔。這可以透過在安裝時傳遞 --set hub=<some-custom-registry>
來配置。
Istio 提供 Google Container Registry 的官方鏡像。可以使用 --set hub=gcr.io/istio-release
來配置。這適用於 Istio 1.5+。
或者,您可以將官方 Istio 映像檔複製到您自己的登錄檔。如果您的叢集在針對您的使用案例量身定制的登錄檔環境中執行(例如,在 AWS 上,您可能希望將映像檔鏡像到 Amazon ECR),或者您有對公共登錄檔的存取受到限制的氣隙安全要求,這尤其有用。可以使用以下腳本完成此操作
$ SOURCE_HUB=istio
$ DEST_HUB=my-registry # Replace this with the destination hub
$ IMAGES=( install-cni operator pilot proxyv2 ) # Images to mirror.
$ VERSIONS=( 1.7.5 1.8.0 ) # Versions to copy
$ VARIANTS=( "" "-distroless" ) # Variants to copy
$ for image in $IMAGES; do
$ for version in $VERSIONS; do
$ for variant in $VARIANTS; do
$ name=$image:$version$variant
$ docker pull $SOURCE_HUB/$name
$ docker tag $SOURCE_HUB/$name $DEST_HUB/$name
$ docker push $DEST_HUB/$name
$ docker rmi $SOURCE_HUB/$name
$ docker rmi $DEST_HUB/$name
$ done
$ done
$ done