参考
https://github.com/kubernetes/dashboard
https://kubernetes.io/zh-cn/docs/home/
https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/
部署方式比较简单, 这里只是做个记录,方便日后查阅
— 自动化运维 Leaning—
k8s
使用openEBS可以方便的把本地磁盘作为k8s的存储, 比如hostpath存储类让有状态副本集调度到对应的节点然后使用存储,
可以参考:
https://openebs.io/
https://zhuanlan.zhihu.com/p/519172233?utm_id=0
服务器有块磁盘, 一块系统盘,一块数据盘, 数据盘用来存东西, 挂载目录为/data, 格式化为ext4, 作为openebs host-path存储类使用,
如果需要使用块存储类,则不需要分区格式化,保持磁盘原始状态即可
本文部署环境为 centos7.9 , kubernetes 1.27,其他环境类似,区别不大
sed -e 's|^mirrorlist=|#mirrorlist=|g' \
-e 's|^#baseurl=http://mirror.centos.org/centos|baseurl=https://mirrors.ustc.edu.cn/centos|g' \
-i.bak \
/etc/yum.repos.d/CentOS-Base.repo
yum -y update
使用k8s部署Jenkins比较简单, 稍微修改下就可以了
本yaml文件创建了一个devops的namespace, 然后创建了对应SA,role等,
最后创建了一个有状态的Jenkins
注意:
xuxueli/xxl-job-admin:2.2.0
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: default
name: xxl-job-admin
spec:
replicas: 1
selector:
matchLabels:
app: xxl-job-admin
template:
metadata:
labels:
app: xxl-job-admin
spec:
containers:
- name: xxl-job-admin
image: xuxueli/xxl-job-admin:2.2.0
imagePullPolicy: Always # 优先使用本地镜像
ports:
- containerPort: 8080
env:
- name: PARAMS # 定义变量,用来接收sql的用户/密码 mysql为k8s集群内的service名称,在k8s集群内部可以直接使用service名称,因为集群默认做了coredns解析
value: "--spring.datasource.url=jdbc:mysql://MySQL地址:mysql端口/xxl_job?Unicode=true&characterEncoding=UTF-8&useSSL=false --spring.datasource.username=MySQL用户名 --spring.datasource.password=MySQL密码"
---
apiVersion: v1
kind: Service
metadata:
labels:
k8s.kuboard.cn/name: xxl-job-admin
name: xxl-job-admin
namespace: default
spec:
ports:
- name: xxl-job
port: 8080
protocol: TCP
targetPort: 8080
selector:
app: xxl-job-admin
type: ClusterIP
java nacos中配置
xxl:
job:
admin:
addresses: http://xxl-job-admin.default.svc:8080/xxl-job-admin #xxl-job服务器地址
executor:
appname: shop-product #注册到xxl-job服务器的应用名称
port: 9990 #和定时任务调度中心通信的端口
logpath: /data/appLogs/jobhandler #定时任务调用的日志文件
logretentiondays: 30 #日志文件保存的天数
redis-benchmark -h 10.244.6.69 -p 6379 -n 1000000 -c 50 -t set,get,incr -q -a a12345678
redis-benchmark -h 10.244.6.69 -p 6379 -n 1000000 -c 50 -t set,get,incr -q -a a12345678 -P 10
redis-benchmark -h 10.244.6.69 -p 6379 -n 1000000 -c 50 -t set,get,incr -q -a a12345678 -r 10
-n : 总请求数
-c : 线程数
-t : 请求类型
-q : 安静模式
-a : 密码
-P : 多少个请求一组
下面的yaml文件使用redis7构建一个3主3从的redis集群,使用openebs存储类做持久化,
2个步骤:
一开始打算把启动脚本和配置文件放入configmap,直接使用一个yaml文件进行部署,但是实际操作中遇到个问题, 后续解决了,再使用单一yaml文件部署,
这里使用自定义镜像方式,来进行部署,以下是部署流程
也可以直接使用构建好的,"k9scc/base-env:redis-7-sentinel"
以下是一个k8s上部署mongodb的简单例子
创建了一个mongodb的namespace, 创建了SA, clusterrole,名为mongo的服务, 名为mongo的3个有状态副本
本文使用的是nacos+mysql的方式
大致流程: