自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Yonx

一枚小背锅运维的blog

  • 博客(217)
  • 资源 (7)
  • 收藏
  • 关注

转载 AIOps 在美团的探索与实践 —— 故障发现篇

AIOps,最初的定义是Algorithm IT Operations,是利用运维算法来实现运维的自动化,最终走向无人化运维。随着技术成熟,逐步确定为Artificial Intelligence for IT Operations——智能运维,将人工智能应用于运维领域,基于已有的运维数据(日志、监控信息、应用信息等),通过机器学习的方式来进一步解决自动化运维无法解决的问题。本文系AIOps在美团的探索与实践的第一部分,如何自动发现故障问题,其中重点介绍了美团时序数据异常检测系统Horae的架构与设计。

2021-09-29 14:47:27 708

原创 k8s pod状态出现ImagePullBackOff的原因

安装rook出现ImagePullBackOff问题解决方法:1. 查看状态为 ImagePullBackOff pod的详细信息[root@kmaster ceph]# kdc pod rook-discover-s4f26 -n rook-cephName: rook-discover-s4f26Namespace: rook-ceph......v2/docker/registry/v2/blobs/sha256/50/5078a1850b66e05...

2021-09-26 13:11:07 3646

原创 The connection to the server localhost:8080 was refused - did you specify the right host or port?

在Kubernetes的node节点上运行kubectl命令出现了如下错误:出现这个问题的原因是kubectl命令需要使用kubernetes-admin来运行。解决方法如下:将master节点中的/etc/kubernetes/admin.conf文件拷贝到node节点的相同目录下[root@kmaster kubernetes]# scp admin.conf 192.168.126.114:/etc/kubernetes/然后配置环境变量并使之生效[root@knode3

2021-09-26 12:27:34 1254

原创 CPU、内存、磁盘的性能瓶颈及理解

一、如何判断CPU、内存、磁盘的瓶颈1. CPU瓶颈1) 查看CPU利用率,建议CPU指标如下:  a) User Time:65%~70%  b) System Time:30%~35%  c) Idle:0%~5%  如果us,sy高于这个指标可以判断CPU有瓶颈使用top或uptime查看运行队列  每个CPU都会维持一个运行队列,理想情况下,调度器会不断让队列中的进程运行。进程不是处在sleep状态就是runable状态。如果CPU过载,就会出现调度器跟...

2021-09-23 14:38:28 1994

转载 使用 Rook 快速搭建 Ceph 集群

Rook、Ceph简介RookRook是一个开源的云原生存储编排工具,提供平台、框架和对各种存储解决方案的支持,以和云原生环境进行本地集成。Rook 将存储软件转变成自我管理、自我扩展和自我修复的存储服务,通过自动化部署、启动、配置、供应、扩展、升级、迁移、灾难恢复、监控和资源管理来实现。Rook 底层使用云原生容器管理、调度和编排平台提供的能力来提供这些功能。Rook 利用扩展功能将其深度地集成到云原生环境中,并为调度、生命周期管理、资源管理、安全性、监控等提供了无缝的体验。有关 Rook

2021-09-18 16:14:31 3953

转载 DMA详解

DMA本来不属于CPU体系架构部分的内容,只因为在开发中经常要用到其相关的知识,所以这里就其基本概念、工作原理、常见问题做一个总结。DMA概述DMA的英文拼写是“Direct Memory Access”,汉语的意思就是直接内存访问。DMA既可以指内存和外设直接存取数据这种内存访问的计算机技术,又可以指实现该技术的硬件模块(对于通用计算机PC而言,DMA控制逻辑由CPU和DMA控制接口逻辑芯片共同组成,嵌入式系统的DMA控制器内建在处理器芯片内部,一般称为DMA控制器,DMAC)。DMA内存访问

2021-09-18 11:23:46 13511

转载 Linux 运维故障排查思路

1. 背景有时候会遇到一些疑难杂症,并且监控插件并不能一眼立马发现问题的根源。这时候就需要登录服务器进一步深入分析问题的根源。那么分析问题需要有一定的技术经验积累,并且有些问题涉及到的领域非常广,才能定位到问题。所以,分析问题和踩坑是非常锻炼一个人的成长和提升自我能力。如果我们有一套好的分析工具,那将是事半功倍,能够帮助大家快速定位问题,节省大家很多时间做更深入的事情。2. 说明本篇文章主要介绍各种问题定位的工具以及会结合案例分析问题。3. 分析问题的方法论套用5W2H方法,可以提出性能

2021-09-18 11:13:48 834

转载 零拷贝原理详解

