自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

胡伟煌的博客

个人独立博客地址:www.huweihuang.com。容器云(Docker、Kubernetes等)相关生态技术研究。

  • 博客(106)
  • 收藏
  • 关注

原创 数据结构概述

1. 数据结构的基本概念“数据结构”是研究各种数据的特性以及数据之间存在的关系,进而根据实际应用的要求,合理地组织和存储数据,设计出相应的算法。数据是对客观事物的符号表示,数据元素(节点):数据的基本单位,在程序中通常作为一个整体进行考虑和处理。一个数据元素可以由若干个数据项组成。数据项:具有独立含义的最小标识单位。例如,一条数据记录可以称为一个数据元素,数据记录的某个字段就是一个数据项。数据

2018-04-18 00:12:39 677

原创 Redis 主从及哨兵模式部署

1. 部署Redis Master-Slave集群redis的安装及配置参考redis部署 本文以创建一主二从的集群为例。1.1 部署与配置先创建sentinel目录,在该目录下创建8000,8001,8002三个以端口号命名的目录。mkdir sentinelcd sentinelmkdir 8000 8001 8002 在对应端口号目录中创建redis...

2018-02-26 13:58:08 1696

原创 Redis集群模式部署

1. Redis部署 以下以Linux(CentOS)系统为例1.1 下载和编译$ wget http://download.redis.io/releases/redis-4.0.7.tar.gz$ tar xzf redis-4.0.7.tar.gz$ cd redis-4.0.7$ make编译完成后会在src目录下生成Redis服务端程序redis-serv

2018-02-02 19:46:48 33560 1

原创 Kubernetes基本概念(一)之理解Kubernetes对象

1. kubernetes对象概述kubernetes中的对象是一些持久化的实体,可以理解为是对集群状态的描述或期望。包括:集群中哪些node上运行了哪些容器化应用应用的资源是否满足使用应用的执行策略,例如重启策略、更新策略、容错策略等。kubernetes的对象是一种意图(期望)的记录,kubernetes会始终保持预期创建的对象存在和保持集群运行在预期的状态下。操作

2018-01-15 20:03:55 2174

原创 Golang包管理工具(二)之glide的使用

1. glide简介glide是一个golang项目的包管理工具,非常方便快捷,一般只需要2-3个命令就可以将go依赖包自动下载并归档到vendor的目录中。glide官网参考:https://glide.sh/2. glide安装go get github.com/Masterminds/glide3. glide使用#进入到项目目录cd /home/gopat

2018-01-14 20:01:29 7694

原创 Golang系列(四)之面向接口编程

1. 接口[多态]​多态性(polymorphisn)是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简而言之,就是允许将子类类型的指针赋值给父类类型的指针。即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。不修改程序代码就可以改变程

2018-01-13 23:22:41 10607

原创 数学基础(一)之矩阵的基本概念

1. 矩阵和向量1.1 矩阵⎡⎣⎢⎢⎢⎢1402137194914719182114371448⎤⎦⎥⎥⎥⎥\begin{bmatrix} 1402 & 191 \\ 1371 & 821 \\ 949 & 1437 \\ 147 &1448 \end{bmatrix}这个是4x2的矩阵,即4行2列。矩阵的维度即行数乘以列数。矩阵的元素(矩阵项): A=⎡⎣⎢⎢⎢⎢

2017-12-31 22:25:50 4531

原创 Python系列(四)之Python面向对象编程

本文个人博客地址:http://www.huweihuang.com/article/python/basics/python-object-oriented-programming/1. 类和实例在Python中所有的数据类型都可以视为对象,也可以自定义对象。自定义的对象数据类型即面向对象中的类(Class)概念。类是抽象的模板,实例是具体的对象。类的定义Python使用clas

2017-12-31 16:13:41 750

原创 机器学习的概念

本文个人博客地址:http://www.huweihuang.com/article/machine-learning/machine-learning-concept/1. 机器学习的概念1.1 Arthur Samuel的定义​ 机器学习是在特定的编程环境下,给予机器学习能力的领域。1.2 Tom Mitchell的定义​ 机器学习是指一个程序被认为能从经验

2017-12-29 09:57:38 1126

原创 Python系列(三)之Python高级特性

本文个人博客地址:http://www.huweihuang.com/article/python/basics/python-advanced-features/1. 切片切片操作(slice),即从list(tuple是一种特殊的list)中获取部分元素。L[m,n]表示从L[m]~L[n-1]的list。L[:n]表示从L[0]~L[n-1]的list。L[m:]表示从L[

