我试图在GKE上部署一个联邦集群,但是当我试图使用以下命令创建它时,遇到了一个错误:
./kubefed init kfed \
> --host-cluster-context=america \
> --dns-zone-name=${DNS_ZONE} \
> --dns-provider="google-clouddns"
error: no configuration has been provided我按照教程找到了这里,到目前为止一切都很好。不幸的是,我没有看到获得更多关于错误的详细信息的开关。以前有人遇到过这种情况吗?
以下是我所采取的所有步骤:
# 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 --我决定从一个全新的、干净的项目开始,我将完成这一步。不过,我将继续进行项目,并将继续进行故障排除。
发布于 2017-11-08 09:44:16
我不认为本系列命令实际上获取访问GKE集群所需的凭据。具体而言,运行:
# Let's extract their creds
gcloud config set container/use_client_certificate True
export CLOUDSDK_CONTAINER_USE_CLIENT_CERTIFICATE=True告诉gcloud,当它获取GKE集群的凭据时,它必须获取TLS密钥对,该密钥对可用于针对GKE集群进行身份验证。但实际上什么都买不到。
当你跑的时候:
# 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)来确认这一点。
您可以通过运行以下命令来解决此问题:
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。现在修好了。
https://stackoverflow.com/questions/47164098
复制相似问题