引言传统的 Linux 操作系统的标准 I/O 接口是基于数据拷贝操作的,即 I/O 操作会导致数据在操作系统内核地址空间的缓冲区和应用程序地址空间定义的缓冲区之间进行传输。这样做最大的好处是可以减少磁盘 I/O 的操作,因为如果所请求的数据已经存放在操作系统的高速缓冲存储器中,那么就不需要再进行实际的物理磁盘 I/O 操作。但是数据传输过程中的数据拷贝操作却导致了极大的 CPU 开销,限制了操作系统有效进行数据传输操作的能力。零拷贝( zero-copy )技术可以有效地改善数据传输的性能,在内核驱

2021-09-18 10:48:48 207

转载 Ansible 插件开发

一、使用插件1. 回调插件介绍1.1 修改默认的回调插件同时只能有一个回调插件作为主要的管理者,用于输出到屏幕。如果想替换,应该在这个插件中修改CALLBACK_TYPE = stdout,之后在ansible.cfg中配置 stdout 插件。[defaults]stdout_callback = json # 以 JSON 的格式输出结果或使用自定义的回调:[defaults]stdout_callback = mycallback默认 情况下这仅对 ...

2021-09-18 10:12:06 559

转载 算法及Python实现十大经典排序算法

一、什么是算法算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。算法中的指令描述的是一个计算,当其运行时能从一个初始状态和(可能为空的)初始输入开始,经过一系列有限而清晰定义的状态,

2021-09-17 16:27:04 411

原创 完全理解 Python 迭代对象、迭代器、生成器

在了解Python的数据结构时,容器(container)、可迭代对象(iterable)、迭代器(iterator)、生成器(generator)、列表/集合/字典推导式(list,set,dict comprehension)众多概念参杂在一起,难免让初学者一头雾水,我将用一篇文章试图将这些概念以及它们之间的关系捋清楚。容器(container)容器是一种把多个元素组织在一起的数据结构,容器中的元素可以逐个地迭代获取,可以用in,not in关键字判断元素是否包含在容器中。通常这类数据结构把所.

2021-09-17 16:15:02 129

转载 列表推导式+ lambda表达式

li = []def funcs(): for i in range(10): def func(x, i=i): # 给内部函数传参, i 是内部函数的局部变量,当所有内部函数定义完毕,i 的值也变成了一个列表(range(10)) return x*i # 调用的时候其实是调用的内部函数的值 li.append(func) return lifor func in funcs(): func(2)Python...

2021-09-17 15:10:38 3042

原创 Python对象理解

一、摘要Python从设计之初就是一门面向对象的语言,它有一个重要的概念,即一切皆对象。Java虽然也是面向对象编程的语言,但是血统没有Python纯正。比如Java的八种基本数据类型之一int,在持久化的时候,就需要包装成Integer类对象。但是在python中,一切皆对象。数字、字符串、元组、列表、字典、函数、方法、类、模块等等都是对象,包括你的代码。二、python对象的概念究竟何谓对象?不同的编程语言以不同的方式定义“对象”。某些语言中,它意味着所有对象必须有属性和方法;另一些语..

2021-09-17 14:41:26 2068

转载 Python中的单例模式的几种实现方式的及优化

单例模式单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场。比如,某个服务器程序的配置信息存放在一个文件中,客户端通过一个 AppConfig 的类来读取配置文件的信息。如果在程序运行期间,有很多地方都需要使用配置文件的内容,也就是说,很多地方都需要创建 AppConfig 对象的实例,这就导致系统中存在多个 AppConfig 的实例对象,而这样会严重浪费内存资

2021-09-17 10:57:26 89

原创 Python的函数返回值返回的是值还是引用?

关于Python函数传参是传值还是传引用?这一问题网上都有很多的讨论,这篇博客解释比较清楚,结论是:Python参数传递采用的是“传对象引用”的方式。这种方式相当于传值和传引用的一种综合。如果函数收到的是一个可变对象(比如字典或者列表)的引用,就能修改对象的原始值--相当于通过“传引用”来传递对象。如果函数收到的是一个不可变对象(比如数字、字符串或者元组)的引用,就不能直接修改原始对象--相当于通过“传值'来传递对象。那么现在新的问题来了,对于函数的返回值来说,返回的是“值”还是“引用”呢?这里先说

2021-09-17 09:51:41 1433 1

原创 Python的星号(*、**)的作用

1. 函数的可变参数当函数的参数前面有一个星号*的时候表示这是一个可变的位置参数,两个星号**表示是可变的关键字参数。[root@localhost python_test]# cat test_param.py#!env python#coding=utf-8#def foo(*args, **kwarg): for item in args: print(item) for k,v in kwarg.items(): print(k,v...

