5

我正在尝试在多节点上部署大三角帆。我有 2 个 VM:第一个带有 halyard 和 kubectl,第二个包含 kubernetes master api。我的 kubectl 配置良好,能够与远程 kubernetes api 通信,

“kubectl 获取命名空间”有效

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.
4

2 回答 2

0

如@Naim Salameh 所述,您可以在您的 halconfig 中进行设置。

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

不确定这是否会起作用,因为您正在运行halyardkubectl在不同的 VM 上。

# ~/.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: []
于 2017-11-12T14:40:31.443 回答
0

从错误消息来看,似乎有两种方法,将您的 halconfig 设置为与默认系统上下文通信,以便它可以与您的集群通信或以其他方式通信,即配置您的上下文。

尝试这个:

kubectl config view

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

kubectl config --help

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

于 2017-07-05T08:55:41.300 回答