最近几天我一直在使用Docker,我用Dockerfile创建了一个基本的Docker镜像。 它只是启动一个 Web 服务器。现在,我一直在进一步阅读并在Google Application Engine上创建了一个帐户,并希望将此映像部署到Kubernetes。
我感到迷茫。
我不明白我在本地拥有的 Dockerfile 如何转移到这个平台?我根本不使用它们吗?我看过一些 Pod 配置的例子,但据我所知,它们指的是 Docker Hub 上的映像?
有人可以指出我该怎么做的正确方向吗?
我没有使用过 Kubernetes,但据我所知,我认为您必须上传到容器到 docker 镜像存储库。您可以使用官方中心并在那里上传您的图片(公共图片可以免费上传,您可以免费拥有一个私人图片或支付更多费用(。你也可以有一个私有的docker镜像仓库,并配置kubernetes来使用它。
正如我从这篇文章中了解到的那样,您可以将 Google Cloud 存储桶与本地运行的 docker 存储库链接,然后将 kubernetes pod 配置为指向该存储桶,所有其他 pod 都可以从那里使用 docker 映像。
首先,我自己对此有些迷茫,尽管能够制作一个在容器引擎集群内的 Google 云引擎 vm 实例上的 docker 映像中运行的 php 脚本的基本工作示例。文档陈述更简单的地方
容器引擎集群是一组计算引擎实例 运行 Kubernetes...
所以在回答问题
时请参阅以下 GitHub 存储库 https://github.com/CrandellWS/Kubernetes-Php-Example
文件和源最少。您将在根目录中找到Dockerfile,在src文件夹中找到单个php页面。
通过 docker 为此设置了一个自动化构建,可以在 https://registry.hub.docker.com/u/crandellws/kubernetes-php-example/
复制此操作将通过分叉 GitHub 存储库并设置自动生成来完成,请参阅:http://docs.docker.com/docker-hub/builds/
完成此操作后,您可以将 docker 镜像拉入 Kubernetes 设置并运行它。例如以下显示提到的Dockerfile:
sudo docker pull crandellws/kubernetes-php-example
sudo docker run -p 80:80 -it -d --name csupport crandellws/kubernetes-php-example
https://cloud.google.com/container-engine/docs/
要从 GKE 上的私有存储库中提取映像,我们需要创建一个 docker-registry 类型的密钥进行身份验证。
kubectl create secret docker-registry regcred --docker-server=<your-registry-server> --docker-username=<your-name> --docker-password=<your-pword> --docker-email=<your-email>
在您的yaml文件中包含imagePullSecrets标签,如下所示,您将能够从提到的存储库中提取图像。
apiVersion: v1
kind: Pod
metadata:
name: pull-demo
spec:
containers:
- name: pull-demo-container
image: nginx
imagePullSecrets:
- name: regsecret