2021-09-17 09:37:12 867

转载 Python分析Nginx日志

目录1、背景介绍 2、思路演进 2.1、第一步读取日志 2.2、第二步解析日志 2.3、第三步分析日志 2.4、第四步生成报告 2.5、第五步日志采集 2.6、结果展示 2.7、可扩展方向 1、背景介绍本文以我的博客站点其中一段时间的访问日志为例进行分析用到的知识点 基本数据类型列表,基本数据类型字典,re模块正则匹配,pandas模块数据处理,xlwt模块excel写入等 最终实现的功能 分析得到日志中访问ip的top20,访问地址的top20,访问客户端

2021-09-16 17:27:50 1549 1

转载 python中的super()用法以及多继承协同任务

理解了python的MRO之后,我们就可以更加准确地使用super()函数,以及使用super()完成多继承协同任务super().method()是调用父类中的方法,这个搜索顺序当然是按照MRO从前向后开始进行的super([type][, object-or-type])根据官方文档,super函数返回一个委托类type的父类或者兄弟类方法调用的代理对象。super函数用来调用已经在子类中重写过的父类方法。这句话其实很难看明白,为什么除了父类还可能是兄弟类?要理解这句话,先谈谈su..

2021-09-16 15:54:07 2490

转载 calico网络原理、组网方式和使用

calico网络

2021-09-16 15:24:06 15429 1

原创 彻底理解同步 异步 阻塞 非阻塞

IO操作IO分两阶段(一旦拿到数据后就变成了数据操作,不再是IO)1.数据准备阶段2.内核空间复制数据到用户进程缓冲区(用户空间)阶段在操作系统中,程序运行的空间分为内核空间和用户空间。应用程序都是运行在用户空间的,所以它们能操作的数据也都在用户空间。阻塞IO和非阻塞IO的区别在于第一步发起IO请求是否会被阻塞。如果阻塞直到完成那么就是传统的阻塞IO,如果不阻塞,那么就是非阻塞IO。一般来讲:阻塞IO模型、非阻塞IO模型、IO复用模型(select/poll/epoll)、信号驱动IO模..

2021-09-16 14:32:32 151

转载 内核内存碎片管理

大页面和透明大页面内存是由块管理,即众所周知的页面。一个页面有 4096 字节。1MB 内存等于 256 个页面。1GB 内存等于 256000 个页面等等。CPU 有内嵌的内存管理单元,这些单元中包含这些页面列表,每个页面都使用页表条目参考。让系统管理大量内存有两种方法:增加硬件内存管理单元中页表数 增大页面大小第一个方法很昂贵,因为现代处理器中的硬件内存管理单元只支持数百或者书签页表条目。另外适用于管理数千页面(MB 内存)硬件和内存管理算法可能无法很好管理数百万(甚至数十亿)页面。这会

2021-09-16 10:48:47 292

转载 python多任务—协程

写在前面:花了一周的时间,对协程做了一个简单的梳理,特别是异步编程asyncio库的使用,做了详细的说明。本文主要包括的知识点有:yield生成器的复习并实现协程的功能、greenlet库实现协程、gevent库实现协程、asyncio异步协程的介绍、异步协程的创建与运行、任务的创建与运行、并发运行gather/wait/as_complete/wait_for等方法的实现、异步协程的嵌套、await关键字的理解等等,这些都是基础。由于篇幅比较长,打算分为两篇,第二篇在介绍一下asyncio的其他用法。.

2021-09-15 16:54:13 1105

原创 python中函数和方法的区别

本文主要从三个维度来介绍分析python中函数和方法的区别一、从分类的角度来分析(1)函数的分类内置函数:python内嵌的一些函数。 匿名函数:一行代码实现一个函数功能。 递归函数 自定义函数:根据自己的需求,来进行定义函数。(2)方法的分类普通方法:直接用self调用的方法。 私有方法:__函数名,只能在类中被调用的方法。 属性方法:@property,将方法伪装成为属性,让代码看起来更合理。 特殊方法(双下划线方法):以__init__为例,是用来封装实例化对象的属性..

2021-09-15 15:25:12 2711

转载 ​Python 模块的加载顺序​

基本概念module模块, 一个 py 文件或以其他文件形式存在的可被导入的就是一个模块package包,包含有init文件的文件夹relative path相对路径,相对于某个目录的路径absolute path绝对路径,全路径Python 解释器是如何查找包和模块的Python 执行一个 py 文件,无论执行的方式是用绝对路径还是相对路径,interpreter 都会把文件所在的 directory 加入 sys.path 这个 list 中,并且是索引为 0..

2021-09-15 15:17:05 442

