记一次k8s服务504 timeout】的更多相关文章

线上服务做集群扩容,调整了节点机器配置,在升级完毕之后,发现某些时候请求较慢,或者直接504 timeout 超时,必现情况,点击几次都是,且并没有代表性. 1.检查istio 日志是否有504 的日志,并查看在哪台node 机器上,看下那台节点机器是否有问题. 2.kubectl get nodes 查看机器节点是否都正常工作. 3.外部代理了一层nginx,查看nginx 错误日志.         关键点,查看nginx 的进程是否都正常,我们的问题就是nginx 修改了配置,执行了rel…
nginx ingress 报错 504 timeout,是由于反向代理超时造成的,反向代理默认超时时间60s 官方文档 配置片段: apiVersion: extensions/v1beta1 kind: Ingress metadata: annotations: nginx.ingress.kubernetes.io/proxy-connect-timeout: "300" nginx.ingress.kubernetes.io/proxy-read-timeout: "…
Overview 作为目前事实上的容器编排系统标准,K8s 无疑是现代应用的基石,很多同学入门可能直接就被卡到第一关,从哪去弄个 K8s 的环境 自己搭吧,要求的硬件资源太高,基本上搭建一个 K8s 集群就劝退了很多的人,因此这里最简单的方式就是直接使用 Windows or Mac 上的 Docker Desktop 内置的 K8s 来学习 然而,由于某些网络原因,如果你直接在 Dokcer 中启用这个功能的话,基本上是不可能成功开启的,因此,本篇文章是基于 k8s-for-docker-de…
Gitlab runner 快速搭建CICD pipeline 背景 日常开发中,相信大家已经做了很多的自动化运维环境,用的最多的想必就是利用Jenkins实现代码提交到自动化测试再到自动化打包,部署全流水线Jenkins在devops担任了很重要的角色,但是另一方面相信目前大家的代码版本管理大多都是交给git来管理,在企业私有部署的大背景下,Gitlab由于丰富的插件和细粒度更高的权限控制被大家所采用.如果只是把Gitlab作为代码版本管理,那就大大浪费他的附加价值,在Gitlab中自带CIC…
作者: Ram Rai,性能.可扩展性以及软件架构的爱好者 原文链接: https://medium.com/better-programming/debug-your-kubernetes-service-in-5-easy-steps-1457974f024c 在Kubernetes中,服务是一个核心概念.在本文中,将介绍如何调试K8S服务,这些服务是由多个Pod组成的工作负载的抽象接口(主机+端口). 在我们深入探索debug方法之前,我们先简单回顾一下网络,这是Kubernetes服务的…
标题 : 1.利用consul实现k8s服务自动发现 目录 : 微服务架构设计 序号 : 1 ] } } ] } } ​ - consul自身支持ACL,但目前,Helm图表不支持其中一些功能,需要额外的手动配置, 有关详细信息可参阅:https://www.consul.io/docs/platform/k8s/helm.html - 我们使用basic-auth作了授权,当用户访问consul-ui时需要提供用户名和密码 ​ ```shell yum -y install httpd ech…
Prometheus的服务发现在解决什么问题? 被监控的目标(target)是整个监控体系中重要组成部分,传统监控系统zabbix通过 网络发现的机制自动创建主机到zabbix-server,进而快速地对目标进行监控.同样在Prometheus监控中存在一个叫服务发现的机制,在k8s容器环境中由于集群内实例网络地址是动态的,我们不可能每次创建或修改实例都将实例IP写入Prometheus的target中,借助服务发现我们可以快速的将集群内的资源注册到Prometheus-server中. Pro…
原文 http://m635674608.iteye.com/blog/2360095 kubernetes中如何发现服务 如何发现pod提供的服务 如何使用kube-dns发现服务   service:服务,是一个虚拟概念,逻辑上代理后端pod.众所周知,pod生命周期短,状态不稳定,pod异常后新生成的pod ip会发生变化,之前pod的访问方式均不可达.通过service对pod做代理,service有固定的ip和port,ip:port组合自动关联后端pod,即使pod发生改变,kube…
1.ambassador是datawire开源的服务网关,很好的支持kubernetes.具体详细介绍参考官网:https://www.getambassador.io/about/why-ambassador 本节主要讲述整个部署过程和简单实用,具体详细的资料抢参考官网. 2.部署 本次主要介绍将ambassador部署到自己的kubernetes集群里面,根据官网介绍部署方式有几种: 1)yaml部署,即定义yaml文件,使用kubectl 直接部署 2) helm部署,如果用helm部署则…
背景 随着小步快跑.快速迭代的开发模式被越来越多的互联网企业认同和采用,应用的变更.升级频率变得越来越频繁.为了应对不同的升级需求,保证升级过程平稳顺利地进行,诞生了一系列的部署发布模式. 停机发布 - 把老版的应用实例完全停止,再发布新的版本.这种发布模式主要为了解决新老版本互不兼容.无法共存的问题,缺点是一段时间内服务完全不可用. 蓝绿发布 - 在线上同时部署相同数量的新老版本应用实例.待新版本测试通过后,将流量一次性地切到新的服务实例上来.这种发布模式解决了停机发布中存在的服务完全不可用问…
事件起因 昨天有同事找我到,说他搭建的 XXL-JOB 任务调度系统不能工作了,调用总是出错(服务端返回 500)希望我能帮忙处理一下,不过说实话我也没有搭建过 XXL-JOB 的经验,但是既然同事请求了,就只能硬着头皮帮忙一起看下,解决的过程还算比较顺利,但是发现网上这块的资料很少,所以打算把解决过程用博客记录下来,希望可以帮助到遇到同样问题的同学们 解决过程 同事跟我说起初怀疑是 Shiro 拦截了定时任务的请求,但是他注释了 Shiro 相关的代码后,XXL-JOB 的请求还是无法成功(请…
解决步骤: 1. 利用kubectl 修改 k8s 配置, 设置 external** = Local 2. 在服务发现与负载均衡界面,选择对应的LB 服务, 设置服务LB 的 external** = Local…
前言 好久没有写博客了,本文主要是对网上文章的总结篇,主要是将安装和运行代码做了一次真机实验,亲测可用.文章内包含的脚本和代码,多来自于网络,也有我自己的调整和配置,文章末尾对参考的文献做了列举,方便大家参考. 过程很简单,一路next往下看和操作即可,文章不对脚本和代码做原理解释,某些注意点加了红色标注,部分脚本有注释,可以自行参考,以后有机会可以视频讲解. 核心步骤 因为是next的方式,所以本章节主要是操作步骤,步骤中涉及到的代码或者脚本,可以在下文中找到,比如:附录代码一.附录代码二等等…
关键词:k8s.jvm.高可用 1.背景 最近有运维反馈某个微服务频繁重启,客户映像特别不好,需要我们尽快看一下. 听他说完我立马到监控平台去看这个服务的运行情况,确实重启了很多次.对于技术人员来说,这既是压力也是动力,大多数时候我们都是沉浸在单调的业务开发中,对自我的提升有限,久而久之可能会陷入一种舒适区,遇到这种救火案例一时间会有点无所适从,但是没关系,毕竟...... "我只是收了火,但没有熄炉",借用电影中的一句话表达一下此时的心情. 2.初看日志 我当即就看这个服务的运行日志…
前言 一个项目在经历开发.测试.上线后,当时的用户规模还比较小,所以刚刚上线的项目一般会表现稳定.但是随着时间的推移,用户数量的增加,qps的增加等因素会造成项目慢慢表现出网页半天无响应的状况.在之前的工作中也恰巧遇到这个过程,当时对项目进行了很多性能测试和调优,今天借助博客园,将这次性能调优的过程进行整理后写成随笔,希望给广大Java后端开发的工程师提供帮助,也借此机会,对性能调优进行一些总结工作,达到备忘的目的. 测试工具与环境 性能测试工具 Loadrunner:一种预测系统行为和性能的负…
之前在做项目的过程中,项目完成后在linux服务器上做性能测试,当服务跑起来的时候发现cpu使用率很奇怪,java应用把单个cpu跑满了,其他cpu利用率0%. 刚开始遇到这问题的时候我第一时间反应使用java 自带的jconsole工具去分析,具体远程jconsole工具使用参考我另外一篇博客,分析结果后只发现创建了很多的es client对象,其他完全看不出任何异常. 我就把该部分代码给屏蔽掉,再启动服务的发现问题还是存在,那说明不是es 的client对象把cpu消耗了. 于是我又想到使用…
        公司项目重构,把dubbo版本从2.5.8升级为2.6.2.升级后在本地运行一点问题都没有:可是通过公司自研的发布系统将项目发布到测试环境的linux服务器下面后,出现了dubbo服务未注册的现象.刚出现这问题,大家都一脸懵逼,毕竟在本地跑起来非常顺畅.但问题总是要解决的,不可能因为dubbo服务注册异常就不升级dubbo版本.因此记录下这个问题是怎么解决的,便于后续查阅. 一.问题描述     dubbo版本从2.5.8升级到2.6.2后,在linux服务器上运行项目.查询du…
虽然很简单,但是还是想记录一下: 准备一台云主机并连接到云主机上 因为是 springboot 项目,采用了前后端分离部署.所以就没有使用 Tomcat.为应用程序创建文件夹. 添加启动脚本 start.sh #!/bin/bash rm nohup.out kill -9 `ps -ef|grep app-|awk '{print $2}'` nohup java -jar -Ddev_meta=http://localhost:8801/ -Denv=DEV -Didc=app -Dfile…
最近在研究windows service和quartz.net,所以迅速在园子大神那里扒了一个demo,运行,安装一切顺利. 但在在App.config配置中增加了数据库连接字符串配置后,服务安装后无法启动.把这个配置去掉,连接串直接写入代码则成功启动成功.接着试了几次都是无功而返.找了各种原因:更换.net framework版本.更换服务器..... <?xml version="1.0" encoding="utf-8"?> <configu…
1.切换root .关闭centos自带的防火墙 # systemctl disable firewalld # systemctl stop firewalld .安装etcd和kubernetes软件(会自动安装docker) # yum install -y etcd kubernetes 2.修改两处配置 Docker配置文件/etc/sysconfig/docker, OPTIONS=’–selinux-enabled=false –insecure-registry gcr.io’…
一.前言 之前在分析WCS系统的过程中,也赶上要开发其中的一个模块,用于和AGV系统对接完成一些取货.配盘等任务:在这里将这次模块开发的全过程记录一下,以便自己以后开发时能够更加快速的明白流程. 二.需求 当时的需求是在WMS的系统之上创建一个独立的servlet来专门负责AGV的服务模块以及客户模块:其流程大概是我方AGV服务端在启动后定期从数据库读取来自MES系统推送的组盘信息,然后根据业务调出其中可以下发的任务,通过AGV服务的接口将请求下发给AGV服务:AGV服务完成任务后会调用我方提供…
作者简介 王海龙,Rancher中国社区技术经理,负责Rancher中国技术社区的维护和运营.拥有7年的云计算领域经验,经历了OpenStack到Kubernetes的技术变革,无论底层操作系统Linux,还是虚拟化KVM或是Docker容器技术都有丰富的运维和实践经验. 前言 最近,总能在社区里收到关于如何修改 kube-api.kubelet 等参数的问题,针对如何在 Rancher 中修改 Kubernetes 服务参数(kube-apiserver.kube-controller-man…
作者 孔令飞,腾讯云资深工程师,拥有大规模 Kubernetes 集群.微服务的研发和架构经验,目前专注于云原生混合云领域的基础架构开发. 朱翔,腾讯云容器服务高级产品经理,目前负责云原生混合云产品方案设计工作. 前言 企业数字化转型已经成为企业的核心战略.以云计算为核心的新一代 IT 技术,成为了企业数字化转型的重要支撑,上云成为企业数字化转型的必由之路.企业在上云过程中由于数据安全隐私.资源利旧.业务容灾等原因,在上云时通常会采用混合云的架构,混合云成为企业上云新常态. 近几年,随着云原生技…
对于Kubernetes集群来说,一个service可能有多个pod,滚动升级(Rolling update)就是指每次更新部分Pod,而不是在同一时刻将该Service下面的所有Pod shutdown,然后去更新(例如replace --force方案),逐个更新可以避免将业务中断 1. 先查询目前发布的服务版本,可以看到my-dep使用的镜像版本是nginx 2.把Nginx升级到目前最新的1.23.0版本 在yaml文件中添加标粗字段,其中images镜像从Nginx替换成centos-…
报错: 分析 nginx和uwsgi整合时有三个参数可以用于设置超时时间: 1.uwsgi_connect_timeout: 默认60秒,与uwsgi-server连接的超时时间,该值不能超过75秒.若在超时时间内未能成功连接则断开连接尝试 2.uwsgi_read_timeout: 默认60秒,nginx等待uwsgi进程发送响应数据的超时时间.若有需要长时间运行才能产生输出结果的uwsgi进程则需将此参数调高.若在错误日志文件中看到 upstream timed out需将此参数调高.若超过…
gcr.io/google_containers/pause-amd64:3.0这个容器镜像国内不能下载容器一直创建中是这个原因 在kubelet.service中配置 systemctl daemon-reload systemctl restart kubelet 重新部署应用发现一切搞定…
我们用一个系列来讲解从需求到上线.从代码到k8s部署.从日志到监控等各个方面的微服务完整实践. 整个项目使用了go-zero开发的微服务,基本包含了go-zero以及相关go-zero作者开发的一些中间件,所用到的技术栈基本是go-zero项目组的自研组件,基本是go-zero全家桶了. 实战项目地址:https://github.com/Mikaelemmmm/go-zero-looklook 1.概述 上一节,我们已经把gitlab.jenkins.harbor.k8s都已经搭建好了,这一节…
十几年前就有一些公司开始践行服务拆分以及SOA,六年前有了微服务的概念,于是大家开始思考SOA和微服务的关系和区别.最近三年Spring Cloud的大火把微服务的实践推到了高潮,而近两年K8S在容器编排的地位确定之后大家又开始实践起以K8S为核心的云原生思想和微服务的结合如何去落地,2018年又多出一个ServiceMesh服务网格的概念,大家又在思考如何引入落地ServiceMesh,ServiceMesh和K8S以及Spring Cloud的关系如何等等. 确实有点乱了,这一波又一波的热潮…
这篇文章记录了我试验将一个基于python的服务docker化并k8s部署的过程. 服务介绍Docker化设计业务代码改造创建docker镜像K8S部署设计yaml文件运行服务介绍这是一个用 python 实现的程序,tornado 作为 web 服务器,mongodb 作为存储,redis 作为缓存. Docker化设计为了方便,使用docker hub作为镜像仓库,而不是自己搭建私有库.业务代码直接打包进docker image,如果修改业务代码,需要重新生成docker image.业务代…
集群内服务 一般 pod 都是根据 service 资源来进行集群内的暴露,因为 k8s 在 pod 启动前就已经给调度节点上的 pod 分配好 ip 地址了,因此我们并不能提前知道提供服务的 pod 的 ip 地址.那么 service 服务提供的功能就是,使用者根本无需关心后端提供服务 pod 的数量,以及各自对应的 ip 地址. 服务资源会被 k8s 分配一个 cluster-ip 集群 ip,只能在集群内部可以被访问.而在集群内 k8s 如何配置服务网络的,可以参考之前的网络服务,实际上…