设置持续部署到 Google Compute Engine 运行 Kubernetes
Setting up continuous deployment to Google Compute Engine running Kubernetes
我正在尝试根据 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
似乎不起作用。
关于这方面的任何建议或我可以在哪里查看?
您容器引擎集群中的 apiserver 运行ning 不使用 Google 的 OAuth;它改为使用集群身份验证。如果你运行
$ gcloud alpha container clusters describe <cluster-name>
然后您将获得一个用户名和密码,可用作访问集群的 apiserver 的 http 基本身份验证凭据(您也可以使用不记名令牌或 TLS 客户端证书访问服务器,但基本身份验证最容易开始)。
要测试,运行
$ curl --insecure --user <username>:<password> https://<endpoint>
您应该会看到一个成功的响应。
既然您了解了集群的 apiserver 如何对客户端进行身份验证,您需要在 CircleCI 机器上配置 kubectl 以提供正确的身份验证。最简单的方法是使用 gcloud 通过 运行ning
生成一个 "kubeconfig" 文件
$ gcloud alpha container get-credentials --cluster=<cluster-name>
这将在本地生成文件。然后您可以将文件复制到 CircleCI 框中。 kubectl 默认在 ~/.kube/config
查找文件(您可以使用环境变量或使用命令行标志 --kubeconfig
指定不同的位置)。
我正在尝试根据 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
似乎不起作用。
关于这方面的任何建议或我可以在哪里查看?
您容器引擎集群中的 apiserver 运行ning 不使用 Google 的 OAuth;它改为使用集群身份验证。如果你运行
$ gcloud alpha container clusters describe <cluster-name>
然后您将获得一个用户名和密码,可用作访问集群的 apiserver 的 http 基本身份验证凭据(您也可以使用不记名令牌或 TLS 客户端证书访问服务器,但基本身份验证最容易开始)。
要测试,运行
$ curl --insecure --user <username>:<password> https://<endpoint>
您应该会看到一个成功的响应。
既然您了解了集群的 apiserver 如何对客户端进行身份验证,您需要在 CircleCI 机器上配置 kubectl 以提供正确的身份验证。最简单的方法是使用 gcloud 通过 运行ning
生成一个 "kubeconfig" 文件$ gcloud alpha container get-credentials --cluster=<cluster-name>
这将在本地生成文件。然后您可以将文件复制到 CircleCI 框中。 kubectl 默认在 ~/.kube/config
查找文件(您可以使用环境变量或使用命令行标志 --kubeconfig
指定不同的位置)。