导入 AWS EKS 集群

    • 您需要准备一个已安装 KubeSphere 的 Kubernetes 集群,并将其设置为主集群。有关如何准备主集群的更多信息,请参考准备主集群
    • 您需要准备一个 EKS 集群,用作。

    导入 EKS 集群

    您需要首先在 EKS 集群上部署 KubeSphere。有关如何在 EKS 上部署 KubeSphere 的更多信息,请参考在 AWS EKS 上部署 KubeSphere

    1. 为了通过主集群管理,您需要使它们之间的 相同。首先,需要在主集群上执行以下命令获取 jwtSecret

      输出类似如下:

      1. jwtSecret: "QVguGh7qnURywHn2od9IiOX6X8f8wK8g"
    2. admin 身份登录 EKS 集群的 KubeSphere Web 控制台。点击左上角的平台管理,选择集群管理

    3. 访问 CRD,在搜索栏输入 ClusterConfiguration,然后按下键盘上的回车键。点击 ClusterConfiguration 访问其详情页。

    4. 点击右侧的 ,选择编辑配置文件来编辑 ks-installer

      1. authentication:
      2. jwtSecret: QVguGh7qnURywHn2od9IiOX6X8f8wK8g

      备注

      请确保使用您自己的 jwtSecret。您需要等待一段时间使更改生效。

    1. 不像标准的 kubeadm 集群那样提供内置的 kubeconfig 文件。但您可以参考此文档创建 kubeconfig 文件。生成的 kubeconfig 文件类似如下:

      1. apiVersion: v1
      2. clusters:
      3. - cluster:
      4. server: <endpoint-url>
      5. certificate-authority-data: <base64-encoded-ca-cert>
      6. name: kubernetes
      7. contexts:
      8. - context:
      9. cluster: kubernetes
      10. user: aws
      11. name: aws
      12. kind: Config
      13. preferences: {}
      14. - name: aws
      15. user:
      16. exec:
      17. apiVersion: client.authentication.k8s.io/v1alpha1
      18. command: aws
      19. args:
      20. - "eks"
      21. - "get-token"
      22. - "--cluster-name"
      23. - "<cluster-name>"
      24. # - "--role"
      25. # - "<role-arn>"
      26. # env:
      27. # - name: AWS_PROFILE
      28. # value: "<aws-profile>"

      但是,自动生成的 kubeconfig 文件要求使用此 kubeconfig 的每台计算机均安装有 aws 命令(aws CLI 工具)。

    2. 在本地计算机上运行以下命令,获得由 KubeSphere 创建的 ServiceAccount kubesphere 的令牌,该令牌对集群具有集群管理员访问权限,并将用作新的 kubeconfig 令牌。

      1. TOKEN=$(kubectl -n kubesphere-system get secret $(kubectl -n kubesphere-system get sa kubesphere -o jsonpath='{.secrets[0].name}') -o jsonpath='{.data.token}' | base64 -d)
      2. kubectl config set-credentials kubesphere --token=${TOKEN}
      3. kubectl config set-context --current --user=kubesphere
    3. 运行以下命令获取新的 kubeconfig 文件:

      1. apiVersion: v1
      2. clusters:
      3. - cluster:
      4. certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZ...S0tLQo=
      5. server: https://*.sk1.cn-north-1.eks.amazonaws.com.cn
      6. contexts:
      7. - context:
      8. cluster: arn:aws-cn:eks:cn-north-1:660450875567:cluster/EKS-LUSLVMT6
      9. user: kubesphere
      10. name: arn:aws-cn:eks:cn-north-1:660450875567:cluster/EKS-LUSLVMT6
      11. current-context: arn:aws-cn:eks:cn-north-1:660450875567:cluster/EKS-LUSLVMT6
      12. kind: Config
      13. preferences: {}
      14. users:
      15. - name: arn:aws-cn:eks:cn-north-1:660450875567:cluster/EKS-LUSLVMT6
      16. user:
      17. exec:
      18. apiVersion: client.authentication.k8s.io/v1alpha1
      19. args:
      20. - --region
      21. - cn-north-1
      22. - eks
      23. - get-token
      24. - --cluster-name
      25. - EKS-LUSLVMT6
      26. command: aws
      27. env: null
      28. - name: kubesphere
      29. user:
      30. token: eyJhbGciOiJSUzI1NiIsImtpZCI6ImlCRHF4SlE5a0JFNDlSM2xKWnY1Vkt5NTJrcDNqRS1Ta25IYkg1akhNRmsifQ.eyJpc3M................9KQtFULW544G-FBwURd6ArjgQ3Ay6NHYWZe3gWCHLmag9gF-hnzxequ7oN0LiJrA-al1qGeQv-8eiOFqX3RPCQgbybmix8qw5U6f-Rwvb47-xA

      您可以运行以下命令检查新的 kubeconfig 是否有权限访问 EKS 集群。

      1. kubectl get nodes

      输出类似如下:

    1. 以 身份登录主集群的 KubeSphere Web 控制台。点击左上角的平台管理,然后选择集群管理。在集群管理页面,点击添加集群

    2. 按需输入基本信息,然后点击下一步

    3. 等待集群初始化完成。