我有这个配置文件
apiVersion: v1
clusters:
- cluster:
server: [REDACTED] // IP of my cluster
name: staging
contexts:
- context:
cluster: staging
user: ""
name: staging-api
current-context: staging-api
kind: Config
preferences: {}
users: []
我运行这个命令
kubectl config --kubeconfig=kube-config use-context staging-api
我收到这条消息
Switched to context "staging-api".
然后我就跑了
kubectl get pods
我收到这条消息
The connection to the server localhost:8080 was refused - did you specify the right host or port?
据我从文档中可以看出
https://kubernetes.io/docs/tasks/access-application-cluster/configure-access-multiple-clusters/
我做得对。我是不是错过了什么?
是的,请尝试以下步骤访问kubernetes集群。此步骤假设您的 k8s 证书位于 /etc/kubernetes 中。
您需要在以下变量中设置集群名称、Kubeconfig、用户和 Kube 证书文件,然后只需运行这些命令:
CLUSTER_NAME="kubernetes"
KCONFIG=admin.conf
KUSER="kubernetes-admin"
KCERT=admin
cd /etc/kubernetes/
$ kubectl config set-cluster ${CLUSTER_NAME} \
--certificate-authority=pki/ca.crt \
--embed-certs=true \
--server=https://${KUBERNETES_PUBLIC_ADDRESS}:6443 \
--kubeconfig=${KCONFIG}
$ kubectl config set-credentials kubernetes-admin \
--client-certificate=admin.crt \
--client-key=admin.key \
--embed-certs=true \
--kubeconfig=/etc/kubernetes/admin.conf
$ kubectl config set-context ${KUSER}@${CLUSTER_NAME} \
--cluster=${CLUSTER_NAME} \
--user=${KUSER} \
--kubeconfig=${KCONFIG}
$ kubectl config use-context ${KUSER}@${CLUSTER_NAME} --kubeconfig=${KCONFIG}
$ kubectl config view --kubeconfig=${KCONFIG}
此后您将能够访问集群。希望这有帮助。
您需要获取正在运行的集群的凭据。试试这个:
gcloud container clusters get-credentials <cluster_name> --zone <zone_name>
更多信息:
https://cloud.google.com/sdk/gcloud/reference/container/clusters/get-credentials
我遇到了与标题中提到的同样的问题。
当我执行时:
kubectl config current-context
输出是:
error: current-context is not set
就我而言,这是缩进问题。
current-context
之前的一个空格导致我调试了几个小时:
contexts:
- context:
cluster: arn:aws:eks:us-east-2:...:cluster/...
user: arn:aws:eks:us-east-2:...:cluster/...
name: arn:aws:eks:us-east-2:...:cluster/...
current-context: arn:aws:eks:us-east-2:...:cluster/... <-Whitespace at the begging of the row was the source of the error.
我在 mac m1 上也遇到了同样的问题...
问题是我正在使用kubectx和kubens,所以这些工具是控制上下文和命名空间的。 在这种情况下正确的命令必须是
kubectx staging-api
看看并尝试手动更改您的配置文件,例如: