将Docker镜像部署到Kubernetes

3
我最近在使用Docker,并创建了一个基本的Docker镜像,其中包含一个Dockerfile。它只启动了一个Web服务器。现在,我已经进一步阅读并在Google应用引擎上创建了一个帐户,并想将此映像部署到Kubernetes。
我感到很迷茫。
我不明白我本地拥有的Dockerfiles如何传输到这个平台?我根本不使用它们吗?我看到了一些Pod配置示例,但据我所见,它们都是指向Docker Hub上的映像?
请问有人能指点我该怎么做吗?

你也可以查看https://dev59.com/_18d5IYBdhLWcg3weiB-#26788669。 - CrandellWS
3个回答

1
我没有使用过Kubernetes,但据我所知,您需要将容器上传到Docker镜像仓库。您可以使用官方的hub并在那里上传您的镜像(公共镜像免费上传,您可以免费拥有一个私人镜像或付费获取更多)。此外,您还可以拥有私有的Docker镜像仓库,并配置Kubernetes使用它。
根据我从this post了解到的,您可以运行与本地运行的docker仓库链接的Google Cloud bucket,然后配置一个Kubernetes pod指向该bucket,所有其他pod都可以从那里消耗docker镜像。

我可以上传到私有的Docker Hub仓库,然后让Kubernetes从那里获取镜像吗? - LuckyLuke
@LuckyLuke 我从那篇帖子中理解到,是的,你可以使用私有仓库。我自己没有尝试过,建议你查看链接,看看是否更好地回答了这个问题。 - Javier Cortejoso

0

首先,我自己也有点迷茫,但是我能够制作一个基本的工作示例,将一个php脚本运行在Google Cloud Engine vm实例中的docker镜像中,在Container Engine集群中运行。文档更简单地说明了:

Container Engine集群是一组运行Kubernetes的Compute Engine实例...

所以,回答这个问题:

请参阅以下GitHub存储库https://github.com/CrandellWS/Kubernetes-Php-Example

只有最少量的文件和源代码。您会在根目录中找到Dockerfile和src文件夹中的单个php页面。

通过docker设置了自动构建,并且可以在https://registry.hub.docker.com/u/crandellws/kubernetes-php-example/找到。

要复制这个过程,请fork 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/


0

从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  

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接