微服架构基础设施环境平台搭建 -(四)在Kubernetes集群基础上搭建Kubesphere平台

通过采用微服相关架构构建一套以Kubernetes+Docker为自动化运维基础平台,以微服务为服务中心,在此基础之上构建业务中台,并通过Jekins自动构建、编译、测试、发布的自动部署,形成一套完整的自动化运维、发布的快速DevOps平台。


本文是基于Kubernets集群基础上来部署Kubesphere的,搭建Kubernetes集群参见【微服架构基础设施环境平台搭建 -(三)Docker+Kubernetes集群搭建】


Kubesphere详情参见【官方网站】

详情参照Kubesphere官方文档【在 Kubernetes 上最小化安装 KubeSphere】

微服架构基础设施环境平台搭建 系列文章


微服架构基础设施环境平台搭建 -(一)基础环境准备
微服架构基础设施环境平台搭建 -(二)Docker私有仓库Harbor服务搭建
微服架构基础设施环境平台搭建 -(三)Docker+Kubernetes集群搭建
微服架构基础设施环境平台搭建 -(四)在Kubernetes集群基础上搭建Kubesphere平台
微服架构基础设施环境平台搭建 -(五)Docker常用命令

目录

  • 微服架构基础设施环境平台搭建 -(四)在Kubernetes集群基础上搭建Kubesphere平台
  • 一、微服架构采用的技术架构
  • 二、微服架构基础设施平台网络规划
  • 三、部署架构
  • 四、部署NFS提供外部共享存储
    • 1、在ks-harbor服务器部署NFS服务
    • 2、在ks-n1、ks-n2服务器部署NFS客户端
  • 五、为Kubenetes集群配置NFS存储
    • 1、新建sc.yaml
    • 2、执行发布安装
  • 六、安装Kubesphere
    • 1、下载并发布安装Kubesphere
    • 2、通过日志实时显示安装进度
    • 3、登录Web控制台
  • 七、体验Kubesphere平台
    • 1、登录
    • 2、首页
    • 3、集群节点管理
    • 4、监控告警
  • 八、启用DevOps插件
    • 1、进入集群管理
    • 2、定制资源定义
      • 1)、搜索框内输入【clusterconfiguration】
      • 2)、进入ClusterConfiguration详情画面后编辑ks-insaller的YAML
      • 3)、将devops下的enabled值改为true
      • 4)、查看安装进度
  • 九、在Kubesphere上部署一个Harbor上的镜像服务
    • 1、创建企业空间
    • 2、创建项目
    • 3、创建访问Harbor的令牌
    • 4、创建服务

一、微服架构采用的技术架构

序号 技术框架 说明
1 Kubernetes
2 Kubesphere Kubernetes编排器,管理平台
3 Docker
4 Harbor Docker私有仓库
5 GitLab 源码库
6 Jekins 自动编译、测试、发布平台
7 Spring Cloud Alibaba Spring Cloud Alibaba微服体系架构
8 Nacos Api网关、服务注册发现配置管理中心
9 Sentinel 限流溶断安全中心
10 Seata 分布式事务管理框架
11 Redis 分布式缓存服务
12 ElasticSearch/Solr 数据检索服务
13 Mysql 结构化数据存储
14 Grafana 监控平台
15 Nginx 服务代理、Web服务

二、微服架构基础设施平台网络规划

序号 IP HostName 操作系统 K8s角色 说明
1 192.168.1.141 ks-m1 CentOS7_x64 控制节点 Kubernetes Master
2 192.168.1.142 ks-m2 CentOS7_x64 控制节点 Kubernetes Master高可用节点,如果不需要高可用,可不部署此服务器
3 192.168.1.143 ks-m3 CentOS7_x64 控制节点 Kubernetes Master高可用节点,如果不需要高可用,可不部署此服务器
4 192.168.1.144 ks-n1 CentOS7_x64 工作节点 Kubernetes Worker
5 192.168.1.145 ks-n2 CentOS7_x64 工作节点 Kubernetes Worker
6 192.168.2.146 ks-harbor CentOS7_x64 工作节点 Harbor服务+NFS文件服务