原创 python3对比配置文件输出html

Python 3.7 Socket TypeError: a bytes-like object is required, not 'str'因为在Python3.7的版本中使用了2.7版本的程序,在一定的修改后,open("filename","rb")读取的结果,在使用difflib.HtmlDiff.make_file函数的时候出现上述错误。这种错误是因为以“rb”方式读取的数据是byte数据,所以在使用函数的时候也一定要使用相同的数据类型的数据,即也要使用byte数据,直接把rb改成b。

2021-09-15 14:43:13 389

原创 Python模块 - Paramiko

​简介Secure Shell(安全外壳协议,简称SSH)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境。SSH通过在网络中创建安全隧道来实现SSH客户端与服务器之间的连接。OpenSSH是唯一一种最流行的SSH实现,paramiko是Python的一个库,实现了SSHv2协议(底层使用cryptography)。有了Paramiko以后,我们就可以在Python代码中直接使用SSH协议对远程服务器执行操作,而不是通过ssh命令对远程服务器进行操作。由于paramiko属于

2021-09-15 11:14:59 126

转载 k8s 节点状态为 NotReady 问题解决

使用kubectl get nodes查看已加入的节点时,出现了Status为NotReady的情况。root@master1:~# kubectl get nodesNAMESTATUSROLESAGEVERSIONmaster1NotReadymaster152mv1.18.1worker1NotReady<none>94mv1.18.1这种情况是因为有某些关键的 pod 没有运行...

2021-09-15 09:20:11 10379 2

原创 kubernetes查询容器的network namespace

命名空间是容器使用的主要功能之一(请参见下图)。 它们提供了一种隔离形式,允许容器保持可移植性并与主机系统分离。Linux 内核提供了各种类型的名称空间,在本文中,我们将研究如何查看 Kubernetes 集群中容器的 network namespace,这对于故障排除和学习非常有用。普通方式查询一般情况下,可以通过 ip netnd list 命令查看主机的 network namespace,但是在kubernetes 集群的主机上,不会返回network namespace信息。.

2021-09-15 09:11:09 835 2

转载 Linux进程内存消耗指标解读

了解系统的内存消耗是运维最基本的技能,但是Linux中关于内存消耗的指标很容易让人混淆,本文尝试把诸多概念解释清楚概念物理内存和虚拟内存物理内存:不解释;虚拟内存:进程独享,由操作系统通过地址映射的方式,转换为对物理内存的访问。在32位Linux机器上,每个进程的虚拟内存都是4G。(这里的虚拟内存与操作系统使用中过程常见的虚拟内存概念不同,不要混淆了,如Linux中swap)内存耗用指标VSS – Virtual Set Size 虚拟耗用内存(包含共享库占用的内存) RSS – Re

2021-09-15 09:10:22 212

原创 Kubernetes Dashboard 证书过期解决(centos)

1、生成证书请求的keyopenssl genrsa -out dashboard.key 20482、生成证书请求openssl req -days 3650 -new -out dashboard.csr -key dashboard.key -subj '/CN=**iujin.com**'3、 生成自签证书openssl x509 -req -in dashboard.csr -signkey dashboard.key -out dashboard.crt -days

2021-09-14 15:29:44 564

原创 kubernetes cs接口废弃

kubernetes cs接口废弃,那怎么来查看集群状态?kubernetes 在1.16版本的时候cs接口算是正式废弃掉了,表现如下那还要使用cs接口怎么办呢,可以试试如下命令kubectl get cs -o=go-template='{{printf "NAME\t\t\tHEALTH_STATUS\tMESSAGE\t\n"}}{{range .items}}{{$name := .metadata.name}}{{range .conditions}}{{printf "%-24s

2021-09-14 15:26:35 235

原创 k8s node节点删除并重新加入

删除knode1节点:kubectldeletenodenode01在knode1节点上删除master节点批准其加入集群时,自动颁发的证书及配置文件#删除证书及配置文件rm -f /etc/kubernetes/pki/*rm -f /etc/kubernetes/kubelet.conf重启kubeletsystemctl restart kubelet加入k8s集群此时在master节点执行:kubectl get nodes 可以看到knode...

2021-09-14 15:22:47 875

原创 k8s1.16.3集群使用token访问api

1.开启相关参数及查看版本KUBE_API_ARGS="--service-node-port-range=30000-32767--enable-swagger-ui=true--apiserver-count=3--audit-log-maxage=30--audit-log-maxbackup=3--audit-log-maxsize=100--audit-log-path=/var/log/k8s/audit.log--event-ttl=1h"2.创建用户,给cluster...

2021-09-14 15:03:43 854

