自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (1)
  • 收藏
  • 关注

原创 Terraform手动更改资源测试

以上情况,将tf code由used01subnet1改为used01subnet1-code,aws console上,由used01subnet1改为used01subnet1-console。AWS中subnet的名字由used01subnet1改为used01subnet1-test。此时terraform.tfstate中仍然是used01subnet1。可见,“三方”不一致,apply后,以code中的状态为准。本案例中使用aws来测试。

2023-10-04 00:09:30 100

原创 vault kv创建使用方法

本文主要介绍使用approle的Authentication方式,认证secre kv,及注意事项。

2023-05-17 20:58:43 198

原创 阿里ACK容器pod日志收集及规划

阿里云中自带的日志收集插件是logtail,但和fluentd的安装配置上都类似的,具体的差异,可点击此处参考别人的文章。Logtail的部署方式有DaemonSet方式和Sidecar方式,由于sidecar耗费系统资源,实际日志量没有达到一定层级,此处采用DaemonSet的方式部署。需要收集的是Java spring boot日志,应用场景是有多个项目,每个项目有dev、sit、prod三个环境都需要收集日志。每个项目的每个环境放到k8s中一个单独的namespace下。Java微服务日志配置文件在

2023-04-11 11:14:31 649

原创 k8s中通过ingress暴露多端口deployment

项目中有一个notify微服务,业务逻辑上,需要在web界面上操作发送模板(微服务)、和推送(websocket),因此需要将后端的微服务和websocket同时对外暴露,前端web界面操作时需要走外网,同时实现微服务内部之间和notify访问,仍然走内网。

2023-03-13 18:20:34 1472

原创 Django channel问题汇总

django CHANEL中遇到的一些问题及解决方法

2023-02-02 18:10:53 421 2

原创 常用Dockerfile镜像

Dockerfile

2022-12-23 14:47:58 252

原创 k8s容器内恢复nacos的mysql数据

mysql ibd frm

2022-12-17 16:35:37 374

原创 关于k8s pv存储卷NAS和块存储选择

k8s pv pvc NAS EBS 块设备

2022-11-11 15:52:06 1214

原创 制作jdk tdengine client的dockerfile及常见问题

tdengine tdengine client

2022-11-03 15:58:36 476 1

原创 Ali Ingres Controller安装及路由配置浅析

本文主要讲述阿里云ACK上安装ingress controller,对外网、内网的slb或者同时对内对外的配置详情及注意事项。

2022-10-22 01:27:51 834

原创 Maven之nexus相关配置及Jar包实现CICD

maven nexus jenkins cicd

2022-09-18 17:25:12 539

原创 ACK部署Nacos集群

ACK安装Nacos集群 storageclass 数据持久化

2022-07-21 10:23:31 1319

原创 Pulumi对比terraform管理cloud公有云总结

手动更改资源时,pulumi和terraform的处理方式不大相同,要比terraform简单,由上述例子可知,当实际Azure云资源手动改变,后续通过Pulumi再来管理,执行pulumi apply时,只要不报错,都可以忽略先前手动对云资源的改动。当然如果知道具体手动改了什么,pulumi代码手动同步改动后apply更好;而terraform需要时刻保持实际资源、state file、code三方一致才不会报错。原则上,pulumi不需要手动更改state file,

2022-01-26 15:49:36 717 1

原创 Azure安装AKS步骤及注意事项

Open Service Mesh AKS add-onAKS preview features are available on a self-service, opt-in basis. Previews are provided “as is” and “as available,” and they’re excluded from the service-level agreements and limited warranty. AKS previews are partially cover

2022-01-14 00:15:47 779

原创 k8s中通过Jenkins蓝绿/灰度发布微服务

1. jenkinsfile配置注意事项微服务注册中心采用Eureka,部署后一般不会改动,直接手动部署,不放在cicd中;cicd只发布各个微服务的deployment;service/ingress也不经常改动,直接在阿里ACK控制台中手动安装,或者单独部署Jenkins item发布;构建镜像的tag通过环境变量BUILD_NUMBER来命名;同时yaml中定义两个变量,镜像tag同理通过BUILD_NUMBER,yaml中的副本数replicas的值,通过parameter获取,传递进来;

2021-05-19 11:39:29 2747

原创 Grafana之telegram报警配置

