自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(559)
  • 资源 (37)
  • 收藏
  • 关注

原创 containerd便捷操作(容器内抓包、根据pid查找pod,根据pod名称查找pid)

【代码】containerd便捷操作(容器内抓包、根据pid查找pod,根据pod名称查找pid)

2022-09-05 09:54:21 110

原创 mdadm使用详解

etc/mdadm.conf作为默认的配置文件,主要作用是方便跟踪软RAID的配置,尤其是可以配置监视和事件上报选项。在这里我们主要说明配置文件在组装RAID时的作用。更多mdadm.conf使用可参见man mdadm.conf。对于上节说到的缺少一块成员盘时,可以通过–force参数将RAID组装起来,但对于掉了两块或两块以上的成员盘时,无法将RAID再组装成active状态,只能组装成一个inactive状态的RAID。...

2022-08-02 17:43:02 391

原创 wget Unable to establish SSL connection.错误

代码】wgetUnabletoestablishSSLconnection.错误。

2022-07-28 21:07:13 116

转载 浅析 Kubernetes 多集群调度方案

本文介绍了KubeFed/Liqo两个开源项目多集群的资源管理和pod调度。KubeFed的资源调度总体上比较静态,需要创建workload之前确保各集群有充足资源。它的动态调度能力有限,因为只能对Deployment/ReplicaSet开启。当KubeFed下发pod到集群出现podpending的情况时,动态调度的能力能够将pod迁移到其他集群。Liqo是能做到动态的资源发现和pod调度,但是它的方法是将一个集群抽象成一个工作节点。......

2022-07-25 08:06:00 60

原创 curl: (60) SSL certificate problem: certificate has expired问题解决

2.访达进入/etc/ssl/目录下,将下载好的cacert.pem名称修改为cert.pem,替换原来的cert.pem文件即可。curl(60)SSLcertificateproblemcertificatehasexpired问题解决。1.SSLCA证书下载https//curl.se/docs/caextract.html。

2022-07-22 09:10:42 878

转载 关于全闪存储的几个问题

存储阵列根据软件栈和硬件设计的区别,分为全闪和混闪两种存储形式,混闪是一种使用SSD作为性能提速层,一般如二级缓存、自动分层技术;HDD作为主要存储介质的使用,通过SSD与HDD的混合使用,达到存储性能提升的目的。而全闪存储是软件栈全面针对SSD介质进行优化,同时使用SSD作为存储介质的存储系统,充分利用SSD介质的低延迟和高IOPS等优势,为客户的生产业务提供有力的支撑和性能保障,除此之外,HDD和SSD的原理差异,也导致全闪阵列的功耗可以更低,工作温度范围更大,也不必过于担心在一些特殊环境下的物理震荡、

2022-07-13 11:34:07 117

原创 mount.nfs: remote share not in ‘host:dir‘ format

nfs挂载时报错:mount.nfs: remote share not in ‘host:dir’ format这是说明远端那个需要挂载的目录不存在你的共享目录下。1、首先查看一下/etc/exports中设置的共享文件(没有设置成共享目录的文件上挂载不成功的)2、nfs挂载语法格式不对,本机挂载要在共享文件前加localhost,外部挂载要设定本机的IP地址...

2022-06-30 10:48:54 475

原创 vmhgfs-fuse VMware虚拟机和宿主机共享文件

命令行执行,可添加到/etc/rc.local

2022-06-27 16:40:39 935

原创 CentOS 升级git

wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.24.0.tar.gzyum install curl-devel expat-devel gettext-devel openssl-devel zlib-develyum remove gitgit --versiontar -zxf git-2.24.0.tar.gzcd git-2.24.0make prefix=/usr/local/git allmake

2022-06-25 00:40:56 822

原创 critical Pod 的调度保证