2017-12-21 20:33:44 390

原创 client-go的使用及源码分析

本文个人博客地址:http://www.huweihuang.com/article/source-analysis/client-go-source-analysis/1. client-go简介1.1 client-go说明​ client-go是一个调用kubernetes集群资源对象API的客户端,即通过client-go实现对kubernetes集群中资源对象(包

2017-12-16 20:21:12 29072 2

原创 Python系列(二)之Python函数

本文个人博客地址:http://www.huweihuang.com/article/python/basics/python-function/1. 内置函数python的内置参数详见以下链接,也可以通过help(function_name)来查看具体函数的使用帮助。http://docs.python.org/3/library/functions.html Built

2017-12-10 22:58:28 458

原创 Python系列(一)之Python基础

本文个人博客地址:http://www.huweihuang.com/article/python/basics/python-basics/1. 数据类型和变量Python使用缩进来组织代码块,一般使用4个空格的缩进。使用#来注释一行,其他每一行都是一个语句,当语句以冒号:结尾时,缩进的语句视为代码块。Python对大小写敏感。1.1 整数​ Python可以处理任意大小

2017-12-09 11:49:11 1209

原创 Git详解

一、Git是什么(what)(一)概述Git是分布式版本控制系统,与SVN类似的集中化版本控制系统相比,集中化版本控制系统如果中央服务器宕机则会影响数据和协同开发。Git是分布式的版本控制系统,客户端不只是提取最新版本的快照,而且将整个代码仓库镜像复制下来。如果任何协同工作用的服务器发生故障了,也可以用任何一个代码仓库来恢复。而且在协作服务器宕机期间,你也可以提交代码到本地仓库,当协作服务器正常工作

2017-11-11 11:34:06 3520

原创 Golang系列(一)之顺序编程

一、初识Go语言(一)概述一个在语言层面实现了并发机制的类C通用型编程语言。(二)Go关键字(25个) 类别 关键字 说明 程序声明 package,import 包的声明和导入 声明与定义 var,const 变量和常量的声明 type 用于定义类型 复合数据类型 struct 定义结构体...

2017-11-02 22:04:54 1513

原创 Kubernetes常用命令(kubectl)

1. kubectl介绍kubectl controls the Kubernetes cluster manager.Usage: kubectl [flags] kubectl [command][root@node5 ~]# kubectl --helpkubectl controls the Kubernetes cluster manager.Find mo

2017-10-16 23:52:45 6023

原创 Kubernetes基本概念(三)之Pod详解

1. Pod的定义文件apiVersion: v1kind: Podmetadata: name: string namaspace: string labels: - name: string annotations: - name: stringspec: containers: - name: string images: string i

2017-09-28 16:27:36 18789 4

原创 ssh或scp免密登录

1. ssh/scp免密码A服务器地址:10.8.216.25,下面简称A B服务器地址:10.8.216.26,下面简称B实现A登录B免密码。1.1. 在A生成密钥对ssh-keygen -t rsa -P ""执行上述命令,一路回车,会在当前登录用户的home目录下的.ssh目录下生成id_rsa和id_rsa.pub两个文件,分别代表密钥对的私钥和公钥,如下图所示: 1.2. 拷贝A的公钥

2017-09-16 20:10:01 1324

原创 JSON语法