1. 创建tg bot机器人打开tg,搜索@BotFather,创建新机器人,如下图所示如果不知道chat id 通过向 @userinfobot 发送任何消息获取chat id,如下图机器人创建好之后,如果需要群组报警,把机器人添加到对应报警群组即可,bot会发报警信息到该群组2. Grafana配置Alert-ing->Notification channels中添加 报警媒介,如下图所示配置详解:添加tg中获取到的chat id和token分别到下图的所示位置,报警

2021-04-22 12:25:55 4033

原创 k8s dashboard部署及所遇问题

点击此处dashboard github 查看官方文件1. 使用以下命令暴露kubectl port-forward --namespace kubernetes-dashboard --address 0.0.0.0 service/kubernetes-dashboard 4432. 使用以下(master节点ip)URL登录https://10.70.128.50 #根据自己实际的ip来登录查看3. 使用以下命令获取tokenkubectl describe secret/kubernet

2021-04-13 23:28:03 173

原创 k8s安装配置ingress traefik

1. traefik部署yaml文件见本GitHubkubectl apply -f traefik-crd.yamlkubectl apply -f crd.yamlkubectl apply -f rbac.yaml -n kube-systemkubectl apply -f config.yaml -n kube-systemkubectl apply -f deploy.yaml -n kube-systemkubectl apply -f dashboard-route.yaml

2021-04-13 23:15:17 542 2

原创 k8s运维 pod、node、namespace、pv处于terminating的原因及处理方法

1. 概述node、pod、ns、pv由于一些原因在生产中处于terminating的状态,常规方法无法删除,一下总结了一些原因以及删除方法2. node处于Terminating状态原因及处理方法node节点不可达的情况下,kubectl delete po XXX 仅仅是控制组件标记删除,由于节点不可达,不能通过kubelet通知API该容器已终止,所以该节点未从API收到删除的消息,因此POD一直处于Terminating状态。可通过以下举例方式强制删除:kubectl delete pod/

2021-04-13 23:00:08 3078 2

原创 生产中mysql常用命令

