将 Docker 镜像部署到 Kubernetes



最近几天我一直在使用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  

最新更新