Kubernetes 核心组件(如 API 服务器、调度器、控制器管理器)在控制平面节点上运行。 但是插件必须在常规集群节点上运行。 其中一些插件对于功能完备的集群至关重要,例如 Heapster、DNS 和 UI。 如果关键插件被逐出(手动或作为升级等其他操作的副作用)或者变成挂起状态,集群可能会停止正常工作。 关键插件进入挂起状态的例子有:集群利用率过高;被逐出的关键插件 Pod 释放了空间,但该空间被之前悬决的 Pod 占用;由于其它原因导致节点上可用资源的总量发生变化。注意:把某个 Pod 标记为

2022-06-18 23:18:56 65

转载 Calico 使用IPIP封包时各阶段抓包

集群信息calico配置calico version: v3.19.1测试环境过程抓包当podA访问podB时,各阶段抓包如下节点k8s-node-4中的calic211b2bb019抓包pod中发出的包通过veth pair直接到达宿主机对应的cali*网卡(对应关系可以在pod中通过cat /sys/class/net/eth0/iflink查看)可以看到src ip是podA ip,dst ip是podB ip节点k8s-node-4的tunl0抓包pod发出的包出现在cali*网卡之后

2022-06-18 22:14:47 161

原创 wipefs、dd和clearpart清除分区

每个磁盘和分区上都有某种签名和元数据/魔术字符串。你可以使用wipefs命令查看分区表签名/元数据/魔术字符串。wipefs命令可以擦除文件系统,RAID或分区表签名/元数据。如何使用wipefs删除磁盘的签名也可以备份一个签名到$HOME目录下,并清空磁盘的签名:如何恢复签名信息:2. dd再某些情况下,使用wipefs查询不到磁盘的签名,可以使用dd命令来清空分区表和签名:这时可以使用dd明来清空签名:使用下面命令可以清空MBR引导记录:3.clearpart删除系统分区,优

2022-06-18 10:05:33 427

转载 linux下的/dev/shm目录

linux下的/dev/shm目录linux中/dev目录下一般都是一些设备文件,例如磁盘、内存、摄像头等。/dev/shm这个目录是linux下一个利用内存虚拟出来的一个目录,这个目录中的文件都是保存在内存中,而不是磁盘上。其大小是非固定的,即不是预先分配好的内存来存储的。(shm == shared memory)简要说明#/dev/shm的容量默认最大为内存的一半大小,使用df -h命令可以看到。但它并不会真正的占用这块内存,如果/dev/shm/下没有任何文件,它占用的内存实际上就是0字节。

2022-06-15 11:01:46 832

转载 /dev/shm100%

/dev/shm在/etc/fstab中挂载,对应tmpfs,实际使用的是内存的空间。默认情况下,/dev/shm为物理内存大小的一半。在Kubernetes上跑docker,发现/dev/shm太小,只有64M,想要扩容。却扩容失败Kubernetes不支持这操作。默认64M在/dev/shm下建个空文件夹,并将medium设置为Memorystartoverflow...

2022-06-15 10:40:20 80

原创 client-go——WorkQueue源码分析(八)

本文介绍对WorkQueue组件进行分析说明。前面我们把Informer的整个流程完整分析了一遍,我们可以通过监听对象的变化,将资源对象写入到事件处理器的回调函数中,但是如果我们直接在回调函数中处理这些数据会比较慢,对于这种情况往往我们就会使用队列来直接接收这些数据,然后再通过其他协程去处理这些数据,可以大大加快数据的处理速度。这个其实和channel有点类似,但是channel功能过于简单,无法满足各类场景的需求,比如限制数据队列的写入速度。为此client-go中单独提供了一个workqueue的组件来

2022-06-07 01:06:50 136 1

原创 client-go——DeltaFIFO(七)

文章目录1. 介绍2.Delta3. FIFO4. DeltaFIFO1. 介绍Reflector中通过ListAndWatch获取到数据后传入到本地的存储中,也就是DeltaFIFO中.从DeltaFIFO的名字可以看出它是一个FIFO,也就是一个先进先出的队列,而Delta表示的是变化的资源对象存储,包含操作资源对象的类型和数据,Reflector就是这个队列的生产者。2.Delta在了解DeltaFIFO之前我们需要了解下什么事Delta,我们先来看看client-go中是如何定义的,Delt

