我在 kubernetes 集群(clusterA)中使用 pod(图像 bitnami/kubectl),但 kubeconfig 设置为指向另一个集群(clusterB)。
使用通过 kubeadm 安装的本地 kubernetes 1.21.7(在虚拟机上)。
使用的 kubeconfig:
apiVersion: v1
kind: Config
clusters:
- name: default-cluster
cluster:
certificate-authority-data: XXXXXXXXXXXXXXXXXXXXXX
server: https://clusterB:6443
contexts:
- name: default-context
context:
cluster: default-cluster
namespace: default
user: default-user
current-context: default-context
users:
- name: default-user
user:
token: YYYYYYYYYYYYYYYYYYYYYY
但即使 kubeconfig 是正确的,clusterA 也不允许请求离开 clusterA 到达 clusterB。clusterA 中的 kubernetes 控制平面似乎将 pod kubectl 请求解释为试图控制 clusterA 本身,但这不是我想要做的。我试图访问 clusterB(在 kubeconfig 中的“服务器”中定义)。
这是 kubectl 运行时的错误:
Error from server (Forbidden): error when retrieving current configuration of:
Resource: "/v1, Resource=secrets", GroupVersionKind: "/v1, Kind=Secret"
Name: "mysecret", Namespace: "istio-system"
from server for: "STDIN": secrets "mysecret" is forbidden: User "system:serviceaccount:mynamespace:default" cannot get resource "secrets" in API group "" in the namespace "istio-system"
编辑:我正在使用 kubectl 设置自定义 kubeconfig:
# kubectl --kubeconfig=/etc/custom.kubeconfig cluster-info
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
Error from server (Forbidden): services is forbidden: User "system:serviceaccount:mynamespace:default" cannot list resource "services" in API group "" in the namespace "kube-system"
# grep server /etc/letsencrypt/custom.kubeconfig
server: https://clusterB:6443
编辑2:
# kubectl --kubeconfig=/etc/custom.kubeconfig cluster-info dump
Error from server (Forbidden): nodes is forbidden: User "system:serviceaccount:cadeado--producao:default" cannot list resource "nodes" in API group "" at the cluster scope
答案1
从 pod 发出以下命令后:
kubectl cluster-info
你得到了什么?
您遇到的问题似乎与用户访问有关,您需要为
默认用户提供适当的 RBAC 权限。