1. 添加root用户并赋予权限 use mysql; create user 'root'@'%' identified by '123456'; grant all on *.* to root@'%' identified by '123456';2. mysql查看当前所有数据库大小select table_schema, concat(truncate(sum(data_length)/1024/1024,2),' mb') as data_size,concat(truncate(s

2021-04-13 22:40:20 81

原创 aws、自建mysql修改默认时区

1. mysql 数据库 修改默认时区1.1 自建mysqla. 修改当前会话时区,临时生效,退出msql后 time_zone 恢复成修改前的值set time_zone = '+8:00';修改 /etc/mysql/my.cnfb. 修改全局会话时区mysql> set global time_zone = '+8:00';mysql> set time_zone = '+8:00';mysql> flush privileges;c. 通过修改配置文件(my.

2021-04-13 22:26:04 363

原创 docker安装prometheus/grafana/alertmanager、配置telegram报警

1. 注意事项prometheus、alertmanager默认使用utc时区,比cst慢了8小时,docker运行时使用 -v /etc/localtime:/etc/localtime 或者 ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime的方式只能改变容器的时间,prom和alertmanager web界面中显示的时间是代码中定义的,只有修改代码中对应的时区才能修改报警时web界面显示的时间服务器系统的时区不一致可能导致alertm

2021-04-04 17:13:04 3522

原创 living直播流媒体服务器汇总

1. 搭建所需基础原理介绍主播端捕捉音频和视频后,进行H.264的视频编码和AAC的音频编码,再将编码后的数据整合成一个音视频包,然后通过rmtp推到流服务器,直播端用hls或者flv协议方式拉流。hls延迟较为明显,要十几秒以上,主要是以下延迟服务器端的编码器和流分割器生成TS文件的时间客户端下载TS文件的时间,而通常要求下载完两个TS媒体文件客户端解码并播放时间2. 流服务选择测试2.1. github开源 LiveGo稳定性不好,直播延时大概17s,关键问题是服务经常挂掉,直接

2021-03-05 15:54:22 886

原创 docker安装gitlab、迁移和升级

公司之前gitlab长时间之后经常宕机假死,版本较旧,决定迁移并升级到新版本。新版本为gitlab-ee:13.1.0-ee.0,采用docker安装,之前版本为10.1.01. gitlab数据备份gitlab-rake gitlab:backup:create使用以上命令会自动备份到 /var/opt/gitlab/backups目录下面,然后拷贝到新的gitlab服务器上,这里因为备份文件比较大,将新的server上面的/data目录通过nfs挂载到旧的/var/opt/gitlab/backu

2021-03-04 16:11:22 1486 2

原创 Jenkins构建时H5代码时使安装依赖为可选

导语h5代码发布时,需要编译,但安装依赖这一步比较耗时,并不是每次都需要安装,但开发若更新插件,则需要重新安装依赖;因此pipeline里面使npm install这一步设置为可选,需要时再更新变得十分有必要。同理,以下pipeline代码同样适用于Java项目的 mvn install 这一步。jenkins Declarative Pipeline代码如下所示,第二步下载依赖这一步加了一个条件判断when,从Jenkins构建时选择yes或者no来确认是否需要执行安装依赖这一步,如下图:另外

2021-01-22 16:17:12 406

原创 Filebeat之多行匹配模式理解记忆方式

1. 概述官方文档关于多方匹配英文比较绕,这里翻译成中文,总结后便于记忆,点击此处查看官方原文1.1 翻译及记忆方式multiline.pattern: '^b #匹配以“Test”开始的行multiline.negate: true | falsemultiline.match: after | before. negate false: 双重否定为肯定–匹配pattern;true:否定,不匹配pattern;. negate 中匹配与否作 主语,理解这点就好记忆了;.

2021-01-15 16:24:22 2611

原创 Jenkins安装RBAS插件、创建用户并授权

本文讲解给开发创建用户,并分配其对应代码的项目权限

2020-11-11 11:02:30 1845

原创 k8s中手动创建User并认证、授权供jenkins使用

1. 手动创建原因kubeadmin安装的k8s,用户家目录中的 .kube/config 里面保存了客户端访问API Server的密钥相关信息,可以直接copy,二进制安装的不存在,需要手动生成包含useraccount的kubeconfig,k8s版本1.18,步骤如下:1.1. 创建注意事项创建useraccount:此处创建的是全局性的用户账户,只是通过认证Authentication,还没有权限添加集群资源,需要为用户kubernetes进一步添加授权。执行如下脚本生成user为kuber

2020-11-10 15:55:18 1972

原创 使用Declarative Pipeline多分支选择发布JS代码

3. Jenkinsfile---DeclarativePipeline,选择使用声明式而不是脚本式,声明式更简单直观,流程化,因为需要选择发布到的分支,可以使用声明式pipeline中的when{},但要分成两个stage,显得臃肿,所以此处使用groovy的if/else if 来实现pipeline { agent any parameters { choice choices: ['uat', 'release'], description: '请...

2020-10-10 16:02:20 393 2

原创 传统PHP项目迁移到k8s上

# 传统PHP项目迁移到k8s上标签(空格分隔): PHP NGINX k8s dockerfile---## 1. 迁移前的准备多个PHP项目,各个项目框架相同,lnmp方式。迁移到nginx可以实现快速扩容,不通项目使用同一套k8s而不需要新建太多虚拟机,节省了成本。前期只讲无状态应用迁移到容器中,有状态应用如mysql、redis、rabbitmq仍使用之前的,因为目前项目全都是放在云平台,只需要将k8s部署到之前相同的网段,既可以实现平滑无缝迁移。传统项目中,nginx和PHP

2020-09-14 16:52:26 2729

原创 前端Java通过Nginx访问ElasticSearch集群报错之解决办法

需求:公司目前使用Haproxy反代ES,Java前端请求正常,但出现过数次ES Master挂掉不转移故障的情况,公司领导决定用Nginx替换Haproxy作为替代。问题:换成Nginx之后,用curl -XGET'http://esabc.com:9231',来测试,Nginx能有效负载均衡,以及失效转移,但生产环境迁移之,Java的模块org.elasticsearch向后请求出现:4...

2019-05-03 22:33:06 812 2

原创 Vim自动补齐Python-编译安装YouCompleteMe

环境:Centos7+vim8+Python2.7说明:其中Python2.7为系统自带,本人用pyenv安装了Python3.6.4,切换到3.6的环境之后,但在最终安装YCM时,始终出现报错:PyThreadState_Get: no current thread。经查询是动态编译库lib的问题,试了网上搜寻的多种方法,但始终没有解决,最终还是选择了2.7的版本来编译YCM,希望用Python...

2018-04-30 17:38:46 2909

Python Linux系统管理与自动化运维 赖明星

Python Linux系统管理与自动化运维 赖明星,带书签,完整版

2018-07-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除