Kubernetes部署renren-fast开源项目
renren-fast是一个开源的前后端分离项目,前端使用vue框架,后端采用springboot。在刚接触完Kubernetes后,使用Kubernetes部署renren-fast项目练练手。
获取renren-fast#获取后端git clone https://git.oschina.net/renrenio/renren-fast.git#获取前端git clone https://github.com/daxiongYang/renren-fast-vue.git
部署后端修改mysql配置修改application-dev.yml的mysql配置项,我主要修改了以下几项,此处headless-mysql是我的无头服务的名称,renren-fast是库名
url: jdbc:mysql://headless-mysql:3306/renren-fast?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghaiusername: rootpassword: 123456
修改re ...
Kuboard部署
Kuboard是一款免费的Kubernetes图形化管理工具
安装Kuboardwget https://kuboard.cn/install-script/kuboard.yamlwget https://addons.kuboard.cn/metrics-server/0.3.6/metrics-server.yamlkubectl apply -f kuboard.yamlkubectl apply -f metrics-server.yaml
获取Tokenecho $(kubectl -n kube-system get secret $(kubectl -n kube-system get secret | grep kuboard-user | awk '{print $1}') -o go-template='{{.data.token}}' | base64 -d)
访问通过任意节点 IP:32567 即可访问
JIRA部署
JIRA广泛应用于任务跟踪、需求分析、流程审批、项目跟踪和敏捷管理领域。
安装jdkyum install -y java-1.8.0-openjdk-*
安装mariadbyum -y install mariadb-serverservice mariadb start
创建数据库mysqlcreate database jira default character set utf8 collate utf8_bin;use mysql;UPDATE mysql.user SET password = PASSWORD('123456') WHERE user = 'root';update user set host='%' where user='root' and host='127.0.0.1';FLUSH PRIVILEGES;
下载jira和破解jarwget https://downloads.atlassian.com/software/jira/down ...
Kubernetes部署有状态服务-Redis
安装nfs我这边就选择k8s-master作为nfs存储了
yum install -y nfs-utils#在 /etc/exports 添加/nfs/volumes *(async,insecure,no_root_squash,no_subtree_check,rw)# 创建nfs挂载目录mkdir -p /nfs/volumes#启动服务systemctl start rpcbind & systemctl enable rpcbindsystemctl start nfs-server & systemctl enable nfs-server#查看nfs状态showmount -e k8s-master#创建存储cd /nfs/volumesmkdir data_redismkdir conf_redis #需要准备一份redis配置文件,配置文件里面相关的存储数据、pid、log等我是放在容器的/data下的
创建PVapiVersion: v1kind: PersistentVolumemetadata: name: pv-redisspec: ...
Jenkins启动tomcat后,随着job结束,tomcat进程也结束
在使用jenkins构建项目时,执行shell脚本启动tomcat,但是随着jenkins job的结束,tomcat进程也会被杀死
解决方法在shell脚本最上面加上 export BUILD_ID=DONTKILLME如果你是pipeline job,那么请使用 JENKINS_NODE_COOKIE 代替 BUILD_ID
补充在使用jenkins构建另一个项目,在日志中找到这个报错,最后发现是由于我使用nohup启动项目大概需要40秒,但是启动项目时最后一个stage,可能在项目还没启动成功,jenkins已经结束了这次构建,最后我在shell脚本末尾加了sleep 60,测试了确实时这个原因导致的报错,而且也可以解决这个问题。
Zabbix告警后远程执行shell命令
有的时候我们的服务意外宕掉,需要在报警后自动尝试重新启动,zabbix可以在告警后执行shell命令实现重新启动服务
增加远程执行命令配置#vim /etc/zabbix/zabbix_agentd.confEnableRemoteCommands=1 #允许远程执行命令LogRemoteCommands=1 #开启远程执行命令的日志
配置zabbix用户sudo权限visudo
zabbix动作配置
Nginx做反向代理时浏览器加载大文件失败ERR_CONTENT_LENGTH_MISMATCH
Nginx做后端代理,后端是tomcat,浏览器请求项目时加载大文件失败查看nginx日志日志中会提示具体的大文件
解决方法ps -ef | grep nginx 查看 work process 的nginx进程nginx会对大文件进行缓存,存放在proxy_temp目录下,可能由于权限问题,导致无法访问在配置文件中加入 user root; 重启nginx即可。
Tomcat运行时出现Invalid-character-found-in-the-HTTP-protocol
这段时间tomcat日志中出现Invalid character found in the HTTP protocol,还有Invalid character found in method name.HTTP method names must be tokens下面是具体报错信息,试了很久,找到了原因
Note: further occurrences of HTTP request parsing errors will be logged at DEBUG level. java.lang.IllegalArgumentException: Invalid character found in the HTTP protocol [HTTP/1.10x0aHost:] at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:560) at org.apache.coyote.http11.Http ...
解决logrotate日志切割后继续输出在原日志的问题
如果线上使用logrotate切割日志会出现切割后,新的日志输出还是会写在老的日志
解决方法网上查下来有两种解决方法,两种方式我都尝试了切割nginx日志,但是只成功了第一种(1)通过copytruncate参数copytruncate参数的原理:将之前的日志内容拷贝走作为备份,接着清空当前文件。这个方法会存在丢失部分日志数据的可能
/app/nginx/logs/access.log { daily dateext rotate 14 compress delaycompress missingok notifempty copytruncate create 0664 root root}
(2)给rsyslog发信号这个方法我试过了,但是没有成功,新的日志还是输出在老的日志文件中
/app/nginx/logs/access.log { daily dateext rotate 14 ...
CentOS7搭建Harbor私有仓库
在生产环境中,我们肯定需要使用docker的私有仓库,下面介绍HarBor私有仓库的搭建
安装docker#更新yumyum update#安装需要的软件包yum install -y yum-utils device-mapper-persistent-data 1vm2#设置yum源yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo#安装dockeryum install docker-ce-17.12.1.ce#设置开机自启,启动dockersystemctl enable docker && systemctl start docker
安装docker-compose#下载curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/ ...