浙江常升建设有限公司网站,铜仁网站建设哪家专业,南山区网站建设公司,wordpress自动广告微服架构基础设施环境平台搭建 -#xff08;四#xff09;在Kubernetes集群基础上搭建Kubesphere平台 通过采用微服相关架构构建一套以KubernetesDocker为自动化运维基础平台#xff0c;以微服务为服务中心#xff0c;在此基础之上构建业务中台#xff0c;并通过Jekins自动…微服架构基础设施环境平台搭建 -四在Kubernetes集群基础上搭建Kubesphere平台 通过采用微服相关架构构建一套以KubernetesDocker为自动化运维基础平台以微服务为服务中心在此基础之上构建业务中台并通过Jekins自动构建、编译、测试、发布的自动部署形成一套完整的自动化运维、发布的快速DevOps平台。 本文是基于Kubernets集群基础上来部署Kubesphere的搭建Kubernetes集群参见【微服架构基础设施环境平台搭建 -三DockerKubernetes集群搭建】 Kubesphere详情参见【官方网站】 详情参照Kubesphere官方文档【在 Kubernetes 上最小化安装 KubeSphere】 微服架构基础设施环境平台搭建 系列文章 微服架构基础设施环境平台搭建 -一基础环境准备 微服架构基础设施环境平台搭建 -二Docker私有仓库Harbor服务搭建 微服架构基础设施环境平台搭建 -三DockerKubernetes集群搭建 微服架构基础设施环境平台搭建 -四在Kubernetes集群基础上搭建Kubesphere平台 微服架构基础设施环境平台搭建 -五Docker常用命令 目录 微服架构基础设施环境平台搭建 -四在Kubernetes集群基础上搭建Kubesphere平台一、微服架构采用的技术架构二、微服架构基础设施平台网络规划三、部署架构四、部署NFS提供外部共享存储1、在ks-harbor服务器部署NFS服务2、在ks-n1、ks-n2服务器部署NFS客户端 五、为Kubenetes集群配置NFS存储1、新建sc.yaml2、执行发布安装 六、安装Kubesphere1、下载并发布安装Kubesphere2、通过日志实时显示安装进度3、登录Web控制台 七、体验Kubesphere平台1、登录2、首页3、集群节点管理4、监控告警 八、启用DevOps插件1、进入集群管理2、定制资源定义1、搜索框内输入【clusterconfiguration】2、进入ClusterConfiguration详情画面后编辑ks-insaller的YAML3、将devops下的enabled值改为true4、查看安装进度 九、在Kubesphere上部署一个Harbor上的镜像服务1、创建企业空间2、创建项目3、创建访问Harbor的令牌4、创建服务 一、微服架构采用的技术架构
序号技术框架说明1Kubernetes2KubesphereKubernetes编排器管理平台3Docker4HarborDocker私有仓库5GitLab源码库6Jekins自动编译、测试、发布平台7Spring Cloud AlibabaSpring Cloud Alibaba微服体系架构8NacosApi网关、服务注册发现配置管理中心9Sentinel限流溶断安全中心10Seata分布式事务管理框架11Redis分布式缓存服务12ElasticSearch/Solr数据检索服务13Mysql结构化数据存储14Grafana监控平台15Nginx服务代理、Web服务
二、微服架构基础设施平台网络规划
序号IPHostName操作系统K8s角色说明1192.168.1.141ks-m1CentOS7_x64控制节点Kubernetes Master2192.168.1.142ks-m2CentOS7_x64控制节点Kubernetes Master高可用节点如果不需要高可用可不部署此服务器3192.168.1.143ks-m3CentOS7_x64控制节点Kubernetes Master高可用节点如果不需要高可用可不部署此服务器4192.168.1.144ks-n1CentOS7_x64工作节点Kubernetes Worker5192.168.1.145ks-n2CentOS7_x64工作节点Kubernetes Worker6192.168.2.146ks-harborCentOS7_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 -arv2、在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.yamlsc.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.io2、执行发布安装
# 执行发布安装
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.yaml2、通过日志实时显示安装进度
#查看安装进度
kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app in (ks-install, ks-installer) -o jsonpath{.items[0].metadata.name}) -f3、登录Web控制台 说明 1、访问3个Master节点ks-m1、ks-m2、ks-m3任何一个节点的30880端口即可。例如http://192.168.1.141:30880 2、默认的用户名admin默认的密码P88w0rd 七、体验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服务所以选有状态 配置完成后点击【对钩】