设置连续部署到运行Kubernetes的Google Compute Engine

时间:2015-06-17 20:41:23

标签: google-kubernetes-engine

我正在尝试根据CircleCI网站上的tutorial设置从CircleCI到我的Google容器引擎实例的持续部署。

但是,我目前在如何设置身份验证方面遇到困难,以便我可以执行滚动更新:

KUBE_CMD=${KUBERNETES_ROOT:-~/kubernetes}/cluster/kubectl.sh
$KUBE_CMD rolling-update my-controller \
   -f my-controller.yml --server="https://xxx.xxx.xxx.xxx"

Google似乎只支持OAuth,但我无法找到有关设置非交互式身份验证的任何文档。将基本身份验证参数传递给kubectl似乎无效。

有关此问题或我可以查看的任何建议吗?

1 个答案:

答案 0 :(得分:4)

Container Engine群集中运行的apiserver不使用Google的OAuth;它使用群集身份验证。如果你运行

$ gcloud alpha container clusters describe <cluster-name>

然后您将获得一个用户名和密码,可以用作http基本身份验证凭据来访问群集的apiserver(您也可以访问服务器使用的是承载令牌或TLS客户端证书,但基本身份验证是最容易上手的用)。

要测试,请运行

$ curl --insecure --user <username>:<password> https://<endpoint>

您应该看到成功的回复。

现在您已了解群集的apiserver如何对客户端进行身份验证,您需要在CircleCI计算机上配置kubectl以提供正确的身份验证。最简单的方法是使用gcloud通过运行

生成“kubeconfig”文件
$ gcloud alpha container get-credentials --cluster=<cluster-name>

将在本地生成文件。然后,您可以将文件复制到CircleCI框中。 kubectl默认情况下在~/.kube/config查找文件(您可以使用环境变量或使用命令行标志--kubeconfig指定不同的位置)。