今天主要是討論 image 的安全性,這麼部分稍微與前面 [Day5] 有所重複,主要是介紹當使用 image 時該注意的事項,之前有介紹過的 checksum 以及 Cosign 今天就不再重複提了。
image 的名稱可以是 {Registry}/{User/Account}/{Image/Repository}
,不過在 aws 中的ECR會是 {Account_id}.dkr.ecr.{region}.amazonaws.com/{namespace}/{repo_name}
,命名主要會根據 image 儲存位置而有所不同。
以 aws 為例除了命名外還可以設定該 image 的 tag 是否可以重複(Mutable),這邊會建議如果是 production 環境會需要開啟該功能,以版號去控制各個版本,不要每個都是 latest。
aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin {Account_id}.dkr.ecr.{Region}.amazonaws.com
但是也可以透過將登入資訊存於 secrets 中,當抓取 image 時自動登入
(1) 建立 Secrets
# 建立 secrets
kubectl create secret docker-registry regcred --docker-username=user
--docker-password=password --docker-email=email [--docker-server=string]
[--from-file=[key=]source] [--dry-run=server|client|none] [options]
參考資料
https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/