2022-05-29 17:56:05 70

原创 client-go——informer 原理(五)

文章目录1. 介绍2. 运行原理3. 示例1. 介绍前面我们在使用clientset的时候了解到我们可以使用clientset来获取所有的原生资源对象,那么如果我们想要去一直获取集群的资源对象数据呢?岂不是需要用一个轮询去不断查询List()操作?这显然是不合理的,实际上除了常用的CRUD操作之外,我们还可以进行watch操作,可以监听资源对象的增、删、改、查操作,这样我们就可以根据自己的业务逻辑去处理这些数据了。 watch通过一个event接口监听对象的所有变化(增加、删除、更新):// 任何知道

2022-05-28 23:14:25 167 1

原创 client-go—— Reflector(k8s)(六)

文章目录本文主要对Informer的Reflector组件进行分析说明下图是整个client-go的完整结构图,或者说使我们实现一个定义的控制器的完整流程,其中黄色图标是我们开发者需要自行开发的部分,而其它的部分是client-go已经提供的,直接使用即可。由于client-go实现非常复杂,我们这里先对上图中最核心的部分Informer进行说明。在Informer的架构中包含如下几个核心组件:Informers是client-go中非常重要的概念 ,接下来我们来仔细分析下Informers的实现原理,

2022-05-28 23:01:49 97

转载 修复gitlab服务器突然停电导致PostgreSQL损坏的数据库

