如何运行我在Google Container Engine上本地构建的 docker 映像?
4 回答
您可以将您的图像推送到Google Container Registry并从您的 pod 清单中引用它们。
详细说明
假设您已DOCKER_HOST
正确设置,运行最新版本的 Kubernetes 和Google Cloud SDK的 GKE 集群已安装。
设置一些环境变量
gcloud components update kubectl gcloud config set project <your-project> gcloud config set compute/zone <your-cluster-zone> gcloud config set container/cluster <your-cluster-name> gcloud container clusters get-credentials <your-cluster-name>
标记您的图像
docker tag <your-image> gcr.io/<your-project>/<your-image>
推送你的图片
gcloud docker push gcr.io/<your-project>/<your-image>
为您的容器创建一个 pod 清单:
my-pod.yaml
id: my-pod kind: Pod apiVersion: v1 desiredState: manifest: containers: - name: <container-name> image: gcr.io/<your-project>/<your-image> ...
安排这个 pod
kubectl create -f my-pod.yaml
对您要运行的每个 pod 从步骤 (4) 重复。
---
您可以使用带有分隔符的行在单个文件中拥有多个定义。
我使用的设置是部署我自己的 docker 注册表并结合 ssh 端口转发。为此,我在集群中设置了一个 ssh 服务器,并使用它~/.ssh/config
来配置转发到注册表的端口。
我还使用 jenkins 在云中构建图像。
第 1 步:指定您必须在其中工作的容器
gcloud container clusters get-credentials [$cluster_name]
第 2 步:标记要运行的 docker 映像
docker tag nginx gcr.io/first-project/nginx
第三步:推送图片
gcloud docker push gcr.io/first-project/nginx
Step4:创建yaml文件(test.yaml)
apiVersion: v1
kind: Pod
containers:
- name : nginx1
image: gcr.io/first-project/nginx
第 5 步:创建 pod
kubectl create –f test.yaml
您可以在启动 pod 之前将私有 docker 注册表的注册表身份验证密钥复制到 minions 根目录中的 .dockercfg 文件中。或者在开始之前在 minions 上运行 docker login。
docker login --username=<> --password=<> --email=<> <DockerServer>
然后,在 pod 配置中引用私有 docker 映像应该可以按预期工作。