自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(200)
  • 资源 (25)
  • 收藏
  • 关注

原创 赠友人

承蒙诸位抬爱,友情造访博客。伴君九载有余,成长喜乐可贺。今当与君暂别,他处再续山河。

2020-09-20 10:53:44 246 1

原创 kubernetes的内部机制

目录1. 写在前面2. 状态转换机制3. k8s对象4. k8s控制器5. 级联指令6. k8s是一个声明式系统吗?7. 结论1. 写在前面个人主页: https://gzh.readthedocs.io关注容器技术、关注Kubernetes。问题或建议,请公众号(double12gzh)留言。Kubernetes是一个容器编排引擎,设计用于在一组节点(通常称为集群)上托管容器化应用。使用系统建模方法,本系列旨在推进对Kubernetes及其基础概念的理解。对于本篇博文,建议您需要提前对K

2020-11-08 22:13:45 387

原创 client-go系列之5---Informer

目录1. 写在前面2. Informer简介2.1 产生的背景2.2 主要功能2.3 主要模块2.4 类图2.5 SharedInformer实现机制2.6 不同资源的Informer定义3. Controller3.1 Controller定义3.2 Controller关键方法3.3 Controller小结3.4 Controller示例1. 写在前面个人主页: https://gzh.readthedocs.io关注容器技术、关注Kubernetes。问题或建议,请公众号(double12

2020-10-22 00:54:49 658 1

原创 client-go系列之4---Indexer

目录1. 写在前面2. Custom Controller中的组件2.1 Indexer2.1.1 简单介绍2.1.2 代码位置2.1.3 类图展示2.2 Indexer索引器实现[原文]1. 写在前面个人主页: https://gzh.readthedocs.io关注容器技术、关注Kubernetes。问题或建议,请公众号(double12gzh)留言。在本系列教程的第一篇中,我们已经对如下这张图作了简单介绍。这张图非常重要,理解这张图对我们正确理解client-go及Controlle

2020-10-18 01:26:31 408

原创 client-go系列之3---restclient的使用

目录0. 背景1. 环境准备2. RestClient使用示例3. 输出结果0. 背景个人主页: https://gzh.readthedocs.io关注容器技术、关注Kubernetes。问题或建议,请公众号留言。首先我通过kind创建了一个6节点的集群,本文章中所有的操作都是在这个集群中进行的。通过本文的讲解,希望您能了解如何使用client-go中的RESTClient来对资源进行操作,这里我只是举了最简单的例子—pod资源获取。文中用到的软件的版本如下:kind[root@

2020-10-14 20:08:52 560

原创 client-go系列之2---管理kubeconfig

目录1. 写在前面2. 集群配置管理2.1 加载配置文件2.2 合并配置文件1. 写在前面个人主页: https://gzh.readthedocs.io关注容器技术、关注Kubernetes。问题或建议,请公众号留言。本系列内容都是基于这个版本的client-go进行讲解,不同版本的略有差异。在使用client-go开发时,通常会遇到两种情况:在集群内部访问kubernetes资源在集群外部访问kubernetes资源关于这两种方式的区别,可以分别看一下下面这段代码直观感受一下:

2020-10-13 21:35:40 757

原创 client-go系列之1---client-go代码结构讲解

目录1. 写在前面2. 代码结构3. 代码使用简单示例3.1 获取kubeconfig及context3.2 创建ClientSet3.3 使用ClientSet获取集群中的pods3.4 使用ClientSet获取指定的pod4. 各种Clients详解5. 其它组件5.1 Reflector5.2 Informer5.3 Indexer5.4 WorkQueue1. 写在前面个人主页: https://gzh.readthedocs.io关注容器技术、关注Kubernetes。问题或建议,请公众

2020-10-13 00:24:03 1183

原创 使用GitOps管理k8s secret

目录1. 写在前面2. 管理Secret比较好的方式3. 结构3.1 目录结构3.2 Scaling4. 设置SOPS4.1 设置AWS4.2 AWS实例配置文件4.3 设置Flux5. 小结1. 写在前面原文链接GitOps是伴随着云原生产生的一个新的概念,它的核心是以一种声明式的方式管理资源,表示当前的状态,让你在任何时候都能知道git中的情况,并将这种声明式的状态解析为集群。我们在GitOps上犯的最大错误是结构。仓库的结构至关重要,你选择如何在公司里组织GitOps,将决定它的成败。当你

2020-10-03 23:45:01 216

转载 goroutine切换背后那些事儿

目录1. 写在前面2. 案例3. PC(程序记数器)4. 栈(stack)5. 操作本文基于于GoLang 1.13。1. 写在前面微信公众号:[double12gzh]个人主页: https://gzh.readthedocs.io关注容器技术、关注Kubernetes。问题或建议,请公众号留言。Goroutine很轻量,从资源消耗方面来看,它只需要一个2Kb的内存栈就可以运行;从运行时来看,它的运行成本也很低,将一个goroutine切换到另一个goroutine并不需要很多操作。在

2020-09-21 22:08:09 305

原创 GoLang字符串比较(二)

目录1. 写在前面2. Benchmark测试2.1 准备测试代码2.2 执行benchmark测试2.3 结论3. 其它测试3.1 前提条件3.2 优点3.3 测试代码3.4 执行测试3.5 结论4. 添加长度判断会提高效率吗5. 总结1. 写在前面微信公众号:[double12gzh]关注容器技术、关注Kubernetes。问题或建议,请公众号留言。在上一篇文章中,我们介绍了GoLang中字符串不同的比较方法,同时也使用一种比较简单粗暴的方法来一起了下不同方法的执行时间。在本文中,我们还

2020-09-19 23:28:14 1412

原创 GoLang字符串比较(一)

目录1. 写在前面2. 字符串比较基本方式2.1 区分大小写2.2 不区分大小写2.2.1 使用strings.ToLower2.2.2 使用strings.Compare3. 使用EqualFold4. 性能分析4.1 生成数据样本4.2 测试读取耗时4.3 区分大小写时的耗时4.3.1 采用`==`时的耗时4.3.2 使用`Compare`时的耗时4.3.3 结论4.4 不区分大小写时的耗时4.4.1 使用`==`时的耗时4.4.2 使用`Compare`时的耗时4.4.3 使用EqualFold时的耗

2020-09-19 23:26:34 5028

原创 并发与调度亲和性

目录写在前面并发调度与亲和性亲和性的限制亲和性增强写在前面微信公众号:[double12gzh]关注容器技术、关注Kubernetes。问题或建议,请公众号留言。将一个goroutine从一个操作系统线程切换到另一个线程是有代价的,如果发生得太频繁,会拖慢应用程序的速度。然而,通过一段时间的努力,Go调度器已经解决了这个问题。它现在提供了goroutine和线程并发工作时的亲和力。让我们回到几年前来了解一下这个改进吧。在Go的早期,Go 1.0 & 1.1期间,当运行并发代码时,如果

2020-09-16 12:56:31 186

原创 golang scheduler工作窃取

目录写在前面Goroutine队列工作窃取I/O和全局队列写在前面微信公众号:[double12gzh]关注容器技术、关注Kubernetes。问题或建议,请公众号留言。本文基于GoLang 1.13在Go中创建goroutine很容易,也很快速。然而,Go最多只能在每个内核上同时运行一个,并且需要一种方法来存放其他goroutine,并确保负载在各处理器上得到很好的平衡。Goroutine队列Go通过本地队列和全局队列在两个层面管理处于等待状态的goroutine。局部队列与每个处理器相

2020-09-15 08:28:40 188

原创 g0

目录写在前面调度goroutine职责创建goroutine推迟函数分配垃圾回收栈增长微信公众号:[double12gzh]关注容器技术、关注Kubernetes。问题或建议,请公众号留言。写在前面本文基于golang 1.13在Go中创建的所有goroutine都在内部调度器的管理之下。Go调度器试图给所有goroutine提供运行时间,并在当前goroutine被阻塞或终止时,让所有CPU开始运行其它goroutine。它实际上是作为一个特殊的goroutine来运行的。调度gor

2020-09-13 16:02:05 789

原创 golang是如何回收goroutine的

目录1. 写在前面2. 生命周期3. 必备条件1. 写在前面微信公众号:[double12gzh]关注容器技术、关注Kubernetes。问题或建议,请公众号留言。本文是基于golang 1.13Goroutines易于创建,堆栈小,上下文切换快。由于这些原因,开发人员喜欢它们,并经常使用它们。然而,一个程序如果产生许多这样生命周期很短的goroutine,那将会花费相当多的时间来创建和销毁它们。2. 生命周期下面我们将以一个简单的例子来看一下,golang中是如何重用gorout

2020-09-12 23:57:06 797

转载 python正则表达式

转自:http://blog.csdn.net/whycadi/article/details/20110461.  Python正则式的基本用法1.1基本规则1.2重复1.2.1最小匹配与精确匹配1.3前向界定与后向界定1.4组的基本知识2.  re模块的基本函数2.1使用compile加速2.2 match和search2.3 finditer2.4 字符串的修改与替换3.  更深入的了解re...

2018-02-26 19:17:20 407

原创 openstack heat redis_HA_redis_sentinel_keepalived

本模板用于创建一个RedisHA系统,基本信息如下:代码位置https://github.com/double12gzh/redis_HA-keepalived-sentinel-reids节点个数master node1个, slave node >= 2个版本信息redis 4.0.2,ruby 2.4.2,keepalived1.2.13,tcl 8.6.7,Ce

2017-10-07 15:21:55 960 1

原创 openstack heat部署redis_cluster

本模板用于创建一个Redis 集群,基本信息如下:代码位置https://github.com/double12gzh/redis_cluster 节点个数master node3个, slave node 3个版本信息redis 4.0.2,ruby 2.4.2,keepalived1.2.13,tcl 8.6.7,Centos 7.0.1406功能介绍

2017-10-07 15:14:47 905

原创 keepalived的安装及问题定位

安装下载安装包:wget http://www.keepalived.org/software/keepalived-1.1.20.tar.gz# cd /usr/local/src # tar -zxvf keepalived-1.2.18.tar.gz # cd keepalived-1.2.18 # ./configure --prefix=/usr/local/keepal

2017-10-07 15:09:03 8670 1

原创 将两个表序列表合并为一个有序列表

1 class Solution(object): 2 def merge(self, nums1, m, nums2, n): 3 nums0 = list() 4 i = 0 5 j = 0 6 7 while i < m and j < n: 8 if nums1[i

2017-07-01 10:23:30 2906

原创 sqlalchemy修改openstack数据库

一.数据库更新步骤 a. 添加版本文件 在下面的目录中添加新的版本文件,注意文件开头的编号要比本目录下已存在的版本号大。/usr/lib/python2.7/site-packages/storagemgmt/storage/sqlalchemy/migrate_repo/versions b. 修改models.py文件 修改/usr/lib/python2.7/site-packages

2017-06-30 20:45:27 820

转载 数据库外键的取舍

对于主/外键/索引来说,在一些开发团队中被认为是处理数据库关系的利器,也被某些开发团队认为是处理某些具体业务的魔鬼,您的观点呢?在实际应用中您会采取哪种方式?大家共同观点:主键和索引是不可少的,不仅可以优化数据检索速度,开发人员还省不其它的工作,矛盾焦点:数据库设计是否需要外键。这里有两个问题:一个是如何保证数据库数据的完整性和一致性;二是第一条对性能的影响 2

2017-06-25 21:46:42 526

转载 数据库外键的使用

外键的作用:保持数据一致性,完整性,主要目的是控制存储在外键表中的数据。 使两张表形成关联,外键只能引用外表中的列的值!例如:a b 两个表a表中存有客户号,客户名称b表中存有每个客户的订单有了外键后你只能在确信b 表中没有客户x的订单后,才可以在a表中删除客户x建立外键的前提: 本表的列必须与外键类型相同(外键必须是外表主键)。

2017-06-25 21:41:31 973

原创 执行tox -egenconfig出现错误genconfig: could not install deps [-r/home/mistral/test-requirements.txt]

通过tox -e genconfig 为Mistral生成配置文件时出现 下面的错误:[root@vitrage mistral(keystone_admin)]# tox -egenconfiggenconfig create: /home/mistral/.tox/genconfiggenconfig installdeps: -r/home/mistral/test-re

2017-06-08 17:13:31 4079

原创 pvcreate出现错误:Device /dev/sdb1 not found (or ignored by filtering).

错误信息:[root@compute2 ~]# pvcreate -vvv /dev/sdb1……Device /dev/sdb1 not found (or ignored by filtering).No devices to process.Unlocking /run/lock/lvm/P_orphans_undo_flock /run/lock/lvm/P_orp

2017-06-07 20:53:04 34949 4

原创 docker安装gitlab,redis,postgresql搭建代码托管环境

配置加速器可以参考下面链接去配置一下docker加速器(不过还是推荐用aliyun的)http://blog.csdn.net/gzhouc/article/details/65934897拉取镜像docker pull sameersbn/gitlab:9.1.4docker pull sameersbn/postgresql:9.6-2docker pull samee

2017-05-24 21:14:12 2556

原创 Openstack Taskflow

待分析……

2017-05-20 17:06:11 821

原创 docker挂载的目录无法读写

使用下面的命令可以创建一个容器并且把本地的/home/dock/Downloads目录挂载到容器中的/usr/Downloads中[root@docker ~]# docker run -it -v /home/dock/Downloads:/usr/Downloads ubuntu /bin/bash在Centos上创建完后,会出现如下问题root@637fe9ea94f

2017-05-07 15:01:00 10236 1

原创 理解python中的__str__, __call__, __init__, __getattr__

解释__getattr__:当调用不存在的属性时访问这个方法__str__: 对象打印出来的字符串(返回用户看到的)__repr__: 对象打印出来的字符串(返回开发者看到的)__call__: 如果类实现了这个方法,相当于把这个类型的对象当作函数来使用,相当于 重载了括号运算符如:class MyClass(object): def __call__(

2017-04-18 22:30:05 1687

原创 使用alembic进行openstack数据库版本管理

在线更新1. alembic init # 此处,我用的是alembic_v2.修改alembic.ini。如下:sqlalchemy.url = driver://user:pass@localhost:port/dbname 具体实例: sqlalchemy.url = mysql+mysqldb://storage:[email protected]/sto

2017-04-16 23:42:56 1621

转载 openstack通过sqlalchemy修改数据库的表结构

更改数据库的方法为数据库添加一张或多张新表删除一张或多张表为旧表添加一个字段为旧表更新一个字段为旧表初始化一条新的记录最后更改数据库的方法在开发 Openstack 项目的过程中, 对 models class 进行直接修改是不被允许的. 这不符合持续集成的规范, 也可能导致原始数据的丢失. 所以我们会使用一种类似打补丁的方式来对 Openstack

2017-04-08 20:12:35 1642

原创 gnocchi配置文件

[root@centos7 ~]# cat /etc/gnocchi/gnocchi.conf | grep -v ^$ | grep -v ^#[DEFAULT]log_dir = /var/log/gnocchi[api]port = 8041host = 0.0.0.0workers = 8max_limit = 1000[archive_policy][cors][co

2017-03-31 13:54:15 1656

原创 rdo安装openstack

https://www.rdoproject.org/install/quickstart/可以用packstack --gen-answer-file=answer-file.txt来生成的应答文件,通过配置应答文件就可以做批量配置。硬件条件:6G RAM关闭与开启以下服务:$ sudo systemctl disable firewalld$ s

2017-03-31 12:43:04 767

原创 阿里源centos yum epel

1.安装base reop源cd /etc/yum.repos.d接着备份旧的配置文件sudo mv CentOS-Base.repo CentOS-Base.repo.bak下载阿里源的文件sudo wget -O CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-7.repo2 安装epel re

2017-03-31 12:25:50 2781

原创 yum源和epel源

/etc/yum.repos.d/

2017-03-27 19:57:10 2848

转载 openstack中的oslo_config

2017-03-26 20:50:55 498

原创 nova的服务心跳机制和服务状态监控机制的实现

Openstack中的服务是分布式部署,因此,各个服务的启停状态,决定了此系统的可用性。我们可以通过openstack提供的接口来查看服务的运行状态,比如:nova service的相关配置Nova相关的配置项都nova/conf这个目录下,如果我们相查看service相关的配置项,可以看nova/conf/service.py。其中,注意一下这两个配置项:servic

2017-03-25 21:27:34 4085 1

原创 docker安装

ref: https://docs.docker.com/engine/getstarted/step_one/ 对于centos,首先配置好yum源和epel源,因为epel中自带了docker的包,所以直接运行以下命令安装。0. 配置yum和epel源epel源。把下面的内容放到/etc/yum.repos.d/epel.repo[epel]name=Extra Pa

2017-03-25 10:23:11 520

原创 pip国内源

豆瓣(douban) http://pypi.douban.com/simple/ 阿里云 http://mirrors.aliyun.com/pypi/simple/中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/ 清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/

2017-03-23 20:03:01 434

原创 openstack向社区提交代码及bug fix

1. git clone https://git.openstack.org/openstack/.git2. cd git review -s3. git config --global gitreview.username yourgerritusername4. git remote update git checkout master git pull --ff-only

2017-03-02 09:05:47 1363

Docker技术入门与实战

2017-05-02

support_NERDTree_TlistOpen

support_NERDTree_TlistOpen

2016-05-28

bashrc_vimrc_profile

bashrc_vimrc_profile

2016-05-28

Jeffrey's 精通正则表达式

这是学习正则表达式最好的一本书,书中有大量的实例可供参考。

2015-07-12

一键配置ctags 和cpp文件

这个主要是把cpp文件作为搜索的对,然后加追加ctags到各个目录及子目录下面

2015-06-06

vim配置文件2

vimrc配置文件for vim+cygwin

2015-06-06

vim配置文件

cygwin+cscope打造个性化IDE开发环境

2015-06-06

gps轨迹回放

实现了gps中的运行轨迹的回放功能,可以很好的帮助我们学习gps 导航定位的东西

2012-06-28

vc写的gps数据采集系统

这是一个GPS 导航定位系统,用vc开发的,能实现位导航等功能,希望对大家有帮助。

2012-06-28

献血管理系统

这是我自已写的一个用于献血统计的软件,用到了ado的相关知识

2012-06-04

魔方幻方行列对角线之和相等

/* 8 1 6 */ /* 3 5 7 */ /* 4 9 2 */ /* 实现一个幻方,规则是:各行列对角线的和都相等。*/ /* 当一个数位于a[i][j]时,他的下一个数的位置是:i-1,j+1*/ /* 如果算出的这个位置上已有数据存在了,则将a[i][j]所对应数据*/ /* 的下一个数放在该位置的下方;如果i=0,则下一个数据的行i=n-1;如果*/ /* j=n-1,则一下个数据的列j=0.*/

2012-05-23

学生成绩管理系统

这是我自己写的一个学生成绩管理系统 ,里面用 是ADO的方法,实现了一些基本的功能。

2012-05-10

大海星义工管理系统2.5

这是改进后的义工管理系统 ,是2.5版本的,加了相应的目录树和启动画面,不过启动画面做的很简陋

2012-04-19

大海星语音聊天软件

这是用mfc写的聊天软件,有发送文字和语音的功能

2012-04-17

聊天室 语音 mfc

这是用mfc写的聊天软件,有发送文字和语音的功能

2012-04-17

FastSLAM.ppt快速slam

这是关于fastslam的比较好的一篇文章,相信没有比这个再经典的了

2012-03-27

大海星义工管一系统

这是我自己写的一个义工管理系统,里面用到的知识有MFC ACCESS ADO以及数据库信息的查改删添.有关的密码大家可以给我发邮件,到时候我给你们发过去 [email protected]

2012-03-23

Java私塾教材资料大全(包括Java初、中、高级全套)

这个资料我想对大家的学习会有很大的帮助的,下载下来看一下吧

2011-11-16

药店管理系统

这个管理系统不错的,大家下载下来看看吧.希望对你们会有所帮助。谢谢

2011-11-14

十三个经典算法研究by_July

在这里我觉得这本书写的不错的,有兴趣的同学可以下下来看一下。

2011-11-14

算法导论[第二版].pdf

这是国外有名的算法导论的书,希望会对大家有所帮助。

2011-11-13

世界着名大学核心教材(计算机类)面向对象C++数据结构

这是一本不错的书,希望会对大家的学习有所帮助

2011-11-13

彻底搞定c指针(完全版)

很不错的一本书,对于我们初学者很有帮助,大家快来下载吧。

2011-08-31

空空如也

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

TA关注的人

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