简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
现在无论是公有云还是私有云,虚拟机还是裸金属,在交付过程中或多或少总有很多定制化的需求,比如密码定制,磁盘挂载,agent启动等等。有些场景可以将定制化的需求放在镜像内,但对于一些业务种类,规模较多的场景来说,频繁更新镜像并不是一个好事情,cloud-init 的方式就会比较合理,通过启动时候注入的方式,完成了主机的初始化,且就目前来说,cloud-init已经成为了云主机初始化的一个行业标准,并
HPA(Horizontal Pod Autoscaler)K8S的水平扩缩容其实也是由一个独立的控制器管理的, 也就是HPA。API 细节HPA 属于 autoscaling API 组的资源组kubectl api-versions | grep autoscalautoscaling/v1autoscaling/v2beta1autoscaling/v2beta2autoscaling/v1
什么是Qos众所周知,k8s的资源分配主要基于container的resources进行限制,其中又分为了requests和limits 两个字段,分别表示容器的基本所需资源以及最大限制,该2个字段的最大作用,就是为K8S的调度以及资源回收服务。Qos是啥,假设一条通道只能容纳100人,当我们有120人需要疏散的时候,如何让老人小孩先走,Qos就是将老人小孩的重要级调高,从而保障老人小孩可以在第一
亲和性 && 反亲和性在默认的K8S调度中,一般经过预选和优选即可完成调度,但是生产的实际使用中,考虑到部分业务的特殊性,一般会手动进行一些"指定", K8S 把这些"指定"分为nodeAffinity(节点亲和性)、podAffinity(pod 亲和性) 以及 podAntiAffinity(pod 反亲和性), 这在调度过程中,称之为亲和性调度,亲和性调度可以分成软策略(pr
Why Helm日常操作kubernetes 的编排,一般都是以下几个步骤:创建namespace->创建对应的rs(deployment,statefulset)->创建对应的service->创建对应的Ingress可能有些app还需要pv/pvc或者secretmap之类。纯靠手工管理简直反人类,所以一般的云平台都会直接调用client-go进行各类resource的创建,
Cobra每个好的开源项目都会有很多好用的开源库的诞生,之前学openstack的时候就对openstack的oslo系列工具组用的非常多,现在学习k8s后发现同样在go下也有很多类似的开源库,比如Cobra 就是一个用来创建命令行的 golang 库,同时也是一个用于生成应用和命令行文件的程序, 包括docker,k8s 都用的类似方式去实现,用于实现CLI非常好用,我的理解他有点类似ope..
Big Picture在调度过程中,会有各种预选和优选算法,在经过了那么多道门槛之后,一个POD才能完成调度,提供服务,在调度过程中,假设有一个很重要的系统服务调度失败了,导致了故障,为了避免这种情况,我们可以对该应用设置一个相对较高的优先级,在调度失败后,将一些优先级相对较低的不是那么重要的应用”挤走“,这就是K8S调度的优先级和抢占的作用。优先级K8S有一个专门的API对象,就是优先级,比如:
calico 架构组件清单组件版本k8s集群1.14calico-kube-controller3.8.9calico-node3.8.9calicoctl3.8.9docker18.09.6etcdv3其中calico-node 包含了相同版本的CNI(即calico-cni 和calico-ipam)基本架构图基本架构基于calico-BGP 的网络互联方式,BGP 互联地址 &&am
Big PictureK8S的调度说实话一般没啥人改,因为一般的体量,基于K8S内置的算法基本就满足了,但对于大体量和特殊场景来说,还是很有必要进行修改的,比如假设有好几种业务场景的pod,需要按需要调度到不同的rack上,传统做法当然可以对Node进行label,然后在不同业务的pod上做match,同样的,也可以修改调度器,在调度的时候自动进行调度,类似的场景有点像openstack的filt
K8S的自定义存储插件和K8S的网络不太一样,K8S的网络只有CNI一种接口暴露方式,所有的网络实现基于第三方进行开发实现,但存储的内置实现就多达20多种,#K8S目前支持的插件类型#。但内置的往往不满足定制化的需求,所以和CNI 一样,K8S 也暴露了对外的存储接口,和CNI 一样,通过实现对应的接口方法,即可创建属于自己的存储插件,但和CNI 有点区别的是,K8S的存储插件的自定义实现方式,有