1. JSON的语法JSON 语法是 JavaScript 语法的子集。JSON 语法是 JavaScript 对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组1.1. JSON名称/值对"name" : "value"1.2. JSON 值可以是:数字(整数或浮点数)字符串(在双引号中)逻辑值(true 或 false)数组(在中括号中)对象(

2017-09-16 19:50:52 1077

原创 《图解TCP/IP》(三)之TCP与UDP

1. 传输层的作用1.1. 传输层的定义IP首部有个协议字段,用来标识传输层协议,识别数据是TCP的内容还是UDP的内容。同样,传输层,为了识别数据应该发给哪个应用也设定了这样的编号,即端口。1.2. 通信处理应用协议大多以C/S形式运行,即服务端需提前启动服务,监听某个端口,当客户端往该端口发送数据时,可以及时处理请求。服务端程序在UNIX系统中称为守护进程,例如HTTP的服务端程序为httpd;

2017-09-10 20:08:07 835

原创 beego web框架(二)之日志处理

1. 使用入门beego 的日志处理是基于 logs 模块搭建的,内置了一个变量 BeeLogger,默认已经是 logs.BeeLogger 类型,初始化了 console,也就是默认输出到 console。beego.Emergency("this is emergency")beego.Alert("this is alert")beego.Critical("this is critic

2017-09-10 17:52:58 21414

原创 Golang系列(八)之文本处理

1. JSON处理JSON是一种轻量级的数据交换语言。1.1. 解析JSON[Unmarshal(data []byte, v interface{})]1.1.1. Unmarshal源码/src/encoding/json/decode.gofunc Unmarshal(data []byte, v interface{}) error { // Check for well-forme

2017-09-10 15:22:08 3105

原创 Kubernetes核心原理(四)之Kubelet

1. kubelet简介在kubernetes集群中,每个Node节点都会启动kubelet进程,用来处理Master节点下发到本节点的任务,管理Pod和其中的容器。kubelet会在API Server上注册节点信息,定期向Master汇报节点资源使用情况,并通过cAdvisor监控容器和节点资源。可以把kubelet理解成【Server-Agent】架构中的agent,是Node上的pod管家。

2017-09-10 15:04:25 24860 2

原创 Kubernetes API分类汇总

1. 资源对象1.1. Namespace 分类 说明 方法 API 查 list or watch objects of kind Namespace GET /api/v1/namespaces read the specified Namespace GET /api/v1/namespaces/{name} 增 create a Nam

2017-09-10 14:51:37 4036 1

原创 Kubernetes网络原理

1. kubernetes网络模型1.1. 基础原则每个Pod都拥有一个独立的IP地址,而且假定所有Pod都在一个可以直接连通的、扁平的网络空间中,不管是否运行在同一Node上都可以通过Pod的IP来访问。k8s中Pod的IP是最小粒度IP。同一个Pod内所有的容器共享一个网络堆栈,该模型称为IP-per-Pod模型。Pod由docker0实际分配的IP,Pod内部看到的IP地址和端口与外部保

2017-09-10 14:33:59 17457

原创 Kubernetes监控体系(二)之cAdvisor介绍

1. cAdvisor简介​ cAdvisor对Node机器上的资源及容器进行实时监控和性能数据采集,包括CPU使用情况、内存使用情况、网络吞吐量及文件系统使用情况,cAdvisor集成在Kubelet中,当kubelet启动时会自动启动cAdvisor,即一个cAdvisor仅对一台Node机器进行监控。kubelet的启动参数–cadvisor-port可以定义cAdvisor对外提供服务的

2017-09-09 22:24:04 11293 1

原创 Kubernetes监控体系(一)之集群监控概述

1. 概述1.1. cAdvisorcAdvisor对Node机器上的资源及容器进行实时监控和性能数据采集,包括CPU使用情况、内存使用情况、网络吞吐量及文件系统使用情况,cAdvisor集成在Kubelet中,当kubelet启动时会自动启动cAdvisor,即一个cAdvisor仅对一台Node机器进行监控。kubelet的启动参数–cadvisor-port可以定义cAdvisor对外提供服务

2017-09-08 21:40:39 5004 1

原创 Kubernetes监控体系(三)之Heapster介绍

1. heapster简介Heapster是容器集群监控和性能分析工具,支持Kubernetes和CoreOS。 Kubernetes有个监控agent—cAdvisor。在每个kubernetes Node上都会运行cAdvisor,它会收集本机以及容器的监控数据(cpu,memory,filesystem,network,uptime)。2. heapster部署与配置2.1

2017-09-08 21:24:42 8162 1

原创 Kubernetes监控体系(四)之InfluxDB介绍

1. InfluxDB简介InfluxDB是一个当下比较流行的时序数据库,InfluxDB使用 Go 语言编写,无需外部依赖,安装配置非常方便,适合构建大型分布式系统的监控系统。主要特色功能:1)基于时间序列,支持与时间有关的相关函数(如最大,最小,求和等)2)可度量性:你可以实时对大量数据进行计算3)基于事件:它支持任意的事件数据2. InfluxDB安装1)安装wget https://dl.i

2017-09-08 21:20:22 3007

原创 Flannel介绍

一、flannel是什么(what)(一)概述Flannel是CoreOS团队针对Kubernetes设计的一个网络规划服务,简单来说,它的功能是让集群中的不同节点主机创建的Docker容器都具有全集群唯一的虚拟IP地址。 Flannel官网:https://github.com/coreos/flannel(二)补充知识点1、覆盖网络[overlay network]运行在一个网上的网(应用层网