三、部署架构

四、部署NFS提供外部共享存储

1、在ks-harbor服务器部署NFS服务

yum install -y nfs-common nfs-utils
# 分配权限
mkdir /nfsdata && chmod 666 /nfsdata && chown nfsnobody /nfsdata
# 配置挂载
vim /etc/exports
/nfsdata *(rw,no_root_squash,no_all_squash,sync)#systemctl start nfs && systemctl enable nfs  && systemctl status nfs
#启动
systemctl start rpcbind && systemctl start nfs# 使配置生效
exportfs -r#检查配置是否生效
exportfs#重载配置文件,不需要重启服务
exportfs -arv

2、在ks-n1、ks-n2服务器部署NFS客户端

分别在ks-n1、ks-n2执行下面的命令

# 安装nfs
yum install -y nfs-utilssystemctl enable rpcbind
systemctl enable nfs-server
systemctl start rpcbind
systemctl start nfs-server#用showmount -e查看远程服务器rpc提供的可挂载的nfs信息
showmount -e 192.168.2.146#创建挂载点目录(可自行定义)
mkdir -p /nfsdata
#执行挂载命令,完成后测试文件是否共享
mount -t nfs 192.168.2.146:/nfsdata /nfsdata
#配置客户端重启时自动挂载
vim /etc/fstab

新增内容

192.168.2.146:/nfsdata  /nfsdata nfs     defaults    0 0
#查看挂载是否成功
df -h

五、为Kubenetes集群配置NFS存储

本操作所有命令都在ks-m1服务器上执行

1、新建sc.yaml

mkdir /home/hxyl/sc
cd /home/hxyl/sc
vim sc.yaml

sc.yaml的内容

## 创建了一个存储类
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:name: nfs-storageannotations:storageclass.kubernetes.io/is-default-class: "true"
provisioner: k8s-sigs.io/nfs-subdir-external-provisioner
parameters:archiveOnDelete: "true"  ## 删除pv的时候,pv的内容是否要备份---
apiVersion: apps/v1
kind: Deployment
metadata:name: nfs-client-provisionerlabels:app: nfs-client-provisioner# replace with namespace where provisioner is deployednamespace: default
spec:replicas: 1strategy:type: Recreateselector:matchLabels:app: nfs-client-provisionertemplate:metadata:labels:app: nfs-client-provisionerspec:serviceAccountName: nfs-client-provisionercontainers:- name: nfs-client-provisionerimage: registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images/nfs-subdir-external-provisioner:v4.0.2# resources:#    limits:#      cpu: 10m#    requests:#      cpu: 10mvolumeMounts:- name: nfs-client-rootmountPath: /persistentvolumesenv:- name: PROVISIONER_NAMEvalue: k8s-sigs.io/nfs-subdir-external-provisioner- name: NFS_SERVERvalue: 192.168.2.146 ## 指定自己nfs服务器地址- name: NFS_PATH  value: /nfsdata  ## nfs服务器共享的目录volumes:- name: nfs-client-rootnfs:server: 192.168.2.146path: /nfsdata
---
apiVersion: v1
kind: ServiceAccount
metadata:name: nfs-client-provisioner# replace with namespace where provisioner is deployednamespace: default
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:name: nfs-client-provisioner-runner
rules:- apiGroups: [""]resources: ["nodes"]verbs: ["get", "list", "watch"]- apiGroups: [""]resources: ["persistentvolumes"]verbs: ["get", "list", "watch", "create", "delete"]- apiGroups: [""]resources: ["persistentvolumeclaims"]verbs: ["get", "list", "watch", "update"]- apiGroups: ["storage.k8s.io"]resources: ["storageclasses"]verbs: ["get", "list", "watch"]- apiGroups: [""]resources: ["events"]verbs: ["create", "update", "patch"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:name: run-nfs-client-provisioner
subjects:- kind: ServiceAccountname: nfs-client-provisioner# replace with namespace where provisioner is deployednamespace: default
roleRef:kind: ClusterRolename: nfs-client-provisioner-runnerapiGroup: rbac.authorization.k8s.io
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:name: leader-locking-nfs-client-provisioner# replace with namespace where provisioner is deployednamespace: default
rules:- apiGroups: [""]resources: ["endpoints"]verbs: ["get", "list", "watch", "create", "update", "patch"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:name: leader-locking-nfs-client-provisioner# replace with namespace where provisioner is deployednamespace: default
subjects:- kind: ServiceAccountname: nfs-client-provisioner# replace with namespace where provisioner is deployednamespace: default
roleRef:kind: Rolename: leader-locking-nfs-client-provisionerapiGroup: rbac.authorization.k8s.io

2、执行发布安装

# 执行发布安装
kubectl apply -f sc.yaml# 查看nfs-client-provisioner pod 是否安装成功
kubectl get pod -A


六、安装Kubesphere

1、下载并发布安装Kubesphere

# 下载核心文件并将其pod发布到Kubernetes中
kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.3.2/kubesphere-installer.yaml# 执行完此命令后需要通过下面【2、通过日志实时显示安装进度】命令查看安装进度,大概需要几分钟的时间
kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.3.2/cluster-configuration.yaml

2、通过日志实时显示安装进度

#查看安装进度
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

3、登录Web控制台

说明:


1、访问3个Master节点(ks-m1、ks-m2、ks-m3)任何一个节点的30880端口即可。例如:http://192.168.1.141:30880
2、默认的用户名:admin,默认的密码:P@88w0rd

七、体验Kubesphere平台

说明:
下面部分截图中显示的是3个节点,原因是开始部署的5台虚拟机由于资源有限,服务器跑不动了,导致集群节点不可用,后来,将集群节点由5个降为3个节点:
1、Master节点:ks-m1
2、Worker节点:ks-m2、ks-n1

1、登录

1)、登录画面

2)、初次登录时修改初始密码画面

