【Amazon】通过代理连接的方式导入 AWS EKS集群至KubeSphere主容器平台

文章目录

    • 一、设置主集群
      • 方式一:使用 Web 控制台
      • 方式二:使用 Kubectl命令
    • 二、在主集群中设置代理服务地址
      • 方式一:使用 Web 控制台
      • 方式二:使用 Kubectl命令
    • 三、登录控制台验证
    • 四、准备成员集群
      • 方式一:使用 Web 控制台
      • 方式二:使用 Kubectl命令
    • 五、导入成员集群
    • 六、参考资料

一、设置主集群

如果已经安装了独立的 KubeSphere 集群,可以编辑集群配置,将 clusterRole 的值设置为 host

方式一:使用 Web 控制台

使用 admin 帐户登录控制台,然后进入集群管理页面上的定制资源定义,输入关键字 ClusterConfiguration,然后转到其详情页面。编辑 ks-installer 的 YAML 文件。

方式二:使用 Kubectl命令

kubectl edit cc ks-installer -n kubesphere-system
multicluster:
  clusterRole: host
  hostClusterName: kubesphere-master

PS:hostClusterName: kubesphere-master集群名称需要跟主机名保存一致!!!

【Amazon】通过代理连接的方式导入 AWS EKS集群至KubeSphere主容器平台_第1张图片

[root@kubesphere-master ~]# kubectl edit cc ks-installer -n kubesphere-system
clusterconfiguration.installer.kubesphere.io/ks-installer edited

在 kubectl 中执行以下命令查看安装过程:

kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l 'app in (ks-install, ks-installer)' -o jsonpath='{.items[0].metadata.name}') -f

【Amazon】通过代理连接的方式导入 AWS EKS集群至KubeSphere主容器平台_第2张图片

二、在主集群中设置代理服务地址

  • 执行以下命令来检查服务。
kubectl -n kubesphere-system get svc
[root@kubesphere-master ~]# kubectl -n kubesphere-system get svc
NAME                    TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
ks-apiserver            ClusterIP      10.233.57.31            80/TCP           126m
ks-console              NodePort       10.233.47.149           80:30880/TCP     126m
ks-controller-manager   ClusterIP      10.233.42.244           443/TCP          126m
minio                   ClusterIP      10.233.16.144           9000/TCP         78m
tower                   LoadBalancer   10.233.7.51          8080:31899/TCP   4m10s

由于 EXTERNAL-IP 处于 pending 状态,需要手动设置代理地址。例如,如果公有 IP 地址为 139.198.120.120,则需要将公网 IP 的端口,如30721 转发到 NodeIP:NodePort

proxyPublishAddress 的值添加到 ks-installer 的配置文件中,并按如下所示输入公有 IP 地址(此处示例 139.198.120.120)和端口号。

方式一:使用 Web 控制台

使用 admin 帐户登录控制台,然后进入集群管理页面上的定制资源定义,输入关键字 ClusterConfiguration,然后转到其详情页面。编辑 ks-installer 的 YAML 文件。

方式二:使用 Kubectl命令

[root@kubesphere-master ~]# kubectl -n kubesphere-system edit clusterconfiguration ks-installer
clusterconfiguration.installer.kubesphere.io/ks-installer edited

【Amazon】通过代理连接的方式导入 AWS EKS集群至KubeSphere主容器平台_第3张图片

在 kubectl 中执行以下命令查看安装过程:

kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l 'app in (ks-install, ks-installer)' -o jsonpath='{.items[0].metadata.name}') -f

【Amazon】通过代理连接的方式导入 AWS EKS集群至KubeSphere主容器平台_第4张图片

三、登录控制台验证

发现,此时该KubeSphere集群已成为主集群

【Amazon】通过代理连接的方式导入 AWS EKS集群至KubeSphere主容器平台_第5张图片

【Amazon】通过代理连接的方式导入 AWS EKS集群至KubeSphere主容器平台_第6张图片

四、准备成员集群

为了通过主集群管理成员集群,需要使它们之间的 jwtSecret 相同。因此,首先需要在主集群中执行以下命令来获取它。

kubectl -n kubesphere-system get cm kubesphere-config -o yaml | grep -v "apiVersion" | grep jwtSecret

命令输出结果如下所示:

jwtSecret: "93ObvPBzq1F1EEUZEydp6eJK8Cn0TqeZ"

如果已经安装了独立的 KubeSphere 集群,可以编辑集群配置,将 clusterRole 的值设置为 member

方式一:使用 Web 控制台

使用 admin 帐户登录控制台,然后进入集群管理页面上的定制资源定义,输入关键字 ClusterConfiguration,然后转到其详情页面。编辑 ks-installer 的 YAML 文件。

方式二:使用 Kubectl命令

kubectl edit cc ks-installer -n kubesphere-system
  • ks-installer 的 YAML 文件中对应输入上面所示的 jwtSecret
authentication:
  jwtSecret: 93ObvPBzq1F1EEUZEydp6eJK8Cn0TqeZ

【Amazon】通过代理连接的方式导入 AWS EKS集群至KubeSphere主容器平台_第7张图片

  • 向下滚动并将 clusterRole 的值设置为 member,然后点击确定(如果使用 Web 控制台)使其生效:
multicluster:
  clusterRole: member

【Amazon】通过代理连接的方式导入 AWS EKS集群至KubeSphere主容器平台_第8张图片

:wq保存退出。

kubectl edit cc ks-installer -n kubesphere-system
clusterconfiguration.installer.kubesphere.io/ks-installer edited

在 kubectl 中执行以下命令查看安装过程:

kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l 'app in (ks-install, ks-installer)' -o jsonpath='{.items[0].metadata.name}') -f

使用 kubectl 来获取安装日志以验证状态。运行以下命令,稍等片刻,如果成员集群已准备就绪,将看到成功的日志返回。

【Amazon】通过代理连接的方式导入 AWS EKS集群至KubeSphere主容器平台_第9张图片

五、导入成员集群

admin 身份登录 KubeSphere 控制台,转到集群管理页面点击添加集群

【Amazon】通过代理连接的方式导入 AWS EKS集群至KubeSphere主容器平台_第10张图片

【Amazon】通过代理连接的方式导入 AWS EKS集群至KubeSphere主容器平台_第11张图片

导入集群页面输入要导入的集群的基本信息。您也可以点击右上角的编辑模式以 YAML 格式查看并编辑基本信息。编辑完成后,点击下一步

apiVersion: cluster.kubesphere.io/v1alpha1
kind: Cluster
spec:
  provider: Amazon EKS
  connection:
    type: proxy
    kubeconfig: ''
  joinFederation: true
metadata:
  name: xybeks-cluster
  annotations:
    kubesphere.io/alias-name: xybeks-cluster
    kubesphere.io/description: xybeks-cluster
  labels:
    cluster.kubesphere.io/group: demo

【Amazon】通过代理连接的方式导入 AWS EKS集群至KubeSphere主容器平台_第12张图片

连接方式,选择集群连接代理,然后点击创建。主集群为代理部署 (Deployment) 生成的 YAML 配置文件会显示在控制台上。

【Amazon】通过代理连接的方式导入 AWS EKS集群至KubeSphere主容器平台_第13张图片

根据指示在成员集群中创建一个 agent.yaml 文件,然后将代理部署复制并粘贴到该文件中。在该节点上执行 kubectl create -f agent.yaml 然后等待代理启动并运行。请确保成员集群可以访问代理地址。

【Amazon】通过代理连接的方式导入 AWS EKS集群至KubeSphere主容器平台_第14张图片

[root@awseksec2 ~]# vim agent.yaml
[root@awseksec2 ~]# kubectl create -f agent.yaml
deployment.apps/cluster-agent created

待集群代理启动并运行,会看到成员集群已经导入主集群。

【Amazon】通过代理连接的方式导入 AWS EKS集群至KubeSphere主容器平台_第15张图片

【Amazon】通过代理连接的方式导入 AWS EKS集群至KubeSphere主容器平台_第16张图片

【Amazon】通过代理连接的方式导入 AWS EKS集群至KubeSphere主容器平台_第17张图片

【Amazon】通过代理连接的方式导入 AWS EKS集群至KubeSphere主容器平台_第18张图片

【Amazon】通过代理连接的方式导入 AWS EKS集群至KubeSphere主容器平台_第19张图片

六、参考资料

️ 导入 AWS EKS 集群 (kubesphere.io)

你可能感兴趣的:(亚马逊云,kubernetes,aws,云计算)