2017-09-08 21:09:35 13864 1

原创 Redis简介

一、redis是什么?(what)Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区。Redis是一个开源的使

2017-09-08 17:32:32 379

原创 Nginx Http服务器

1. Nginx的系统架构Nginx包含一个单一的master进程和多个worker进程,每个进程都是单进程,并且设计为同时处理成千上万个连接。worker进程是处理连接的地方,Nginx使用了操作系统事件机制来快速响应这些请求。master进程负责读取配置文件、处理套接字、派生worker进程、打开日志文件和编译嵌入式的perl脚本。master进程是一个可以通过处理信号量来管理请求的进程。

2017-09-07 21:27:03 873

原创 Nginx作为反向代理

1. 反向代理简介Nginx可以作为反向代理,接收客户端的请求,并向上游服务器发起新的请求。该请求可以根据客户端请求的URI,客户机参数或其他逻辑进行拆分,原始URL中的任何部分可以以这种方式进行转换。1.1. 代理模块指令 指令 说明 proxy_connect_timeout Nginx从接受到请求到连接至上游服务器的最长等待时间 proxy_cookie_domain 替

2017-09-07 21:24:22 2058

原创 Keepalived常用配置及脚本

1. keepalived.conf1.1. MASTER(主机配置)global_defs { router_id wae-proxy-keepalived}vrrp_script check_nginx { script "/etc/keepalived/scripts/check_nginx.sh" interval 3 weight 2 }vrr

2017-09-07 21:16:52 9512 1

原创 Nginx的部署与配置

1. 部署1.1. 使用安装包的方式rpm -ivh nginx-xxx.rpm1.2. 使用源代码安装1.2.1. 下载源码包wget http://blob.wae.haplat.net/nginx/nginx-1.9.13.tar.gz1.2.2. 创建临时目录并解压源码包mkdir $HOME/buildcd $HOME/build && tar zxvf nginx-<version-n

2017-09-07 20:53:26 5063

原创 Golang系列(五)之Golang指针

1. 指针的概念 概念 说明 变量 是一种占位符,用于引用计算机的内存地址。可理解为内存地址的标签 指针 表示内存地址,表示地址的指向。指针是一个指向另一个变量内存地址的值 &amp; 取地址符,例如:{指针}:=&amp;{变量} * 取值符,例如:{变量}:=*{指针}2. 内存地址说明2.1. 内存定义计算机的内存 RAM 可以把它想象成一些有序的盒子,一个接一个的排成

2017-09-07 12:52:06 18968 2

原创 GoLand同步插件配置

1.1. Gogland(GoLand)下载并安装Gogland,配置GOROOT和GOPATH,安装包见官网:http://www.jetbrains.com/go/download/1.2. 常用插件同步插件:Source SynchronizerRemote Hosts Access自动保存插件:File Watchers1.3. 设置同步到li...

2017-09-07 11:23:32 12242

原创 《图解TCP/IP》(二)之IP协议详解

1. IP基础TCP/IP的心脏是互联网层,这一层主要有IP和ICMP两个协议组成,在OSI参考模型中为第三层(网络层)。网络层的主要作用是实现终端节点之间的通信(点对点通信)。1.1. 网络层与数据链路层的关系1.2. IP寻址IP地址用于在“连接到网络中的所有主机中识别出进行通信的目标地址”。因此TCP/IP通信中所有主机或路由器必须设定自己的IP地址(每块网卡至少配置一个或以上的IP地址)。1

2017-08-21 20:27:04 2294

原创 Golang包管理工具(一)之govendor的使用

本文个人博客地址为:http://www.huweihuang.com/article/golang/govendor-usage/ 本文个人博客地址为:https://huweihuang.net/article/golang/govendor-usage/ 更多golang包管理工具参考 golang包管理工具之glide的使用1. govendor简介golang工程的依...

2017-08-14 20:56:53 57642 1

原创 Golang系列(六)之测试用例

1. Go中的测试框架Go语言中自带有一个轻量级的测试框架testing和自带的go test命令来实现单元测试和性能测试,testing框架和其他语言中的测试框架类似,你可以基于这个框架写针对相应函数的测试用例,也可以基于该框架写相应的压力测试用例。2. 单元测试原则文件名必须是_test.go结尾的,这样在执行go test的时候才会执行到相应的代码你必须i

2017-08-13 10:42:59 4061

空空如也

空空如也

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

TA关注的人

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