2、首页

1)、登录成功后首页

2)、平台管理首页

3、集群节点管理

1)、集群节点列表管理画面

2)、集群节点详情画面


4、监控告警




八、启用DevOps插件

1、进入集群管理

登录Web控制台后->平台管理->集群管理

2、定制资源定义

1)、搜索框内输入【clusterconfiguration】

2)、进入ClusterConfiguration详情画面后编辑ks-insaller的YAML

3)、将devops下的enabled值改为true

改值改为true后,点击【确定】后保存并关闭弹窗口,并在稍后会提示“更新成功”

4)、查看安装进度

安装过程会持续几分钟,执行下面命令可以查看实时安装日志

# 在ks-m1上执行
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

九、在Kubesphere上部署一个Harbor上的镜像服务

1、创建企业空间

2、创建项目

3、创建访问Harbor的令牌

项目详情->配置->保密字典

4、创建服务

项目详情->应用负载->服务

说明


1、无状态服务:无数据数据持久化的服务
2、有状态服务:数据需要持久化的服务

由于我们是要创建mysql服务,所以选有状态




配置完成后点击【对钩】




微服架构基础设施环境平台搭建 -(四)在Kubernetes集群基础上搭建Kubesphere平台相关推荐

  1. 微服架构基础设施环境平台搭建 -(一)基础环境准备

    微服架构基础设施环境平台搭建 -(一)基础环境准备 通过采用微服相关架构构建一套以Kubernetes+Docker为自动化运维基础平台,以微服务为服务中心,在此基础之上构建业务中台,并通过Jekin ...

  2. 微服架构基础设施环境平台搭建 -(五)Docker常用命令

    微服架构基础设施环境平台搭建 -(五)Docker常用命令 本文主要列出了Docker常用的命令 微服架构基础设施环境平台搭建 系列文章 微服架构基础设施环境平台搭建 -(一)基础环境准备 微服架构基 ...

  3. 微服架构基础设施环境平台搭建 -(二)Docker私有仓库Harbor服务搭建

    微服架构基础设施环境平台搭建 -(二)Docker私有仓库Harbor服务搭建 通过采用微服相关架构构建一套以Kubernetes+Docker为自动化运维基础平台,以微服务为服务中心,在此基础之上构 ...

  4. Rancher 2.x 搭建及管理 Kubernetes 集群

    文章目录 1.Rancher 2.x 介绍 1.1.Rancher 1.x VS Rancher 2.x 1.2.Rancher 2.x 架构图 2.环境.软件准备 3.创建 RancherOS 启动 ...

  5. Kubernetes 集群基于 Rook 搭建 Ceph 分布式存储系统

    文章目录 1.Rook & Ceph 介绍 1.1.Rook 1.2.Ceph 2.环境.软件准备 3.Kubernetes HA 集群搭建 4.部署 Rook Operator 5.配置 R ...

  6. VMware搭建分布式集群基础环境

    VMware搭建分布式集群基础环境 1. 前言 在日常学习.工作当中,我们经常需要用到分布式集群环境,如zookeeper集群.redis集群.大数据集群等,而通常并没有那么多的物理机器可以使用,因此 ...

  7. Kubernetes集群搭建以及基本使用【具详细】;

    文章目录 前言 一.有了docker为什么还需要k8s 二.K8s介绍.集群架构.服务器配置推荐 1.kubernetes是什么 2.Kubernetes集群架构与组件 3.生产环境部署K8s的两种方 ...

  8. k8s学习(2)- 虚拟机搭建搭建Kubernetes集群(1.24.2)

    虚拟机搭建搭建Kubernetes集群 环境 规划 虚拟机搭建 配置网络 解决和主机复制粘贴的问题 使用MobaXterm连接虚拟机 安装vmware tools(建议使用MobaXterm) 配置y ...

  9. kubernetes集群搭建

    Kubernetes集群组件: - etcd 一个高可用的K/V键值对存储和服务发现系统 - flannel 实现夸主机的容器网络的通信 - kube-apiserver 提供kubernetes集群 ...

