Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes kubefed Int说:“这是;“等待联邦控制飞机出现”;而且它永远不会出现_Kubernetes_Kops - Fatal编程技术网

Kubernetes kubefed Int说:“这是;“等待联邦控制飞机出现”;而且它永远不会出现

Kubernetes kubefed Int说:“这是;“等待联邦控制飞机出现”;而且它永远不会出现,kubernetes,kops,Kubernetes,Kops,我已经使用kops命令创建了集群。对于每个集群,我必须创建一个托管区域,并向DNS提供程序添加名称空间。为了创建托管区域,我使用以下命令在aws(example.com)中的托管区域中创建了一个子域: ID=$(uuidgen) && aws route53 create-hosted-zone --name subdomain1.example.com --caller-reference $ID | jq .DelegationSet.NameServers 通过执行上述命

我已经使用kops命令创建了集群。对于每个集群,我必须创建一个托管区域,并向DNS提供程序添加名称空间。为了创建托管区域,我使用以下命令在aws(example.com)中的托管区域中创建了一个子域:

ID=$(uuidgen) && aws route53 create-hosted-zone --name subdomain1.example.com --caller-reference $ID | jq .DelegationSet.NameServers
通过执行上述命令获得的名称服务器包含在新创建的文件subdomain1.json中,其内容如下

{
  "Comment": "Create a subdomain NS record in the parent domain",
  "Changes": [
    {
      "Action": "CREATE",
      "ResourceRecordSet": {
        "Name": "subdomain1.example.com",
        "Type": "NS",
        "TTL": 300,
        "ResourceRecords": [
          {
            "Value": "ns-1.awsdns-1.co.uk"
          },
          {
            "Value": "ns-2.awsdns-2.org"
          },
          {
            "Value": "ns-3.awsdns-3.com"
          },
          {
            "Value": "ns-4.awsdns-4.net"
          }
        ]
      }
    }
  ]
}
为了获取父区域id,我使用了以下命令:

aws route53 list-hosted-zones | jq '.HostedZones[] | select(.Name=="example.com.") | .Id'
将子域NS记录应用于父托管区域的步骤-

aws route53 change-resource-record-sets --hosted-zone-id <parent-zone-id> --change-batch file://subdomain1.json
我能够创建一个集群,验证它并获取它的节点。通过使用相同的过程,我又创建了一个集群(subdomain2.example.com)

我已经使用这些命令为两个集群设置了别名-

kubectl config set-context subdomain1 --cluster=subdomain1.example.com --user=subdomain1.example.com

kubectl config set-context subdomain2 --cluster=subdomain2.example.com --user=subdomain2.example.com
为了在这两个集群之间建立联盟,我使用了以下命令- kubectl配置使用上下文子域1

kubectl create clusterrolebinding admin-to-cluster-admin-binding --clusterrole=cluster-admin --user=admin

kubefed init interstellar --host-cluster-context=subdomain1 --dns-provider=aws-route53 --dns-zone-name=example.com
-

但对我来说,它显示为“等待联邦控制飞机出现…”,但它没有出现。可能是什么错误

我按照下面的教程创建了两个集群


用于联合api服务器和控制器管理器二进制文件的默认映像有问题。默认情况下,kubefed init命令将考虑下面提到的图像- “gcr.io/k8s-jkns-e2e-gce-federation/fcp-amd64:v0.0.0-master_U$格式:%h$”

但此映像已旧且不可用,联合控制平面尝试拉取该映像,但失败。这就是我得到的错误

要纠正它,请构建自己的fcp映像,并将其推送到某个存储库,然后在kubefed init命令中使用此映像。下面是要执行的指令(从路径“$GOPATH/src/k8s.io/kubernetes/federation”运行所有这些命令)-

创建fcp映像并将其推送到存储库- 现在使用以下命令创建联合控制平面-
嗨,Shankar,欢迎来到StackOverflow。很难提供帮助,因为没有关于您的设置的详细信息,除此之外,您有2个群集,请按照上的要求共享更多信息,好吗?可能有很多问题。
kubectl create clusterrolebinding admin-to-cluster-admin-binding --clusterrole=cluster-admin --user=admin

kubefed init interstellar --host-cluster-context=subdomain1 --dns-provider=aws-route53 --dns-zone-name=example.com
docker load -i  _output/release-images/amd64/fcp-amd64.tar

docker tag gcr.io/google_containers/fcp-amd64:v1.9.0-alpha.2.60_430416309f9e58-dirty REGISTRY/REPO/IMAGENAME[:TAG] 

docker push REGISTRY/REPO/IMAGENAME[:TAG]
_output/dockerized/bin/linux/amd64/kubefed init myfed --host-cluster-context=HOST_CLUSTER_CONTEXT --image=REGISTRY/REPO/IMAGENAME[:TAG] --dns-provider="PROVIDER" --dns-zone-name="YOUR_ZONE" --dns-provider-config=/path/to/provider.conf