12 阿仆来耶

尚未进行身份认证

我要认证

每天遇见更好的自己!

等级
TA的排名 4w+

[kubernetes]spec yaml定义command/args

对于DockerFile中的CMD [“”] 以及ENTRYPOINT[“xxx”, “xxxx”]以及kubernetes中的command Args的描述一直很困惑,特别是针对外网下载的image,进行调试验证的时候。需要弄清楚DockerFile与Kubernetes yaml中定义的关系。其实kubernetes社区已经给出了明确的说明This table summarizes the...

2019-01-15 20:13:39

[golang] cannot take the address of xxx()

package mainimport "time"func main() { _ = &time.Now()}编译的时候提示:cannot take the address of time.Now()给出的解释The probably unsatisfying answer is “you can’t do it because the spec says so.”...

2018-12-18 21:03:40

Kubernetes autoscaler

Kubernetes作为容器编排工具,应用部署在集群中,应用的负载本身是会随着时间动态发生变化的,为了更好的平衡资源使用率以及性能,kubernetes引入了autoscaler。可以根据应用负载的情况动态的扩缩容资源。Kubernetes的autoscaler分成两个层次:pod级别的扩容,包含横向扩容(HPA)以及纵向扩容(VPA),扩容容器可用的资源使用量。集群级别的扩容,通过CA(...

2018-09-19 19:00:12

节点unknown状态,对使用ceph rbd作为后端存储的statefulset应用处理方法

当kubernetes集群节点变成unknown状态,statefulset创建的pod并不会被主动重新在其他的节点上进行创建,需要人为的将该node通过kubectl delete node进行删除,这样才会在其他的节点上进行创建。社区upstream的smarterclayton给出了为什么要这样设计 This is by design. When a node goes “dow...

2018-08-16 22:50:07

kubernetes node notReady触发pod重调度策略

kubernetes node notReady触发pod重调度策略当kubernetes中node的状态异常的时候,会导致无状态的pod重新调度到其他的节点中,关于什么时候会触发重新调度,很多人都很关心,kubernetes原生提供了参数配置触发重新调度的时间,首先分析触发该流程的具体流程: 1. kubelet周期性的更新自身状态到apiserver,周期为–node-status-u...

2018-07-19 19:59:21

Application on kubernetes实践

Application on kubernetes实践本系列是GCE推出的文章,解决随着大量的应用迁移到kubernetes中,如何能够紧随kubernetes的发展,更好的在kubernetes上运行应用的建议。翻译文章并没有直接翻译,而是概要的解释每种建议,详细的内容通过文后链接找到。建立更小的镜像Docker公司创新的提出了容器镜像的概念,通过定义Dockerfile以及执行do...

2018-06-24 23:01:22

Kubelet的grabage collection

介绍Kublet中会定期的执行垃圾回收流程,清理节点上不使用的images和containers.下面讲会对如何配置垃圾回收策略以及代码实现层面上分析该业务流程.Image 回收策略中存在两个阈值,HighThresholdPercent和LowThresholdPercent,当磁盘使用率超过HighThresholdPercent将会触发回收流程,回收流程将会删除最老没有被使用...

2018-03-28 14:45:45

kubelet与runtime的整合

Kubernetes 1.10版本Kubelet调用docker创建容器的调用链如图所示 解析该流程能够深入的了解kubernetes是怎么与docker进行交互的.CRI首先介绍CRI, CRI全称为container runtime interface接口,是kubernetes在1.5版本之后引入的概念,为了使得kubernetes更好的扩展以及整合容器运行时(docker...

2018-03-27 15:39:55

golang中的cross compiling

交叉编译就是编译出在其它操作系统下运行的程序,比如在Linux下编译后在Windows系统中运行,或者说在32位下编译在64位下运行。 golang 1.5之后很容易的实现交叉编译,通过设置$GOOS, $GOARCH两个环境变量就能够编译出来其他平台运行所需要的bin文件.通过下面的例子来说明package mainimport "fmt"import "runtime"fu...

2018-03-27 13:24:23

mount namespace和shared subtrees

mount namespace是一个强大并且复杂的机制,用来为每个用户和每个容器创建文件系统树.它是一个很复杂的特性.在我们关于namespaces的一系列文章中,我们将会解开它的复杂性,我们将会深入的研究shared subtrees特性,这个特性以自动,受控的方式允许mount/unmount事件在mount namespaces之间传播事件.介绍mount namespace在2...

2018-03-21 18:50:07

golang-Timers and Tickers

Go内置的timer和ticker实现 1. 在未来某个时刻执行某段代码 2. 指定间隔周期性的执行某个任务example/test1.gopackage mainimport ( "fmt" "time")func durationExec() { timer := time.NewTicker(time.Second * 2) <...

2018-03-11 01:21:36

Kubernetes集群升级

云环境下新增节点,安装高版本的kubelet,kube-proxy,加入到现有集群中,等节点ready了再执行操作,通过kubectl 当前集群的节点设置成不可调度,drain命令隔离掉需要升级的节点,让pod在新节点上重建,需要考虑的问题如下: 有状态应用(Pod使用了本地存储)Daemonset Pod NodeSelector到特定节点的PodPod设置了强制Node亲和性的P...

2018-03-09 13:52:32

大规模下kubernetes集群的scheduler性能

测试流程搭建测试环境,可以使用社区推荐的kubemark确定当前kubernetes社区确定的scheduler调度性能,每秒能处理多少个pod的调度实际测试当前环境的scheduler性能,是否与社区确定的scheduler性能有差异,如果存在差异过大,那么确定是scheduler本身以外导致的性能差异采用优化方案,通过比对优化前后的性能指标确定是否达到优化效果以及得到影响sched...

2018-03-09 10:05:41

linux network namespace

linux network namespace

2018-02-03 21:43:48

kubernetes中跨namespace访问服务

问题的场景: kubernetes中的namespace=A中的Pod需要访问namespace=B中的Pod所提供service=service_B解决办法: 在namespace_A中创建一个service_c, service_c里面不指定selector, 采用type=ExternalName的方式,externalName定义成为指向namespace=B中的service_

2018-02-01 12:57:06

Kubernetes部署

kubernetes集群部署

2018-01-22 17:31:56

minikube初体验

Minikube下载以及安装 curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/ 启动一个kubernetes集群 minikube star

2018-01-18 17:26:58

Golang timer定时器

timer 计时器用于在指定的Duration类型时间后调用函数或计算表达式。如果只是想指定时间之后执行,使用time.Sleep()使用NewTimer(),可以返回的Timer类型在计时器到期之前,取消该计时器直到使用定义计数器timer := time.NewTimer(time.Second * 2)停止定时器timer.Stop()强制的修改timer中规定

2018-01-11 00:25:44

Kubernetes中的亲和性

现实中应用的运行对于kubernetes在亲和性上提出了一些要求,可以归类到以下几个方面: 1.Pod固定调度到某些节点之上 2.Pod不会调度到某些节点之上 3.Pod的多副本调度到相同的节点之上 4.Pod的多副本调度到不同的节点之上实践下面我们将通过例子的方式来说明在kubernetes需要去设置亲和性实现上面要求.Pod调动到某些节点上Pod的定义中通过no

2018-01-08 15:35:06

Kubernetes上的一些常见标签

beta.kubernetes.io/arch=amd64  Node的label,通过golang的runtime.GOOS来获取kubernetes.io/hostname Node的label,node的hostname,可以通过kubelet参数–hostname-override 来修改beta.kubernetes.io/instance-type Node的label,通

2018-01-04 23:58:07

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!