我如何在 Google容器引擎 上运行本地构建的Docker镜像?
您可以将自己的镜像推送到Google容器注册表,并从您的Pod清单中引用它们。
假设您已经正确设置了DOCKER_HOST
,在运行最新版本Kubernetes的GKE集群以及安装了Google Cloud SDK。
设置一些环境变量
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)。您可以使用含有---
分隔符的行在单个文件中拥有多个定义。
~/.ssh/config
配置了端口转发到注册表。gcloud container clusters get-credentials [$cluster_name]
docker tag nginx gcr.io/first-project/nginx
gcloud docker push gcr.io/first-project/nginx
apiVersion: v1
kind: Pod
containers:
- name : nginx1
image: gcr.io/first-project/nginx
kubectl create –f test.yaml
在启动Pod之前,您可以将私有Docker注册表的注册身份验证密钥复制到minions根目录中的.dockercfg文件中。 或在启动之前在minions上运行docker login。
docker login --username=<> --password=<> --email=<> <DockerServer>
在 Pod 配置中引用私有 Docker 镜像,应该可以按预期工作。
gcloud preview container pods --cluster-name cluster-1 create --zone europe-west1-c --config-file registry-pod.yaml
命令中,出现了resource.go:132] The resource in the provided file has no apiVersion defined
的错误提示。 - Vad1mo