微服架构基础设施环境平台搭建 -(四)在Kubernetes集群基础上搭建Kubesphere平台
微服架构基础设施环境平台搭建 -(四)在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平台相关推荐
- 微服架构基础设施环境平台搭建 -(一)基础环境准备
微服架构基础设施环境平台搭建 -(一)基础环境准备 通过采用微服相关架构构建一套以Kubernetes+Docker为自动化运维基础平台,以微服务为服务中心,在此基础之上构建业务中台,并通过Jekin ...
- 微服架构基础设施环境平台搭建 -(五)Docker常用命令
微服架构基础设施环境平台搭建 -(五)Docker常用命令 本文主要列出了Docker常用的命令 微服架构基础设施环境平台搭建 系列文章 微服架构基础设施环境平台搭建 -(一)基础环境准备 微服架构基 ...
- 微服架构基础设施环境平台搭建 -(二)Docker私有仓库Harbor服务搭建
微服架构基础设施环境平台搭建 -(二)Docker私有仓库Harbor服务搭建 通过采用微服相关架构构建一套以Kubernetes+Docker为自动化运维基础平台,以微服务为服务中心,在此基础之上构 ...
- 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 启动 ...
- Kubernetes 集群基于 Rook 搭建 Ceph 分布式存储系统
文章目录 1.Rook & Ceph 介绍 1.1.Rook 1.2.Ceph 2.环境.软件准备 3.Kubernetes HA 集群搭建 4.部署 Rook Operator 5.配置 R ...
- VMware搭建分布式集群基础环境
VMware搭建分布式集群基础环境 1. 前言 在日常学习.工作当中,我们经常需要用到分布式集群环境,如zookeeper集群.redis集群.大数据集群等,而通常并没有那么多的物理机器可以使用,因此 ...
- Kubernetes集群搭建以及基本使用【具详细】;
文章目录 前言 一.有了docker为什么还需要k8s 二.K8s介绍.集群架构.服务器配置推荐 1.kubernetes是什么 2.Kubernetes集群架构与组件 3.生产环境部署K8s的两种方 ...
- k8s学习(2)- 虚拟机搭建搭建Kubernetes集群(1.24.2)
虚拟机搭建搭建Kubernetes集群 环境 规划 虚拟机搭建 配置网络 解决和主机复制粘贴的问题 使用MobaXterm连接虚拟机 安装vmware tools(建议使用MobaXterm) 配置y ...
- kubernetes集群搭建
Kubernetes集群组件: - etcd 一个高可用的K/V键值对存储和服务发现系统 - flannel 实现夸主机的容器网络的通信 - kube-apiserver 提供kubernetes集群 ...
最新文章
- python subprocess库 终端命令行命令
- 孙钟秀--《操作系统教程》注释(陈怀临)-- 读书笔记
- 从零开始配置MySQL MMM
- jboss fuse 教程_JBoss Fuse –使用MVEL将您的静态配置转换为动态模板
- 【leetcodeMySQL每周一练】- 5道题带你练习mysql
- 牛客16596 计算系数(排列组合)
- 访问不了_同事的电脑无法访问,共享打印机连接不上,问题都在这
- 4.swift 知识点积累 as 闭包和函数类型
- 桌面虚拟化之盗梦空间
- Android Binder机制的Native应用—双向通信
- Py2,Py3的差异
- 【python 类】【部分转发】设计模式 -- 责任链模式 (类之间的联动)
- 在路上——黄山、宏村
- 数字化转型不给力?你可能少了vPro这样的“芯”动力
- 搜狗双拼如何打单韵母字
- springboot整合redis做缓存
- 仿知乎日报图文小程序模板
- littleVGL学习笔记8——lv_cont 容器
- angular.json
- 游戏中的三角学——Sprite Kit 和 Swift 教程(1)
热门文章
- 2021考研肖秀荣大纲解读及复习建议
- 软考A计划-软件设计师(高级程序员)考试大纲
- 武汉大学计算机学院 论文,武大计算机学院教授分享:学术论文投稿与Rebuttal经验...
- 5G标准中常见缩略词总结(26个英文字母)
- SAP FICO 付款及清账解析
- model.evaluate 和 model.predict
- 遥感处理平台的发展(ENVI与GEE的比较)
- Sql Server查询本周及上周(周一-周日)具体某天的数据的sql语句
- 使用傲梅分区助手绿色版给C盘扩容
- ACAC java中final关键字