GitHub 上有這個示例專案,我正在嘗試將其部署在本地 Kubernetes 集群 (k3d) 上。Proto.Actor 的開發人員在官方檔案中描述了 k8s 部署。問題是檔案部署在 Azure Kubernetes 服務上,而我想部署在本地 k8s 集群(k3d)上。
據我了解,步驟如下:
- 為解決方案中的兩個專案構建 docker 映像 [我能夠做到這一點]
docker build -f ./ProtoClusterTutorial/Dockerfile . -t proto-cluster-tutorial:1.0.0`
docker build -f ./SmartBulbSimulatorApp/Dockerfile . -t smart-bulb-simulator-app:1.0.0`
- 將 docker 鏡像推送到存盤庫中
將 docker 鏡像推送到哪里?本地 k3d 存盤庫?碼頭工人中心?GitHub 容器注冊表?
下一個問題,values.yamlHelm 圖表目錄中的檔案包含一個repository欄位(此處)。如果我將 docker 鏡像推送到 ghcr 或 Docker hub,我只需將鏡像鏈接放在那里,但如果我必須使用 k3d 本地存盤庫怎么辦?在這種情況下我應該使用什么鏈接?
下一個問題是如何kubectl get pods知道它必須顯示 k3d 集群 pod 而不是我啟用的 Docker Desktop Kubernetes?
如果您簡要列出我必須使用 k3d、Helm chart 和 kubectl 完成的步驟,我將不勝感激。
uj5u.com熱心網友回復:
將影像推送到何處并不重要,只要它是OCI 分發規范(有效的容器注冊表)的有效實作即可。您列出的所有注冊表選項都可以使用,只需選擇適合您需要的選項即可。
關于values.yaml檔案,該repository欄位是存盤庫的 url,具體取決于您決定使用的容器注冊表(docker.io對于 Docker Hub、ghcr.ioGithub 容器注冊表等)。請查看您選擇的容器注冊表的檔案以獲取具體的設定說明建立存盤庫,構建,推送和拉取。
kubectl從一個可以包含多個集群的組態檔中獲取它的配置。k3d 安裝腳本很可能會將新集群作為條目添加到組態檔中,并將其設定為 kubectl 的新背景關系。
回到你的問題。一個更簡單的解決方案可能是手動匯入 k3d 中的影像,如this answer中所述。我自己沒有使用過 k3d,所以我不能保證這種方法會奏效,但它似乎是一種更簡單的方法,可以為您省去很多麻煩。
但是,如果您想親自動手并了解有關容器存盤庫、helm 和 k8s 的更多資訊,這里有一個托管存盤庫的示例場景,localhost:5000我強烈建議您查看docker/helm/kubernetes每個步驟的相關檔案
- 登錄到您的注冊表
docker login localhost:5000
- 構建影像
//Note how the image tag includes the repository url where they'll be pushed to
docker build -f ./ProtoClusterTutorial/Dockerfile . -t localhost:5000/proto-cluster-tutorial:1.0.0
docker build -f ./SmartBulbSimulatorApp/Dockerfile . -t localhost:5000/smart-bulb-simulator-app:1.0.0
- 推送圖片
docker push localhost:5000/proto-cluster-tutorial:1.0.0
docker push localhost:5000/smart-bulb-simulator-app:1.0.0
- 編輯
values.yaml
image:
repository: localhost:5000/proto-cluster-tutorial
pullPolicy: IfNotPresent
tag: "1.0.0"
helm install使用修改后的values.yaml檔案運行
我注意到的一件事是,指南的掌舵圖不包含欄位,imagePullSecrets因為他們使用 Azure 容器注冊表并在 Azure 上托管自動處理身份驗證的集群。這意味著私有存盤庫將無法與您的場景中的圖表一起使用,您必須編輯掌舵圖表并隨后values.yaml使其作業。你可以在這里閱讀更多imagePullSecrets
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/506689.html
標籤:C# 。网 码头工人 Kubernetes k3d
