【问题标题】:openshift add service account to deployed appopenshift 将服务帐户添加到已部署的应用程序
【发布时间】:2020-09-12 15:04:56
【问题描述】:
我正在尝试将服务帐户添加到已部署的应用程序,但到目前为止,我一直收到“应用程序不可用消息”,我执行了以下操作
已创建服务帐号
oc create sa name-sa
oc add policy add-scc-to-user anyuid -z name-sa -n book
将服务帐户添加到已部署的应用程序
oc set serviceacccount deploymentconfig wordapp name-sa
我检查了 pod 并且应用程序正在运行,但我仍然无法看到路由的任何输出,并且 oc desribe pod 命令没有给出任何错误
【问题讨论】:
标签:
kubernetes
openshift
service-accounts
【解决方案1】:
我不确定 ServiceAccount 的权限是否会导致此问题。
我认为首先你应该通过 Route -> Service -> Pod 检查访问流的关系,并使用 curl 命令验证你的应用程序是否正常工作。
我向您展示故障排除步骤如下。
- 检查您的路由绑定了哪些服务。
在这种情况下,docker-registry 服务与 Route 相关联。
$ oc describe route <your routename>
:
Service: docker-registry
Weight: 100 (100%)
Endpoints: 10.128.1.94:5000 <--- You can check if this IP is matched with your application pod IP.
- 然后检查Service是否能正确检测到Endpoint pod。
$ oc describe svc docker-registry
:
Port: 5000-tcp 5000/TCP
TargetPort: 5000/TCP
Endpoints: 10.128.1.94:5000 <--- You can check if this IP is matched with your application pod IP.
- 使用 curl 验证 pod 上应用程序的可访问性
$ oc rsh <your pod name> curl -vs http://localhost:5000/
:
< HTTP/1.1 200 OK <--- You check if you can get expected response of your application on the pod.
- 此外,您还可以通过设置 SCC 权限和 ServiceAccount 来检查您的 pod 是否正在运行。
4 oc get pod <your podname> -o yaml | grep -E 'scc|serviceAccountName'
openshift.io/scc: anyuid
serviceAccountName: name-sa