芭蕾舞女演员:构建图像并通过k8s插件推送到gcr.io

时间:2018-07-22 11:01:54

标签: docker kubernetes ballerina

我正在使用一个简单的ballerina代码来构建带有ballerinax/kubernetes批注的程序(简单的hello world)。服务已成功编译,可以通过本地主机上的特定绑定端口进行访问。

在配置kubernetes部署时,我要指定映像构建和推送标志:

@kubernetes:Deployment {
    replicas: 2,
    name: "hello-deployment",
    image: "gcr.io/<gct-project-name>/hello-ballerina:0.0.2",
    imagePullPolicy: "always",
    buildImage: true,
    push: true
}

构建源代码时:

ballerina build hello.bal

这就是我得到的:

Compiling source
    hello.bal

Generating executable
    ./target/hello.balx
    @docker          - complete 3/3

    Run following command to start docker container:
    docker run -d -p 9090:9090 gcr.io/<gcr-project-name>/hello-ballerina:0.0.2

    @kubernetes:Service              - complete 1/1
    @kubernetes:Deployment           - complete 1/1
error [k8s plugin]: Unable to push docker image: unauthorized: You don't have the needed permissions to perform this operation, and you may have invalid credentials. To authenticate your request, follow the steps in: https://cloud.google.com/container-registry/docs/advanced-authentication

请注意,当通过本地计算机上的docker手动推送它时,它可以找到并推送新映像。

我想念什么?有没有办法通过kubernetes软件包向芭蕾舞女演员介绍Docker注册表凭据?

2 个答案:

答案 0 :(得分:2)

Ballerina尚不支持gcloud Docker注册表,但支持dockerhub。 有关更多信息,请参考sample6

基本上,您可以将Docker注册表用户名和密码导出为环境变量。

请在https://github.com/ballerinax/kubernetes/issues创建一个问题以进行跟踪。

答案 1 :(得分:0)

好像容器注册表有问题,您无法进行身份验证。

  

要向Container Registry进行身份验证,请使用gcloud作为Docker凭证帮助器。为此,请运行以下命令:

     

gcloud auth configure-docker

     

您需要运行一次此命令以向Container Registry进行身份验证。   强烈建议您尽可能使用此方法。它提供对项目资源的安全,短暂的访问。

您可以检查自己Container Registry Authentication Methods的步骤