- 博客(60)
- 资源 (2)
- 收藏
- 关注
原创 ingress-nginx-controller获取客户端真实ip
线上部署的一个应用的pod,访问时采用的是ingress的方式,同时为了ingress的高可用,运行了3个ingress-controller节点,在ingress-controller前面再挂了一个F5负载均衡器,所有访问ingress访问的域名,域名解析地址都为F5的vip地址,再由F5负载均衡到一个ingress-controller上面。 数据流量流向: ...
2021-01-19 20:52:44
6816
1
原创 ingress-nginx-controller 504 gateway time-out 问题
问题背景: 某应用的后台,通过后面界面上传一个excel文件时,上传到半截是,后面界面显示 504 gateway time-out错误。问题调查: 经了解,后台应用界面为使用ingress方式访问,504错误界面显示的nginx版本信息和ingress-nginx-controller(版本0.23.0)使用的nginx版本...
2021-01-19 20:47:51
14006
原创 高可用kubernetes集群查看kube-scheduler和kube-controller-manager哪个是leader节点
字不重要,看图
2021-01-19 20:40:30
2431
原创 ansible的shell模板使用awk包含引号的问题
在使用ansible的shell模块,执行一个清理k8s集群容器日志的命令时,遭遇如下错误,Extraneous options or arguments: 在去掉awk后面的命令时,发现执行正常,定位问题点在awk这一段,后经测试,在于awk内的双引号问题,需要转义,改成如下正常执行...
2021-01-19 20:34:36
6537
原创 pod卡住terminating排查记录
背景线上某环境,遇到pod删除时一直卡在terminating的问题,之前通过kubectl delete pod --force --grace-period=0强制删除过2次,但问题反复多次出现,需要调查下详细原因。kubernetes版本为v1.16.6,docker版本18.09.9,containerd版本v1.2.6.排查调查terminating的pod所在节点的message日志,发现kubelet对这个状态的pod提示“prober.go:103] No ref for cont
2020-10-13 23:31:41
4565
1
原创 k8s集群唯独一个节点nodeport不通问题调查
<h1 id="现象">现象</h1><p>集群3个节点,通过istio-ingressgateway暴露了一个nodeport类型的31400端口。对于nodeport类型的端口,理论上可以通过任
2020-10-01 20:39:46
4119
原创 内核内存碎片导致容器创建失败(runc_page allocation failure)排查
背景线上某环境,创建pod时,pod在调度运行的节点一直无法running,describe该pod信息,有如下提示系统为centos7.7,内核版本3.10.0-1062排查查看错误节点信息的message日志,发现docker的报错kuberuntime_manager.go:710] createPodSandbox for pod "media-ai-engine-test-6d75b6f4c6-7jtps_test-media(e1849041-4521-4864-bbbe-d7
2020-09-08 22:30:50
2525
原创 kubeadm创建k8s集群一直失败排查
背景某环境,使用kubeadm创建3个master节点的高可用集群,但是一直失败。10.197.145.25: exec "kubeadm join 10.197.145.24:6443 \\\n--node-name=10.197.145.25 --token=vbgvbq.8bmv408a1uj0io2m \\\n--control-plane --certificate-key=c6840dd68d6dc52f4e74ed244d551337f2b3c9ac7dc766cd574090a
2020-07-31 22:56:10
1409
原创 win10利用WSL2安装windows版kubernetes集群
前言Kubernetes成为事实上的云原生平台,用于在分布式环境中运行容器化服务和应用程序。尽管可以在在云环境(公有云,私有云或混合云)或裸机环境中部署Kubernetes,但有时仍然需要在本地部署和运行Kubernetes进行开发测试。Kubernetes最初被设计为在Linux环境中部署和使用。但是,大量用户是使用Windows OS作为其日常驱动程序,本文探讨利用windows10的WLS2功能,使用Kind或Minikube在本地运行Kubernetes集群。在安装windows版ku.
2020-06-19 18:42:46
4780
2
原创 win10利用WSL2安装docker的2种方式
前言windows10目前推出了WSL2,相对于WSL采用API转换的方式, WSL2 则完全不同,win10 开始内置了一个轻量级虚拟机,经过不断的优化,这个虚拟机实现了与 windows 的高度集成,实现了虚拟机的高性能运行,WSL2 便是运行在虚拟机上的一个完整的 linux 内核。因此WSL2给了在windows更接近原生linux的体验,同时wsl2 的开启速度有了非常明显的提升,几乎不需要再等待。本文探讨在win10专业版上利用WSL2安装docker的2种方式。操作实践1.开.
2020-06-17 22:08:07
9608
3
原创 nginx ingress controller配置默认SSL证书
故障现象线上某kubernetes集群环境,使用nginx-ingress-controller暴露了一个service,为一个API服务,其中在ingress对象中使用了TLS证书,使用浏览器输入ingress对应的域名访问这个API service,请求正常,但是某程序使用SDK调用此service,始终无法拿到结果。ingress的yaml文件类似如下排查 sdk调用ingress时nginx-ingress-controller的日志信息,发现有如下报错 2020/04/
2020-06-06 22:48:47
3487
原创 kubernetes pod内抓包,telnet检查网络连接的几种方式
背景在日常kubernetes的运维中,经常遇到pod的网络问题,如pod间网络不通,或者端口不通,更复杂的,需要在容器里面抓包分析才能定位。而kubertnets的场景,pod使用的镜像一般都是尽量精简,很多都是基于alpine基础镜像制作的,因而pod内没有ping,telnet,nc,curl命令,更别说tcpdump这种复杂的工具了。除了在容器或者镜像内直接安装这些工具这种最原始的法子,我们探讨下其他法子。实现kubectl debug插件方式项目地址 kubect debug),h
2020-06-05 22:10:28
4350
原创 ansible取出主机register变量中最长字符串
背景在用ansible撰写一个etcd恢复的playbook时,有一个操作是获取etcd启动时的"initial-cluster"启动参数,该参数在etcd集群不同节点不一致,需要取出etcd节点启动参数中最长的作为etcdctl snapshot restore的参数。[root@tke-init ansible]# cat etcd.hosts [etcd]10.0.32.7910.0.32.4110.0.32.97[snapshot]10.0.32.79 recovery...
2020-06-03 22:47:59
346
原创 kubernetes flannel pod CrashLoopBackoff解决
# 背景某环境客户部署了一个kubernetes集群,发现flannel的pod一直重启,始终处于CrashLoopBackOff状态。# 排查1. 对于始终CrashLoopBackOff的pod,一般是应用本身的问题,需要查看具体pod的日志,通过```kubectl logs -
2020-05-21 20:58:13
3172
原创 kube-controller-manager反复重启解决
背景某环境,kube-controller-manager反复重启,尝试重建kube-controller-manager的pod,但是过一会问题复现。如上图,kube-controller-manager反复重启了200多次了。排查1.通过kubectl logs -n kube-system kube-controller-manager-xxx查看kube-controller-manager日志,日志显示“failed to renew lease kube-system/kube-con
2020-05-19 20:47:56
9161
原创 强制删除kubernetes的ns
问题背景 部署istio测试环境,想重新部署istio-operator,在清理残留资源时,在使用kubectl delete ns istio-operator --grace-period=0 --force删除istio-operator这个namespace时,发现这个ns一直卡在Terminating状态。解决kubectl get ns is...
2020-04-17 12:21:31
1677
原创 kubernetes配置自定义域名记录
问题背景 客户业务pod运行在内网,无法访问外网,对于一些应用,需要访问企业微信,淘宝等外部api接口时,采用代理的方式,即配置pod要访问的外部域名解析为内部代理服务器的ip,如配置api.weixin.qq.com,pod请求访问此域名时,dns解析为内部代理服务器ip-10.xxx.xx.xx,即需要自定义域名解析,经调研,有如下方式:1.客户存在内网dns,且...
2019-09-28 14:47:02
2484
原创 ansible的shell模块使用cat命令--EOF结束文本输入问题
使用ansible写一个playbook,使用shell模块,在模块中使用cat命令输入一段文本,在使用EOF结束文本时,却没有达到预期效果,EOF本身也被当做了文本重定向到文件了。如上图为使用的playbook文件。如上图,在生成的文件中,EOF用来标记输入结束的文本,也被写入了文件中。问题解决: 使用shell模块的cmd参数,...
2019-05-26 20:10:49
4349
原创 Python selenium模块报错解决
在使用selenium的webdriver示例化Firefox和Chrome对象时,发现如下报错。如上图,实例Firefox对象,报错:selenium.common.exceptions.WebDriverException: Message: invalid argument: can't kill an exited process 如上图,实例化Chrome...
2019-01-22 22:19:23
4487
1
原创 redis密码破解(multiprocessing的Pool多进程模式)-join方法小坑
之前使用multiprocessing的分布式进程模式写了个redis的破解程序,性能不是很理想,相对于单进程模式性能反而有下降.于是想利用multiprocessing的多进程模式进行破解,初始代码如下:#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 19-1-3 下午7:32# @Site : ...
2019-01-09 22:47:11
1267
原创 redis密码破解(Python使用multiprocessing分布式进程)
前面redis密码破解都是在一台机器单进程运行的,于是想如果在多台机器分布式运行,速度会不会快点,用Python的multiprocessing模块的managers子模块写了个破解程序,代码如下: master端,代码如下:#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 18-...
2018-12-31 22:22:28
1087
原创 redis密码破解(python使用redis模块)
昨天用socket模块写了个破解redis密码的脚本,今天用Python redis模块在写了个,同一个密码文本,发现redis模块速度明显不如socket模块,代码如下:#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 18-12-27 下午9:20# @Site : # @File : ...
2018-12-28 20:07:29
2067
原创 redis密码破解(python使用socket模块)
偶尔看到一篇讲述redis未授权访问漏洞的,提到用hydra进行redis密码的破解。测试了下,发现安装的hydra竟然无法破解出密码,且速度很慢(hydra版本 v8.2-dev)。 如上图,用一个for循环生成个随机密码测试文件,将正确密码写入。如上图,hydra竟然没破解出密码,不知道是不是bug,而且一分钟才运行差不多10000次密码猜测。而redi...
2018-12-27 20:58:52
1606
1
原创 修改云主机快照方式为live snapshot
客户反馈虚拟机做快照时一直无法连接(后端存储使用的为ceph),远程测试发现做快照时无法ping通,vnc无法登录.如上图,在做快照期间,ping虚拟机的ip中间会出现"请求超时"如上图,快照期间,vnc也无法登录了.在虚拟机所在的计算节点,用watch -n1 "virsh list --all",发现虚拟机在快照期间的状态为shutoff.观...
2018-10-31 00:01:57
742
原创 虚拟机重启错误,libvirtError:internal error:process exited while connecting to monitor
客户云环境一台虚拟机,反馈重启不成功。经了解,客户环境使用的后端为ceph,故障虚拟机挂载一块云硬盘。 收集客户的nova-compute日志,发现报错如下: libvirtError:internal error:process exited while connecting to monitor如上图,日志显示云硬盘无法连接到ceph-mon,排查虚...
2018-10-28 23:46:49
12709
原创 rabbitmqadmin的配置文件问题
一个rabbitmq集群,通过rabbitmq-plugins enable rabbitmq_management启用了管理插件,下载了rabbitmqadmin命令文件,但是执行rabbitmqadmin list queues命令时报错: *** Access refused: /api/queues?columns=name,messages ...
2018-10-18 22:00:07
3471
原创 一次虚拟机热迁移失败处理,使用nova live-migration-force-complete强制暂停下虚拟机
客户反馈2台虚拟机热迁移失败,检查源计算节点的nova-compute日志,均发现live migration stuck xxx sec的错误信息。虚拟机热迁移的过程,在源节点和目标节点会有同步虚拟机内存的操作,查看stuck日志之前的输出,问题memory 基本0% remaining,问题应该在最后一刻同步内存。于是尝试使用nova live-migrat...
2018-10-02 22:12:03
4945
原创 一次centos7.3系统中病毒排查经历
一个环境,突然使用很卡顿,于是用top查看什么进程占用了资源,发现进程中有大量b开头的进程,基本确定系统是中病毒了。如上图,top显示大量b开头进程,进程号还不停的变。快速用lsof -p <PID>,查看一个病毒进程,结果如下lsof的输出来看,病毒进程程序体被删除了。尝试用rm去删除程序体也显示无文件。于是用ps命令查看进程情况,竟然发现无法列出...
2018-09-05 23:13:39
9159
1
原创 ceph pg卡在unclean和backfill_toofull
一个环境,很多osd处于nearfull状态,在给osd做reweight的时候,发现有2个pg一直卡在unclean和backfill_toofull状态。执行ceph health detail如上图,我们发现,卡住的一个pg 为2.689,执行ceph pg map 2.689,发现此pg up的三个osd为 32,153,66,而这三个osd中,osd.15...
2018-08-30 15:09:12
4321
原创 multipath路径残留导致虚拟机无法重启
客户反馈一台虚拟机重启后虚拟机状态显示为错误。检查云平台各个组件服务,未发现异常后,首先尝试重置虚拟机状态,然后硬重启看下 一段时间后,虚拟机状态仍然为error。检查虚拟机所在计算节点的nova-compute日志,发现如下错误日志显示,终止虚拟机的qemu-kvm进程时失败(Failed to terminate process 2216397),有资源占用未释放(device or reso...
2018-06-11 23:26:06
6699
原创 multipath配置错误导致的云平台虚拟机挂载云硬盘失败
客户反馈云平台商业存储类型的云硬盘无法挂载上(cinder通过FC协议对接),但是ceph类型云硬盘使用正常. 登录打开cinder的debug模式,在volume日志没有显示任何错误信息,日志显示cinder有删除映射关系的操作. 继续查看挂载虚拟机的所在计算节点的nova-compute日志,发现如下错误. Failed to execute command multipath...
2018-06-11 17:44:45
2950
原创 kubernetes v1.8.3安装coredns
coredns的部署yaml文件如下:apiVersion: v1kind: ServiceAccountmetadata: name: coredns namespace: kube-system labels: kubernetes.io/cluster-service: "true" addonmanager.kubernetes.i
2018-04-08 17:10:13
2313
1
原创 helm安装chart----percona-xtradb-cluster实践记录
chart来自kubernetes官方github地址 https://github.com/kubernetes/charts/tree/master/stable 1、修改values.yaml,镜像地址改为本地的镜像仓库,否则从公网拉取时间会很长;修改启用pv并用storageclass实现动态provison。提前建立的storageclass
2018-04-08 15:14:34
1721
转载 elasticsearch性能调优相关
转载自 https://blog.youkuaiyun.com/liukuan73/article/details/79261125http://nocf-www.elastic.co/guide/en/elasticsearch/reference/current/indices-create-index.htmlhttps://yq.aliyun.com/articles/38285http://www...
2018-03-27 15:37:15
214
原创 nova hypervisor-list无法执行,其他api均正常
平台中有一些计算节点下架,通过nova service-delete ID将其删除后,admin用户登录dashboard,提示"Can't get hareware usage",之后迅速退出登录,后台执行nova hypervisor-list命令后,无法执行成功,提示如下报错: ERROR (ClientException): Unexpected API Error
2018-03-20 15:33:06
2458
原创 /etc/sudoers配置错误导致的nova-api等异常
客户反馈dashboard上面 使用异常:问题一:第一次登陆系统后点击计算资源下的云主机,显示没数据,刷新后显示正常问题二:不定期出现的问题,点击安全组报“无法获取配额”,而且系统一直转圈,无法显示数据。关掉报错,重新刷新后正常显示数据问题三:点击虚机,然后弹出报错“无法获取云主机控制台”,关掉然后重新点击虚机后显示正常问题分析:1、 首
2018-03-03 20:27:24
718
原创 修改ssh默认端口导致的虚拟机resize失败
客户反馈虚拟机resize失败,登录虚拟机所在的计算节点,查看nova-compute日志,发现ssh有关的报错。1、获取resize失败的虚拟机的uuid 2、查看虚拟机所在的节点nova-compute日志,根据虚拟机uuid搜索,发现大量ssh报错根据报错内容,是resize过程中,虚拟机所在的节点ssh到其他计算节点创建虚拟机目录,使用默认的22端口连接
2018-03-01 19:04:22
490
原创 ansible自动化测试云平台多个网络角色间带宽(shell模块调用iperf)
云平台的一个网卡,可能承担多个网络角色,如同时走管理网流量,存储网流量等。一般部署完成后,需要测试各个网络间的带宽,看下是否有网卡掉速问题。如果网段较多,手工一个个来测试比较费时,特写了一个ansible playbook(iperf的安装未包含),调用iperf自动化测试各个网络带宽,yaml如下---- name: iptables and iperf server sta...
2018-02-28 19:13:28
999
转载 nova的服务心跳机制和服务状态监控机制的实现
转载自:http://blog.youkuaiyun.com/gzhouc/article/details/65948152Openstack中的服务是分布式部署,因此,各个服务的启停状态,决定了此系统的可用性。我们可以通过openstack提供的接口来查看服务的运行状态,比如:nova service的相关配置Nova相关的配置项都nova/conf这个目录下,如果我们相查看service相关的配置项,可以...
2018-02-10 12:46:13
1010
原创 时间不同步导致的nova,cinder服务一会up一会down的来回跳跃
客户反馈无法创建虚拟机(openstack版本为Juno),登录控制节点,发现nova 和cinder服务有为down的,检查down节点的nova和cinder日志,未发现任何日志信息显示error,且日志显示nova和cinder都在正常更新状态,创建虚拟机的请求,nova-schedule未做任何调度,创建的虚拟机状态直接变为error。 多检查几次...
2018-02-10 12:37:02
1303
利用ansible安装keepalived和haproxy集群
2018-01-31
ansible 安装etcd3集群
2018-01-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人