在 AWS 上创建 DevOps Kubeconfig

在已安装 KubeSphere 的 AWS 集群上运行流水线时,如果无法将应用部署到项目中,可能是因 DevOps kubeconfig 出问题所导致。本教程介绍如何在 AWS 上创建 DevOps kubeconfig。

准备工作

  • 您需要准备一个已安装 KubeSphere 的 AWS 集群。有关如何在 AWS 上安装 KubeSphere 的更多信息,请参考在 AWS EKS 上部署 KubeSphere
  • 您需要启用 KubeSphere DevOps 系统
  • 您需要准备一个可以部署应用的项目。本教程以 kubesphere-sample-dev 项目为例。

创建 DevOps Kubeconfig

步骤 1:创建 ServiceAccount

  1. 在您的 AWS 集群上创建 devops-deploy.yaml 文件并输入以下内容。

    1. ---
    2. apiVersion: v1
    3. kind: ServiceAccount
    4. metadata:
    5. name: devops-deploy
    6. namespace: kubesphere-sample-dev
    7. ---
    8. apiVersion: rbac.authorization.k8s.io/v1
    9. kind: Role
    10. metadata:
    11. name: devops-deploy-role
    12. namespace: kubesphere-sample-dev
    13. rules:
    14. - apiGroups:
    15. - "*"
    16. resources:
    17. - "*"
    18. verbs:
    19. - "*"
    20. ---
    21. apiVersion: rbac.authorization.k8s.io/v1
    22. kind: RoleBinding
    23. metadata:
    24. name: devops-deploy-rolebinding
    25. namespace: kubesphere-sample-dev
    26. roleRef:
    27. apiGroup: rbac.authorization.k8s.io
    28. kind: Role
    29. name: devops-deploy-role
    30. subjects:
    31. - kind: ServiceAccount
    32. name: devops-deploy
    33. namespace: kubesphere-sample-dev
  2. 运行以下命令应用该 YAML 文件。

    1. kubectl apply -f devops-deploy.yaml

步骤 2:获取服务帐户令牌

  1. 运行以下命令获取服务帐户的令牌。

    1. export TOKEN_NAME=$(kubectl -n kubesphere-sample-dev get sa devops-deploy -o jsonpath='{.secrets[0].name}')
    2. kubectl -n kubesphere-sample-dev get secret "${TOKEN_NAME}" -o jsonpath='{.data.token}' | base64 -d
  2. 输出类似如下:

    get-token

步骤 3:创建 DevOps kubeconfig

  1. 登录 AWS 集群的 KubeSphere 控制台,访问您的 DevOps 项目。转到 DevOps 项目设置下的凭证,然后点击创建。您可以按需输入该 kubeconfig 的凭证 ID

  2. Content 文本框中,请注意以下内容:

    1. user:
    2. client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FUR...
    3. client-key-data: LS0tLS1CRUdJTiBQUk...

    您需要将其替换为在步骤 2 中获取的令牌,然后点击确定创建 kubeconfig。

    1. user:
    2. token:eyJhbGciOiJSUzI1NiIsImtpZCI6Ikl3UkhCay13dHpPY2Z6LW9VTlZKQVR6dVdmb2FHallJQ2E4VzJULUNjUzAifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlc3BoZXJlLXNhbXBsZS1kZXYiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlY3JldC5uYW1lIjoiZGV2b3BzLWRlcGxveS10b2tlbi1kcGY2ZiIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJkZXZvcHMtZGVwbG95Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiMjM0ZTI4OTUtMjM3YS00M2Y5LTkwMTgtZDg4YjY2YTQyNzVmIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmVzcGhlcmUtc2FtcGxlLWRldjpkZXZvcHMtZGVwbG95In0.Ls6mkpgAU75zVw87FkcWx-MLEXGcJjlnb4rUVtT61Jmc_G6jkn4X45MK1V_HuLje3JZMFjL80QUl5ljHLiCUPQ7oE5AUZaUCdqZVdDYEhqeFuGQb_7Qlh8-UFVGGg8vrb0HeGiOlS0qq5hzwKc9C1OmsXHS92yhNwz9gIOujZRafnGKIsG6TL2hEVY2xI0vvmseDKmKg5o0TbeaTMVePHvECju9Qz3Z7TUYsr7HAOvCPtGutlPWLqGx5uOHenOdeLn71x5RoS98xguZoxYVollciPKCQwBlZ4zWK2hzsLSNNLb9cZpxtgUVyHE0AB0e86IHRngnnNrzpp1_pDxL5jw/

    备注

    请确保使用您自己的令牌。