首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google容器引擎-无法初始化联合集群

Google容器引擎-无法初始化联合集群
EN

Stack Overflow用户
提问于 2017-11-07 17:34:12
回答 1查看 119关注 0票数 1

我试图在GKE上部署一个联邦集群,但是当我试图使用以下命令创建它时,遇到了一个错误:

代码语言:javascript
复制
./kubefed init kfed \
>   --host-cluster-context=america \
>   --dns-zone-name=${DNS_ZONE} \
>   --dns-provider="google-clouddns"
error: no configuration has been provided

我按照教程找到了这里,到目前为止一切都很好。不幸的是,我没有看到获得更多关于错误的详细信息的开关。以前有人遇到过这种情况吗?

以下是我所采取的所有步骤:

代码语言:javascript
复制
# Let's export some variables to call below
export PROJECT=final-project
export DNS_ZONE=my.domain.co.

# Let's Create two new clusters
gcloud container clusters create webapp-america --zone us-west1-a --num-nodes=3 --scopes cloud-platform,storage-ro,logging-write,monitoring-write,service-control,service-management,https://www.googleapis.com/auth/ndev.clouddns.readwrite
gcloud container clusters create webapp-europe --zone europe-west1-c --num-nodes=3 --scopes cloud-platform,storage-ro,logging-write,monitoring-write,service-control,service-management,https://www.googleapis.com/auth/ndev.clouddns.readwrite

# Let's extract their creds
gcloud config set container/use_client_certificate True
export CLOUDSDK_CONTAINER_USE_CLIENT_CERTIFICATE=True

# Let's create 2 new contexts for easier reference
kubectl config set-context america --cluster=gke_${PROJECT}_us-west1-a_webapp-america --user=gke_${PROJECT}_us-west1-a_algolia-america
kubectl config set-context europe --cluster=gke_${PROJECT}_europe-west1-c_webapp-europe --user=gke_${PROJECT}_europe-west1-c_algolia-europe

# Let's delete the old context references
kubectl config delete-context gke_${PROJECT}_us-west1-a_webapp-america
kubectl config delete-context gke_${PROJECT}_europe-west1-c_webapp-europe

# Let's initialize the cluster
kubefed init kfed \
  --host-cluster-context=america \
  --dns-zone-name=${DNS_ZONE} \
  --dns-provider="google-clouddns"

Update --我决定从一个全新的、干净的项目开始,我将完成这一步。不过,我将继续进行项目,并将继续进行故障排除。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-08 09:44:16

我不认为本系列命令实际上获取访问GKE集群所需的凭据。具体而言,运行:

代码语言:javascript
复制
# Let's extract their creds
gcloud config set container/use_client_certificate True
export CLOUDSDK_CONTAINER_USE_CLIENT_CERTIFICATE=True

告诉gcloud,当它获取GKE集群的凭据时,它必须获取TLS密钥对,该密钥对可用于针对GKE集群进行身份验证。但实际上什么都买不到。

当你跑的时候:

代码语言:javascript
复制
# Let's create 2 new contexts for easier reference
kubectl config set-context america --cluster=gke_${PROJECT}_us-west1-a_webapp-america --user=gke_${PROJECT}_us-west1-a_algolia-america
kubectl config set-context europe --cluster=gke_${PROJECT}_europe-west1-c_webapp-europe --user=gke_${PROJECT}_europe-west1-c_algolia-europe

您只是在创建没有内容的空上下文。您可以通过查看默认的kubeconfig文件(Linux中的cat $HOME/.kube/config)来确认这一点。

您可以通过运行以下命令来解决此问题:

代码语言:javascript
复制
gcloud container clusters get-credentials webapp-america --zone us-west1-a
gcloud container clusters get-credentials webapp-europe --zone europe-west1-c

在运行gcloud config set ...命令之后,但在运行kubectl config set-context ...命令之前。

另外,在一个半相关的注意,您需要一个真正的域名可编程通过Google,使联邦服务工作,如果你使用gcloud-dns作为你的域名服务提供商。

编辑:第二个gcloud get-credentials命令是调用gcloud create而不是gcloud get-credentials。现在修好了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47164098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档