最开始是存储的卷组受损,使用的DRBD,使用了xfs分区格式:挂载也报错:mount /dev/drbd0 /var/optmount: wrong fs type, bad option, bad superblock on /dev/drbd0,missing codepage or helper program, or other error(for several filesystems (e.g. nfs, cifs) you mightneed a /sbin/mount. hel

2022-05-27 18:11:29 262

原创 go mod module declares its path as: gtihub.com/xxx-xx but was required as:xx-xx

现象#go mod tidy........go: go.mod/test/e2e/kubectl imports github.com/googleapis/gnostic/OpenAPIv2: github.com/googleapis/gnostic@v0.6.9: parsing go.mod: module declares its path as: github.com/google/gnostic but was req

2022-05-24 13:43:44 132

原创 Containerd is crashing with panic: invalid page type

现象:机器重启,磁盘分区损坏,手动修复后,containerd crash解决办法:root@ZELDA:/var/lib/containerd# systemctl stop containerdroot@ZELDA:/var/lib/containerd# cd root@ZELDA:~# rm -rf /var/lib/containerd/root@ZELDA:~# systemctl start containerdroot@ZELDA:~# systemctl status co

2022-05-23 12:19:51 86

原创 client-go之clientset原理(四)

文章目录1.介绍2.示例3.ClientSet对象1.介绍Clientset是调用kubernetes资源对象最常用的客户端,可以操作所有的资源对象。前面我们说了在staging/src/k8s.io/api下面定义了各种资源类型的规范,然后将这些规范注册到了全局的Scheme中,这样就可以在Clientset中使用这些资源了。那么我们应该如何使用Clientset呢?2.示例首先我们来看下如何通过clientset来获取资源对象,我们这里来创建一个Clientset对象,然后通过该对象来获取默认

2022-05-23 00:25:59 161

原创 Homebrew curl: (60) SSL certificate problem: certificate has expired

一、 问题描述Homebrew安装git时出现问题curl: (60) SSL certificate problem: certificate has expired More details here: https://curl.haxx.se/docs/sslcerts.htmlIf you’d like to turn off curl’s verification of the certificate, use the -k (or --insecure) option.大概是由于Home

2022-05-20 03:05:27 239

原创 kubernetes-资源类型scheme(三)

文章目录1.介绍2.types.go文件3.zz_generated.deepcopy.go:使用deepcopy-gen工具生成的文件4.register.go文件:1.介绍当我们操作资源类型和apiserver进行通信的时候,需要根据资源对象类型的Group、Version、kind以及规范定义、编解码等内容构成Schema类型,然后Clientset对象就可以来访问和操作这些资源了,Scheme的定义主要在api子项目之中,源码仓库地址:https://github.com/kubernetes/

2022-05-20 03:01:47 92

原创 mac上彻底删除Jetbrains系列的IDE idea goland

删除如下目录中goland相关文件~/Library/Preferences/~/Library/Caches/~/Library/Application Support/~/Library/Logs/

2022-05-19 09:26:34 296

原创 Kubernetes API模型(二)

文章目录1.介绍2.API对象2.1 版本2.2 API路径3.API请求处理1.介绍kubernetes中最核心的就是kube-apivserver组件,其他组件都还是和kube-apiserver进行通信的,本节主要来研究kubernetes API接口的模型。2.API对象在kubernetes集群中,kubernetes对象是我们持久化的实体,就是最终要存入etcd数据,集群中通过这些实体来表示整个群体的状态。平时我们都是直接编写YAML资源清单文件,然后通过kubectl来提交创建对应的资

2022-05-19 01:44:10 126

原创 client-go源码学习--环境搭建(一)

文章目录1.运行环境2. 源码下载3. IDE1.运行环境这里我们选用MAC作为源码分析系统go 版本:go version  2 ↵  9630  01:12:14go version go1.17.6 darwin/amd642. 源码下载目录结构介绍#tree . -L 1.├── BUILD.bazel├── CHANGEL

2022-05-19 01:17:50 76

转载 k8s之hostport

NodePort 虽然可以给 pod 提供节点级别的 porxy,但是如果对于一个daemonset,采用 NodePort 方式来申明节点端口就不这么直观了,这个时候就可以使用pod的 hostport 来直接在pod的节点上暴露端口。apiVersion: apps/v1kind: DaemonSetmetadata: labels: app: tools-test name: tools-testspec: selector: matchLabels:

2022-05-17 01:03:50 659

原创 client-go代码实例

获取所有命名空间下的pod的相关信息package mainimport ( "context" "flag" "fmt" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes" "k8s.io/client-go/tools/clientcmd" "k8s.io/client-go/util/homedir" "k8s.io/klog" "path/filepath")func

2022-05-16 00:09:35 70

原创 OpenShift多网络平面选择与配置

OpenShift多网络平面选择与配置Macvlan是OpenShift较为理想的多网络平面方案1. Macvlan分配地址的方式Macvlan的地址分配方式有静态指定和动态分配两种:、如果需要为Pod指定固定IP地址,可以使用静态指定IP地址的方式。这种方式不利于容器的弹性伸缩。如果允许Pod随机获取IP地址,可以使用动态分配IP地址的方式,我们只需要指定一个IP地址段即可。这种方式管理更方便,也便于实现容器的弹性伸缩。2. 静态指定修改网络ClusterOperator,增加附加网络的

2022-05-09 11:20:38 154

转载 Linux multipath

一、什么是多路径普通的电脑主机都是一个硬盘挂接到一个总线上,这里是一对一的关系。而到了有光纤组成的SAN环境,或者由iSCSI组成的IPSAN环境,由于主机和存 储通过了光纤交换机或者多块网卡及IP来连接,这样的话,就构成了多对多的关系。也就是说,主机到存储可以有多条路径可以选择。主机到存储之间的IO由多 条路径可以选择。每个主机到所对应的存储可以经过几条不同的路径,如果是同时使用的话,I/O流量如何分配?其中一条路径坏掉了,如何处理?还有在操作系 统的角度来看,每条路径,操作系统会认为是一个实际存在的物

2022-05-09 09:07:12 298

转载 K8S Pod 保护之 PodDisruptionBudget

文章目录前言PodDisruptionBudget 简介PDB 应用场景前言在 Kubernetes 中,为了保证业务不中断或业务SLA不降级,需要将应用进行集群化部署。通过PodDisruptionBudget 控制器可以设置应用POD集群处于运行状态最低个数,也可以设置应用POD集群处于运行状态的最低百分比,这样可以保证在主动销毁应用POD的时候,不会一次性销毁太多的应用POD,从而保证业务不中断或业务SLA不降级。PodDisruptionBudget 简介Pod Disruption Bud

2022-05-06 11:34:10 342

原创 CentOS7安装cri-o

CentOS7安装cri-oVERSION=1.20OS=CentOS_7sudo curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable.repo https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/$OS/devel:kubic:libcontainers:stable.reposudo curl -L -o /etc/yum

2022-04-19 10:25:21 958

原创 CentOS7安装OVS(OpenvSwitch)

文章目录设置系统环境安装环境依赖安装OpenvSwitch设置系统环境sed -i '/SELINUX/s/enforcing/disabled/g' /etc/selinux/configsetenforce 0systemctl stop firewalld.servicesystemctl disable firewalld.service安装环境依赖yum install -y python-six selinux-policy-devel gcc make python-devel

2022-04-18 23:17:22 900

原创 docker-storage-setup 配置docker 后端存储

背景CentOS 7已经集成了Docker Engine, 并且提供了docker-storage-setup服务来帮助配置docker服务的devicemapper存储驱动,如果该驱动自动配置失败,则docker服务的存储驱动会降级为lvm-loop驱动。由于loop设备的缓存问题,lvm-loop模式不适合生产环境CentOS 7的安装程序默认使用lvm模式管理磁盘,如果仅有一块磁盘,安装程序会在该物理卷(pv)上创建centos卷组(vg), 并同时使用所有空间创建home和root逻辑卷(lv

2022-04-13 00:29:39 274 1

原创 k8s 集群中的etcd故障解决

一次在k8s集群中创建实例发现etcd集群状态出现连接失败状况,导致创建实例失败。于是排查了一下原因。问题来源下面是etcd集群健康状态[root@docker01 ~]# cd /opt/kubernetes/ssl/[root@docker01 ssl]# /opt/kubernetes/bin/etcdctl \> --ca-file=ca.pem --cert-file=server.pem --key-file=server-key.pem \> --endpoints="

2022-04-01 09:13:43 1855

原创 k8s etcd启动失败

现象机器断电重启后,节点NotReady,发现节点apiServer一直在重启,etcd也在重启原因etcd无法启动,一直在重启,apiServer连不上etcd也在重启,查看etcd日志:发现数据损坏,导致etcd一直重启

2022-04-01 00:45:42 526

原创 k8s 静态pod apiserver无法启动

现象:机器断电重启节点NotReady,查看apiServer 无法启动原因:Unexpected error while attempting to recover from admission failure: preemption: error finding a set of pods to preempt: no set of running pods found to reclaim resources因为资源不足,导致apiServer无法启动。不过无法理解,机器重启后,内存和cp

2022-03-31 23:58:02 765

原创 docker registry私库镜像查看与删除

1、列出所有的镜像curl -X GET http://192.168.37.100:5000/v2/_catalog| jq2、列出指定镜像的所有标签2.1查看镜像busybox下的tagcurl -X GET http://192.168.37.100:5000/v2/busybox/tags/list3、使用delete-docker-registry-image进行删除镜像3.1安装方法curl https://raw.githubusercontent.com/burnettk/

2022-03-30 10:22:00 466

原创 docker+DeviceMapper方案

docker+DeviceMapper方案预备devicemapper 要求需要安装 lvm2和 device-mapper-persistent-data切换容器存储驱动,需要使用docker save -o 机器镜像 ,然后push 镜像到docker Hub或者私有仓库配置DeviceMapper作为docker存储驱动配置loop-lvm模式(测试环境)loop-lvm模式利用loopback机制,该机制该允许将本地磁盘上的文件读取和写入就像一个实际的物理磁盘或块设备。然而loo

2022-03-28 03:58:47 452

1023856-vdiskmanager-linux.7.0.1.zip

解决vmware Exsit平台多个vmdk文件需要合并的问题,需要此工具进行vmdk合并,谢谢谢谢

2020-08-18

vscode中Go的相关插件安装

vscode中Go的相关插件安装,go项目必须以工作空间方式打开,也可以 git clone https://github.com/golang/tools.git tools,

2020-08-14

哈夫曼树及其应用

哈夫曼树及其应用

2017-04-23

哈希算法实现

哈希算法实现

2017-04-23

libffi-devel-3.0.5-3.2.el6.x86_64.rpm

libffi-devel-3.0.5-3.2.el6.x86_64.rpm

2017-03-04

boost中文文档

boost中文离线文档

2016-12-08

VC++之MFC类库中文手册

2016-08-11

Docker技术入门与实战 杨保华,戴王剑,曹亚仑编著 机械工业出版社

2016-08-11

Django 中文手册.chm

Django 中文手册.chm

2016-07-11

jthread-1.3.1.tar.bz2

jthread

2016-07-11

jrtplib-3.9.1.tar.bz2

jrtplib-3.9.1.tar.bz2

2016-07-11

C++加密/解密库

C++加密/解密库

2016-06-05

mysql5.5_win32

mysql5.5_win32

2016-05-16

[图解TCPIP(第5版).

[图解TCPIP(第5版).

2016-04-16

ACM算法模板

ACM算法

2016-04-16

STL源码剖析(高清

STL源码剖析(高清)相信你们会喜欢的,欢迎下载

2015-11-12

X86-64上的Linux VM管理系统

X86-64上的Linux VM管理系统

2015-11-07

Expect笔记

Expect笔记,希望大家来下载吧,快点快点

2015-10-03

jmeter资源监控的插件工具

JMeterPlugins-Extras.jar和JMeterPlugins-Standard.jar是专门用来进行jmeter资源监控的插件工具,测试过没问题

2020-03-01

ServerAgent-2.2.1.zip

ServerAgent ,jmeter服务端资源监测工具,可以对于响应时间分析,内存,网络io,磁盘io等做监控

2020-03-01

jmeter-plugins-manager-1.3.jar.zip

jmeter-plugins-manager-1.3安装包 ,需要自己解压下,下载完以后直接将jar包放到jmeter安装目录下的/lib/ext 目录下,重启Jmeter

2020-03-01

openssl-1.1.0c_libs.zip

libssl.so.1.1,libcrypto.so.1.1,libcrypti.a,libssl.a,libcrypto-1_1-x64.dll,libcrypto.lib,libssl-1_1-x64.dll,libssl.lib

2020-02-11

brctl相关源码包

网桥配置源码, Linux可以工作在网桥模式,在创建命名空间网桥时需要使用该软件包

2018-10-15

Go语言 guru.exe、godef.exe、gocode.exe

Go语言 guru.exe、godef.exe、gocode.exe,是64位的,专门用于eclipse配置时用的

2018-09-06

python3.6中文官方文档

python3.6中文官方文档是根据官方手册翻译过来的中文手册,帮助开发人员开发

2018-08-04

websocket文档

websocket 中文文档,是一个websocket API开发文档,为开发人员提供帮助

2018-08-04

Myeclipse10破解包

该软件包专门用于破解Myeclipse10,希望能帮助到大家。

2018-06-16

SDN核心技术剖析 & 实战指南

SDN核心技术剖析 & 实战指南

2017-08-06

source insight4.0破解工具

source insight4.0破解工具

2017-08-06

source insight 全局配色配置文件

source insight 全局配色配置文件

2017-08-06

source insight

一款开发工具

2017-08-06

open GL红蓝宝书

open GL红蓝宝书

2017-06-07

open GL编程指南

open GL编程指南

2017-06-07

瑞利信道仿真程序

瑞利信道

2017-06-07

算法竞赛入门经典

2017-04-23

gns3镜像文件

2017-04-23

空空如也

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

TA关注的人

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