kubesphere多集群管理,实现kubernetes多集群同时应用部署

14 篇文章 2 订阅
7 篇文章 0 订阅

kubernetes和kubesphere的搭建参见本人上一篇博客,本文需要两套kubesphere

1.修改主集群(管理用)
使用 admin 帐户登录控制台,然后进入集群管理页面上的 CRD,输入关键字 ClusterConfiguration,然后转到其详情页面。编辑 ks-installer 的 YAML 文件,将 clusterRole 的值设置为 host。
请添加图片描述
修改如下:hostCluster为集群名称,clusterRole: host表示为主集群

  multicluster:
    clusterRole: host

查看更新日志命令如下:

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

查看tower的的nodeport端口
在这里插入图片描述
再次使用 admin 帐户登录控制台,然后进入集群管理页面上的 CRD,输入关键字 ClusterConfiguration,然后转到其详情页面。编辑 ks-installer 的 YAML 文件,并添加新行输入 proxyPublishAddress 来定义 IP 地址,以便访问 Tower。

multicluster:
    clusterRole: host
    proxyPublishAddress: http://x.x.x.x:31574

重启ks-apiserver,并获取jwtSecret

kubectl -n kubesphere-system rollout restart deployment ks-apiserver
kubectl -n kubesphere-system get cm kubesphere-config -o yaml | grep -v "apiVersion" | grep jwtSecret

2.修改备集群

使用 admin 帐户登录控制台,然后进入集群管理页面上的 CRD,输入关键字 ClusterConfiguration,然后转到其详情页面。编辑 ks-installer 的 YAML 文件, 设置jwtSecret,并且将 clusterRole 的值设置为member

authentication:
  jwtSecret: gfIwilcc0WjNGKJ5DLeksf2JKfcLgTZU
multicluster:
  clusterRole: member

登录 member 集群, 需要修改一下配置 kubectl -n kubesphere-system edit cm kubesphere-config 再 accessTokenMaxAge 同级加上如下配置

        clients:
        - name: kubesphere
          secret: kubesphere
          redirectURIs:
          - '*' 

再重启 ks-apiserver

kubectl -n kubesphere-system rollout restart deploy ks-apiserver

3.导入集群
以 admin 身份登录 KubeSphere 主集群控制台,转到集群管理页面点击添加集群。

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

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

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

4.创建企业空间
请添加图片描述
并且选择相关集群
5.创建多集群项目
请添加图片描述
5.创建应用
请添加图片描述
请添加图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
KubeSphere 是一个 Kubernetes 管理平台,可以帮助用户更轻松地在 Kubernetes部署管理应用程序。在 KubeSphere部署 MySQL 集群需要以下步骤: 1. 创建命名空间 首先,在 KubeSphere 上创建一个命名空间(namespace),用于部署 MySQL 集群。可以通过以下命令创建命名空间: ``` kubectl create namespace mysql ``` 2. 创建 PVC 接下来,创建一个永久卷(Persistent Volume)声明(PVC),用于存储 MySQL 数据。可以使用以下 YAML 文件创建 PVC: ``` apiVersion: v1 kind: PersistentVolumeClaim metadata: name: mysql-pvc namespace: mysql spec: storageClassName: standard accessModes: - ReadWriteOnce resources: requests: storage: 1Gi ``` 将上述 YAML 文件保存为 `mysql-pvc.yaml` 文件,并使用以下命令创建 PVC: ``` kubectl apply -f mysql-pvc.yaml ``` 3. 创建 StatefulSet 在 KubeSphere 上运行 MySQL 集群需要使用 StatefulSet。可以使用以下 YAML 文件创建 StatefulSet: ``` apiVersion: apps/v1 kind: StatefulSet metadata: name: mysql namespace: mysql spec: serviceName: mysql replicas: 3 selector: matchLabels: app: mysql template: metadata: labels: app: mysql spec: containers: - name: mysql image: mysql:5.7 env: - name: MYSQL_ROOT_PASSWORD value: password ports: - containerPort: 3306 name: mysql volumeMounts: - mountPath: /var/lib/mysql name: mysql-pvc volumeClaimTemplates: - metadata: name: mysql-pvc spec: accessModes: ["ReadWriteOnce"] resources: requests: storage: 1Gi storageClassName: standard ``` 将上述 YAML 文件保存为 `mysql-statefulset.yaml` 文件,并使用以下命令创建 StatefulSet: ``` kubectl apply -f mysql-statefulset.yaml ``` 4. 创建 Service 最后,创建一个 Service,用于将 MySQL 数据库暴露给其他应用程序。可以使用以下 YAML 文件创建 Service: ``` apiVersion: v1 kind: Service metadata: name: mysql namespace: mysql spec: selector: app: mysql ports: - name: mysql port: 3306 targetPort: 3306 clusterIP: None ``` 将上述 YAML 文件保存为 `mysql-service.yaml` 文件,并使用以下命令创建 Service: ``` kubectl apply -f mysql-service.yaml ``` 现在,MySQL 集群已经部署完成,并可以通过 Service 的 ClusterIP 访问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

掉了牙的大黄狗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值