Kubernetes k8s-如何将服务帐户令牌投影到pod中
我正在尝试将serviceAccount令牌投影到我的pod中,如本k8s文档中所述- 我使用下面的命令创建一个服务帐户Kubernetes k8s-如何将服务帐户令牌投影到pod中,kubernetes,Kubernetes,我正在尝试将serviceAccount令牌投影到我的pod中,如本k8s文档中所述- 我使用下面的命令创建一个服务帐户 kubectl create sa acct 然后我创建了豆荚 kind: Pod apiVersion: v1 metadata: name: nginx spec: containers: - image: nginx name: nginx volumeMounts: - mountPath: /var/run/secrets/to
kubectl create sa acct
然后我创建了豆荚
kind: Pod
apiVersion: v1
metadata:
name: nginx
spec:
containers:
- image: nginx
name: nginx
volumeMounts:
- mountPath: /var/run/secrets/tokens
name: vault-token
serviceAccountName: acct
volumes:
- name: vault-token
projected:
sources:
- serviceAccountToken:
path: vault-token
expirationSeconds: 7200
由于-MountVolume而失败。卷“vault token”的安装失败:无法获取令牌:服务器找不到请求的资源
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 5m15s default-scheduler Successfully assigned default/nginx to minikube
Warning FailedMount 65s (x10 over 5m15s) kubelet, minikube MountVolume.SetUp failed for volume "vault-token" : failed to fetch token: the server could not find the requested resource
我的minikube版本:v0.33.1
kubectl版本:1.13
问题:
- 我做错了什么
sudo-vim/etc/kubernetes/manifests/kube-apiserver.yaml
- --service-account-issuer=api
- --service-account-signing-key-file=/etc/kubernetes/pki/apiserver.key
- --service-account-api-audiences=api
在那之后应用你的pod.yaml,它就会工作。正如您将在描述pod中看到的:
Volumes:
vault-token:
Type: Projected (a volume that contains injected data from multiple sources)
[作为非工作溶液删除]
不幸的是,在我的例子中,我的minikube不想用这个标志开始,它被卡住了:等待pods:apiserver
很快我将再次尝试调试
更新
事实证明,您只需将参数通过目录从minikubeVM的内部传递到minikube,而不是像我在前面的示例中所做的那样从外部传递到minikube(即.minikube目录),因此它将如下所示:
minikube start \
--extra-config=apiserver.service-account-signing-key-file=/var/lib/minikube/certs/apiserver.key \
--extra-config=apiserver.service-account-issuer=api \
--extra-config=apiserver.service-account-api-audiences=api
之后,创建ServiceAccount并应用pod.yaml就可以了 您是否使用文档中提到的必要标志启动了api服务器?上面的minikube命令不适用于上一个minikube版本1.8.2,您需要使用:
minikube-start--extra-config=apiserver.service-account-signing-key-file=/var/lib/minikube/certs/sa.key--extra-config=apiserver.service-account-issuer=kubernetes/servicecomport--extra-config=apiserver.service-account-api-viewers=api