2.4.4. 创建和使用 secret
作为管理员,您可以创建一个服务帐户令牌 secret,您可以分发到必须通过 API 进行身份验证的应用程序。
流程
运行以下命令,在命名空间中创建服务帐户:
$ oc create sa <service_account_name> -n <your_namespace>将以下 YAML 示例保存到名为
service-account-token-secret.yaml的文件中。这个示例包括可用于生成服务帐户令牌的Secret对象配置:apiVersion: v1 kind: Secret metadata: name: <secret_name> annotations: kubernetes.io/service-account.name: "sa-name" type: kubernetes.io/service-account-token其中:
metadata.name- 为您的服务帐户令牌 secret 指定名称。
metadata.annotations-
指定一个现有服务帐户名称。如果您要同时创建
ServiceAccount和Secret对象,请首先创建ServiceAccount对象。 type- 指定服务帐户令牌 secret 类型。
通过应用文件来生成服务帐户令牌:
$ oc apply -f service-account-token-secret.yaml运行以下命令,从 secret 获取服务帐户令牌:
$ oc get secret <sa_token_secret> -o jsonpath='{.data.token}' | base64 --decode输出示例
ayJhbGciOiJSUzI1NiIsImtpZCI6IklOb2dtck1qZ3hCSWpoNnh5YnZhSE9QMkk3YnRZMVZoclFfQTZfRFp1YlUifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJkZWZhdWx0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6ImJ1aWxkZXItdG9rZW4tdHZrbnIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiYnVpbGRlciIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6IjNmZGU2MGZmLTA1NGYtNDkyZi04YzhjLTNlZjE0NDk3MmFmNyIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDpkZWZhdWx0OmJ1aWxkZXIifQ.OmqFTDuMHC_lYvvEUrjr1x453hlEEHYcxS9VKSzmRkP1SiVZWPNPkTWlfNRp6bIUZD3U6aN3N7dMSN0eI5hu36xPgpKTdvuckKLTCnelMx6cxOdAbrcw1mCmOClNscwjS1KO1kzMtYnnq8rXHiMJELsNlhnRyyIXRTtNBsy4t64T3283s3SLsancyx0gy0ujx-Ch3uKAKdZi5iT-I8jnnQ-ds5THDs2h65RJhgglQEmSxpHrLGZFmyHAQI-_SjvmHZPXEc482x3SkaQHNLqpmrpJorNqh1M8ZHKzlujhZgVooMvJmWPXTb2vnvi3DGn2XI-hZxl1yD2yGH1RBpYUHA将
<sa_token_secret> 替换为服务帐户令牌 secret 的名称。使用您的服务帐户令牌与集群的 API 进行身份验证:
$ curl -X GET <openshift_cluster_api> --header "Authorization: Bearer <token>"1 2 将
<openshift_cluster_api> 替换为 OpenShift 集群 API,并将 <token> 替换为上一命令输出的服务帐户令牌。