原创 Python 调用 Kubernetes API 自动化管理资源

关于Kubernetes的Python SDK,几乎只有官方项目的examples。关于Job的基本增删改查操作,可以参考job_crud.py。但是,这只是基本用法,缺乏一些实用细节。本文给出Python SDK操作Kubernetes Job的更多示例代码,以及相关解释。pipinstallkubernetes初始化fromkubernetes.clientimportBatchV1Apifromkubernetes.configimportload_kube_con...

2021-09-14 14:57:01 1300

原创 Kubernetes之network: failed to set bridge addr: “cni0“ already has an IP address different from xxx问题

1 问题在使用Kubernetes部署应用时发现有Pod一直不能创建成功,使用kubectl describe pods <pod-name> -n <namespace>得到的结果如下图:从上面的截图中看到,问题出现在给Pod分配IP上,意思是cni0的IP不同于10.244.5.1/24,下面我们进入到knode1中使用ifconfig命令查看IP信息,结果如下:从上图中我们可以看到flannel.1的IP为10.244.5.0,然后使用cat /run/fl

2021-09-14 14:29:31 846

原创 Python列表去重方法

方法一:使用内置set方法来去重>>> lst1=[2,3,41,2,4,3,4]>>> lst2=list(set(lst1))>>> print(lst2)[41, 2, 3, 4]方法二:使用字典中fromkeys()的方法来去重>>> lst1=[2,3,41,2,4,3,4]>>> lst2={}.fromkeys(lst1).keys()>>> print(

2021-09-14 11:33:06 515

原创 kubernetes进入容器内操作

kubectl get pods #查看所有正在运行的pod#假如当前pod只有一个容器,运行以下命令即可kubectl exec -it httpd-586f456659-85v46 -- /bin/bash pod里有多个容器--container or -c 参数例如:假如这里有个Pod名为my-pod,这个Pod有两个容器,分别名为main-app 和 helper-app,下面的命令将打开到main-app的shell的容器里。kubectl e...

2021-09-14 11:16:11 3598

原创 Python正则表达式指南

1. 正则表达式基础1.1. 简单介绍正则表达式并不是Python的一部分,它是用于处理字符串的一个强大的工具,拥有自己独特的语法以及独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大。得益于这一点,在提供了正则表达式的语言里,正则表达式的语法都是一样的,区别只在于不同的编程语言实现支持的语法数量不同;不过没关系,不被支持的语法通常是不常用的。如果已经在其他语言里使用过正则表达式,只需要简单看一看就可以上手了。下图展示了使用正则表达式进行匹配的流程:正则表达式的大致匹...

2021-09-14 11:12:22 80

原创 python数据类型详解

1、字符串1.1、如何在Python中使用字符串a、使用单引号(')用单引号括起来表示字符串,例如:str='this is string';print str;b、使用双引号(")双引号中的字符串与单引号中的字符串用法完全相同,例如:str="this is string";print str;c、使用三引号(''')利用三引号,表示多行的字符串,可以在三引号中自由的使用单引号和双引号,例如:str='''this is stringthis is pythod string

2021-09-14 09:44:37 192

原创 Python中的内建函数集

一、Python类型操作符和内建函数总结表列出了所有操作符和内建函数,其中操作符顺序是按优先级从高到低排列的。同一种灰度的操作符拥有同样的优先级。注意在operator模块中有这些(和绝大多数Python)操作符相应的同功能的函数可供使用。标准类型操作符和内建函数 操作符/函数 描述 结果 字符串表示 `` 对象的字符串表示 str ...

2021-09-10 16:48:46 1810

NFS高可用方案.docx

DRBD+HeatBeat+NFS实现文件存储高可用

2021-09-07

ipmitool.sh

ipmitool.sh

2021-08-31

运维知识体系(PDF版本).pdf

运维知识体系(PDF版本)

2021-08-23

anaconda-ks.cfg.zip

anaconda-ks.cfg.zip

2021-08-20

Kubernetes1.16下部署Prometheus+node-exporter+Grafana监_Attachments.zip

Kubernetes1.16下部署Prometheus+node-exporter+Grafana监控系统文章的资源

2021-08-06

创建第一台kvm虚拟机、系统配置、模板准备、克隆虚拟机操作及配置.docx

创建第一台kvm虚拟机、系统配置、模板准备、克隆虚拟机操作及配置。

2020-04-15

PVE 6 离线安装CEPH-Nautilus.docx

Proxmox VE 6 离线安装CEPH-Nautilus,本教程用于解决纯内网环境无法安装配置ceph集群,亲测可用

2019-11-20

空空如也

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

TA关注的人

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