kubernetes - 请输入用户名 - ServiceAccount 部署
问题描述
当我尝试使用 ServiceAccount 进行部署时,我得到Please enter Username
了,即使我已经设置了 ClusterRole 绑定 - 你知道为什么吗?
kubectl:
kubectl apply -f deployment.yaml
角色和绑定:
kubectl create clusterrole tutorial-role \
--verb=get,list,watch,create,update,patch,delete \
--resource=deployments
kubectl create clusterrolebinding tutorial-binding \
--clusterrole=tutorial-role \
--serviceaccount=default:tutorial-service
创建配置用户:
TOKEN=$(kubectl describe secrets "$(kubectl describe serviceaccount tutorial-service | grep -i Tokens | awk '{print $2}')" | grep token: | awk '{print $2}')
kubectl config set-credentials tutorialuser --token=$TOKEN
kubectl config set-context sausercontext --cluster=<my-cluster> --user=tutorialuser
kubectl config use-context sausercontext --namespace=default
部署:
apiVersion: apps/v1
kind: Deployment
metadata:
name: leeroy-web
labels:
app: leeroy-web
spec:
replicas: 1
selector:
matchLabels:
app: leeroy-web
template:
metadata:
labels:
app: leeroy-web
spec:
containers:
- name: leeroy-web
image: gcr.io/appsyouwear/leeroy-web
ports:
- containerPort: 8080
信息:
kubernetes % kubectl -v=8 apply -f deployment.yaml
I0111 13:57:05.950317 63261 loader.go:359] Config loaded from file /Users/username/.kube/config
Please enter Username:
解决方案
你的 Kubeconfig 文件是 munged。要么你在 contexts 部分没有用户,要么你在 users 部分没有用户。kubeconfig 的 contexts 和 users 部分应如下所示。
contexts:
- context:
cluster: kubernetes
user: tutorialuser
name: sausercontext
users:
- name: tutorialuser
user:
token: <removed>
推荐阅读
- jquery - 根据复选框状态修改父类
- apache-spark - 如何处理 Spark 结构化流中的数据倾斜?
- javascript - 您可以将多个单独的列表保存到 localStorage 吗?
- typescript - 打字稿类中的自引用数组
- java - 为什么我在 Swing 中调整窗口大小后才显示 JFrame 的背景图像?
- swiftui - 如何显示由 JSON 数据导入的图像
- visual-studio - VSCT 菜单项未显示
- java - 如何将多个活动锁定为纵向?
- java - java firebase-admin 无法登录用户并获取令牌没有客户端
- sql - 我正在尝试在一个表中生成一个列,其中包含另一个表中的行数