我收到此错误:forbidden: User "system:anonymous" cannot get path "/openapi/v2": No policy matched.
这似乎发生在这里:
I0302 15:57:33.593662 44 round_trippers.go:423] curl -k -v -XGET -H "Accept: application/com.github.proto-openapi.spec.v2@v1.0+protobuf" -H "User-Agent: kubectl/v1.17.3 (linux/amd64) kubernetes/06ad960" -H "Authorization: Basic YWRxxxxxxxxxxxxxxxxxxxxxx2lm" 'https://<IP>/openapi/v2?timeout=32s'
I0302 15:57:33.767657 44 round_trippers.go:443] GET https://<IP>/openapi/v2?timeout=32s 403 Forbidden in 173 milliseconds
据我所知,应该使用的用户是通过kubectl应用此yaml创建的:
apiVersion: v1
kind: Namespace
metadata:
name: gitlab-managed-apps
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: gitlab-admin
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: gitlab-admin
namespace: gitlab-managed-apps
GCP项目中还有一个具有Kubernetes Engine Developer
权限的服务帐户。
就这样,我不知道为什么仍然没有用户定义/关联。 我希望你能帮助我!
答案 0 :(得分:1)
经过几次尝试,我发现我在上下文中混入了一些东西。
当我意识到配置错误时,我看着KUBECONFIG
文件。
与Kubernetes通信时使用的上下文错误导致上述问题。
您可以按照answer中的说明检查是否使用了正确的上下文。
这是我要解决的问题:
kubectl config view
我注意到当前上下文的设置指向错误的上下文!
kubectl config get-contexts
kubectl config set-context NAME
kubectl config use-context CONTEXT_NAME
在这里您可以找到cheatsheet,这对我很有帮助。