说说Go中defer的坑 defer nil 函数如果一个延迟函数被赋值为 nil , 运行时的 panic 异常会发生在外围函数执行结束后而不是 defer 的函数被调用的时候。package mainimport ( "fmt")func main() { var run func() = nil defer run() fmt.Println("runs")}执行结果:r...
说一说Go中的延迟函数defer 简单的说就是Go中用defer关键字来修饰函数起到延迟执行的效果。defer 表达式会被放入一个类似于栈( stack )的结构,所以调用的顺序是先进后出/后进先出的package mainimport ( "fmt")func main() { defer fmt.Print(1) defer fmt.Print(2) defer fmt.Pr...
Kubernetes核心概念总结(转载) 转载一篇不错的文章:https://www.cnblogs.com/WayneZeng/p/7680597.html1、基础架构 1.1 Master Master节点上面主要由四个模块组成:APIServer、scheduler、controller manager、etcd。 APIServer。APIServer负责对外提供RESTful的Kubernetes API服务,它是系统...
kubernetes资源对象ConfigMap学习(一) 前提条件:已安装kubernetes集群系统安装好后,默认可以查询到以下configmap注:我这里使用的是flannel网络,可能与你的存在差异。kubectl describe configmap kube-flannel-cfg --namespace kube-system上图Data字段ConfigMap也是kubernetes的一种资源对象,当然创建ConfigMap也有两种方式:(1...
学习使用VMware harbor搭建docker镜像仓库 离线安装过程:root@Ubuntu-001:~/harbor# ./install.sh [Step 0]: checking installation environment ...Note: docker version: 17.12.0Note: docker-compose version: 1.19.0[Step 1]: loading Harbor images .....
YAML语法简单介绍 最近在学习K8S,经常用到YAML文件,之前学习docker-compose也遇到过。现在简单总结下其语法。YAML=YAML Ain't Markup Language,YAML 是一种简洁的非标记语言。YAML以数据为中心,使用空白,缩进,分行组织数据,从而使得表示更加简洁易读。基本规则YAML有以下基本规则: 1、大小写敏感 2、使用缩进表示层级关系 3、禁止使用tab缩进,只能使用空格键 ...
记一次用kubeadm搭建kubernetes v1.9.0集群 目标:使用kubeadm搭建kubernetes v1.9.0集群操作系统:Ubuntu 16.04.3Ubuntu-001 :192.168.1.110ubuntu-002 : 192.168.1.106步骤总结:1、安装Docker CE2、安装kubeadm、kubectl、kubelet3、利用kubeadm init初始化kubernetes集群4、利用kubeadm join加入nod...
在国内如何巧妙获取kubernetes各镜像? 我们知道无论手动安装kubernetes还是使用kubeadm安装kubernetes,都需要以下各模块的docker镜像。kube-proxy-amd64 kube-scheduler-amd64 kube-controller-manager-amd64 kube-apiserver-amd64 etcd-amd64 pause-amd64 kubernetes-dashboard-amd64...
Docker的那些事儿—Docker使用的核心底层技术(7) Union file systems前面介绍了Namespace和Cgroups,这两项技术都是与容器相关。Docker的一大创新之处采用了——Union file systems(联合文件系统,UnionFS)技术。它是实现Docker镜像的技术基础,是一种轻量级的高性能分层文件系统,支持对文件系统中的修改作为一次提交来一层层的叠加,这个特性使得镜像可以通过分层实现和继承。Docker镜像分为基...
Docker的那些事儿—Docker使用的核心底层技术(6) Control groupsControl groups(Cgroups)中文称为控制组。Docker利用Cgroups实现了对资源的配额和度量。Cgroups可以限制CPU、内存、磁盘读写速率、网络带宽等系统资源。Linux使用文件系统来实现Cgroups,我们可以直接使用下面的命令查看当前的Cgroups中有哪些子系统:以下是每个子系统的说明:Blkio:这个子系统设置限制每个块设备的输入输出...
Docker的那些事儿—Docker使用的核心底层技术(5) Docker使用的核心底层技术:Namespace、Control Groups和Union FS。Namespaces每个docker主机上可以起很多container,这些container之间是相互隔离,互不影响的。Docker正是借助Linux kernel namespace(命名空间)来实现这一点。具体包括pid、net、ipc、mnt、uts、user等namespace将conta...
Docker的那些事儿—Docker架构讲解(4) 前面安装了docker,通过最简单的例子也直观的感受了docker是怎么玩的。下面我们就来了解下docker的架构是怎么的,都包括那些核心的东西。下图是docker的架构图:可以看出Docker采用的是C/S架构模式,client负责发送请求,server(daemon)负责处理请求:包括构建、运行、分发docker容器。当然了client和server可以运行在同一个或不同的主机上。两者之间通过...
Docker的那些事儿—Docker安装(3) 当然,Docker的官方文档是最佳的参考:https://docs.docker.com/engine/installation/。Docker官方提供了两种版本:社区版本Community Edition (CE) 和企业版本Enterprise Edition (EE)。其中EE版本又提供了Stable和Edge版本, Stable每个季度更新一个版本,而Edge版本每个月更新一个版本。显然两...
Docker的那些事儿—环境搭建(2) 搭建环境前,需要思考几个问题:(1) 安装什么样的系统?Windows?Linux or Mac?32 bit or 64 bit?(2) 在哪里安装?物理机? 虚拟机?(使用什么虚拟化软件?)云主机?(3) Docker都有哪些版本?怎么选择?要回答上面的这些问题,建议先参考下Docker的官方文档,因为Docker对不同的Linux系统版本有一定的要求,尽量不要出现了系统安装...
Docker的那些事儿—Docker简介(1) 什么是Docker?Docker官网是这么描述的:WHAT IS DOCKER? Docker is the world’s leading software containerization platform. Docker is the company driving the container movement and the only container platform provider...
Linux技巧: Linux终端打印如何设置不同的颜色及显示方式 在Linux终端下调试程序时,有时需要输出大量信息。而从这些大量的信息中,我们往往很难捕获我们需要的信息。若能控制字体的颜色和显示方式,可使输出信息对比鲜明显示,便于调试时观察数据。 终端的字符颜色由转义序列(Escape Sequence)控制,是文本模式下的系统显示功能,与具体语言无关。 转义序列以控制字符'ESC'开头。该字符的ASCII码十进制表示为27,十六进制表
python 多进程编程 转载自:http://www.cnblogs.com/alan-babyblog/p/5339501.html创建进程的类:Process([group [, target [, name [, args [, kwargs]]]]]),target表示调用对象,args表示调用对象的位置参数元组。kwargs表示调用对象的字典。name为别名。group实质上不使用。方法:is_
Linux技巧:dos转unix文件格式方法 Window上编辑的文件上传到Linux系统上,经常会遇到报错,原因在于window上文件格式与linux上是不同的导致。 Windows上市dos格式,Linux上是unix格式。Dos->Unix转换是需要的,一般可以采取以下两种方法进行装换:(1) 使用dos2unix 文件名 进行装换终端执行: dos2unix test.py(2) 借助vim编辑器进
Python线程之threading.Event python使用threading.Event可以使一个线程等待其他线程的通知,我们把这个Event传递到线程对象中,Event默认内置了一个标志,初始值为False。一旦该线程通过wait()方法进入等待状态,直到另一个线程调用该Event的set()方法将内置标志设置为True时,该Event会通知所有等待状态的线程恢复运行。python线程的事件Event用于主线程控制其他线程的
如何判断一个正整数是否是2的乘方 实现一个方法,判断一个正整数是否是2的乘方(比如16是2的4次方,返回True;否则返回False)方法一:从1开始循环乘以2,直到结果第一次大于或者等于目标值,如果相等,则放回True,如果大于,则返回False方法二:使用该数循环除以2,如果最终商是1并且余数是0,则返回True;循环中一旦出现余数不为0,则返回False方法三:借助位运算如果该数是2的乘方,则该数的二进制表示