最新文章

  1. python subprocess库 终端命令行命令
  2. 孙钟秀--《操作系统教程》注释(陈怀临)-- 读书笔记
  3. 从零开始配置MySQL MMM
  4. jboss fuse 教程_JBoss Fuse –使用MVEL将您的静态配置转换为动态模板
  5. 【leetcodeMySQL每周一练】- 5道题带你练习mysql
  6. 牛客16596 计算系数(排列组合)
  7. 访问不了_同事的电脑无法访问,共享打印机连接不上,问题都在这
  8. 4.swift 知识点积累 as 闭包和函数类型
  9. 桌面虚拟化之盗梦空间
  10. Android Binder机制的Native应用—双向通信
  11. Py2,Py3的差异
  12. 【python 类】【部分转发】设计模式 -- 责任链模式 (类之间的联动)
  13. 在路上——黄山、宏村
  14. 数字化转型不给力?你可能少了vPro这样的“芯”动力
  15. 搜狗双拼如何打单韵母字
  16. springboot整合redis做缓存
  17. 仿知乎日报图文小程序模板
  18. littleVGL学习笔记8——lv_cont 容器
  19. angular.json
  20. 游戏中的三角学——Sprite Kit 和 Swift 教程(1)

热门文章

  1. 2021考研肖秀荣大纲解读及复习建议
  2. 软考A计划-软件设计师(高级程序员)考试大纲
  3. 武汉大学计算机学院 论文,武大计算机学院教授分享:学术论文投稿与Rebuttal经验...
  4. 5G标准中常见缩略词总结(26个英文字母)
  5. SAP FICO 付款及清账解析
  6. model.evaluate 和 model.predict
  7. 遥感处理平台的发展(ENVI与GEE的比较)
  8. Sql Server查询本周及上周(周一-周日)具体某天的数据的sql语句
  9. 使用傲梅分区助手绿色版给C盘扩容
  10. ACAC java中final关键字