spinnaker / halyard:无法与Kubernetes集群通信

时间:2017-07-04 14:00:30

标签: kubernetes kubectl spinnaker

我正在尝试在多节点上部署spinnaker。我有2个VM:第一个有halyard和kubectl,第二个包含kubernetes master api。  我的kubectl配置得很好,能够与远程kubernetes api进行通信,

“kubectl get namespaces”工作

kubectl get namespaces
NAME          STATUS    AGE
default       Active    16d
kube-public   Active    16d
kube-system   Active    16d

但是当我运行这个cmd时

hal config provider -d kubernetes account add spin-kubernetes --docker-registries myregistry 
 I get this error
 Add the spin-kubernetes account
  Failure
Problems in default.provider.kubernetes.spin-kubernetes:
- WARNING You have not specified a Kubernetes context in your
  halconfig, Spinnaker will use "default-system" instead.
? We recommend explicitly setting a context in your halconfig, to
  ensure changes to your kubeconfig won't break your deployment.
? Options include:
  - default-system

! ERROR Unable to communicate with your Kubernetes cluster:
  Operation: [list]  for kind: [Namespace]  with name: [null]  in namespace:
  [null]  failed..
? Unable to authenticate with your Kubernetes cluster. Try using
  kubectl to verify your credentials.

- Failed to add account spin-kubernetes for provider
  kubernetes.

2 个答案:

答案 0 :(得分:0)

从错误消息中可以看出有两种方法,将halconfig设置为与默认系统上下文通信,这样它就可以与您的集群通信,或者相反,即配置您的上下文。

试试这个:

kubectl config view

我想你会看到那里的上下文和当前上下文是默认系统,尝试改变它们。 如需更多帮助

kubectl config --help

我猜您正在寻找set-context选项。 希望有所帮助。

答案 1 :(得分:0)

如@Naim Salameh所述,您可以在halconfig中设置此项。

另一种方法是尝试在默认的Kubernetes配置~/.kube/config中设置K8S群集信息。

由于您在不同的虚拟机上运行halyardkubectl,因此无法确定这是否有效。

# ~/.kube/config
apiVersion: v1
clusters:
- cluster:
    server: http://my-kubernetes-url
  name: my-k8s-cluster
contexts:
- context:
    cluster: my-k8s-cluster
    namespace: default
  name: my-context
current-context: my-context
kind: Config
preferences: {}
users: []