HAOJX

HAOJX

杂施而不孙,则坏乱而不修 ; 独学而无友,则孤陋而寡闻

在kubernetes中如何增加和使用node节点上的自定义资源数量
在node节点上 , 节点上各个类型资源可用量 , 体现在node对象的status字段中 12345678910apiVersion: v1kind: Nodemetadata: name: node-1...Status: Capacity: cpu: 2 memory: 2049008Ki..... 那么如何增加一个自定义类型资源的数量呢 增加方法12345678#启动一个代理kubectl proxy#执行pacth操作curl --header "Content-Type: application/json-patch+json" \--request PA...
kubernetes怎么修改与设置触发资源回收策略的默认值
目前kubernetes的Qos的设置策略有三种: Guaranteed 就是pod中的container同时设置了requests和limits , 并且requests和limits的值相同 Burstable 当pod不满足Guaranteed的条件, 但是至少有一个container设置了requests (requests和limits不相同) BestEffort 既没有设置requests , 也没有设置limits 设置了Qos策略的话 , 当主机资源不够的时候 , 就会触发Eviction(资源回收) , 那主机 资源不够的标准是什么呢 , 在kubern...
kubernetes中默认调度器的调度流程是怎么进行的
kubernetes默认的调度器要调度一个pod到一个节点上 , 它的步骤是这样的: 预选过程(Predicate): 排除不符合pod要求的节点 , 选出符合pod调度的node列表 优选过程(Priority): 在符合pod的node列表中 , 给每个node打分(1-10分) 选择(Select) 选出得分最高的那个node作为最终的调度结果 调度器的核心 调度器的核心其实是2个独立的循环 循环一: Informer Path有许多informer会启动起来, 监听etcd中的pod , node , server等相关api对象 , 比如一个刚刚创建出来的node ,...
在kubernetes中如何让pod绑定在某颗cpu上
让pod绑定在cpu上 , 可以大大减少上下文切换的次数 ,容器性能可以得到大幅提升 , 那该如何设置呢 设置的方法很简单 前置条件: pod必须是Guaranteed类型的Qos pod的CPU资源设置 , requests和limits必须相同 例子: 1234567891011spec: containers: - name: nginx image: nginx resources: limits: memory: "200Mi" cpu: "2" requests: memory: "200Mi"...
当在kubernetes中触发了资源回收策略的时候, pod删除的序列是什么
当Eviction阈值达到的时候 , 会进入MemoryPressure或者DiskPressure状态 , 从而避免新pod调度上来 发生的时候, 删除的pod的顺序是: 属于BestEffort类别的pod Burstable类型的 , 并且超过requests量的pod Guaranteed类型的 , 并且当pod超过limits设置的值 , 或者触发了MemoryPressure或者DiskPressure状态的pod
基于canel的网络策略
Installing Calico for policy and flannel for networkingIf your cluster has RBAC enabled, issue the following command to configure the roles and bindings that Calico requires. 12kubectl apply -f \https://docs.projectcalico.org/v3.2/getting-started/kubernetes/installation/hosted/canal/rbac.yaml Iss...
kubernetes CRD下篇--编写自定义控制器
自定义控制器的工作流程 通过Informer , 从 Kubernetes 的 APIServer 里获取它所关心的对象 , Informer 与 API 对象是一一对应的 , 我们下面的例子的informer就是 Network 对象的 Informer(Network Informer) 而informer通过这个对象资源对象的client的对象来传递参数, 并和APIServer维持连接 , 使用的是一个叫Reflector 包 , client通过ListAndWatch 的方法来”获取”和”监听”要获取对象的变化 在 ListAndWatch 机制下,一旦 APIServer ...
kubernetes动态准入控制Initializers是什么
在kubernetes中 , 当一个 Pod 或者任何一个 API 对象被提交给 APISServer 之后,总有一些“初始化”性质的工作需要在它们被处理 , 比如为所有pod加上某些标签 , 在实际中的应用的话, 可以体现在以下方面 为即将创建的每个或者某些特定的pod都自动插入一个SideCar容器 为即将创建的每个或者某些特定的pod都自动添加一些环境变量或者设置 检测secret长度 , 如果不满足就拒绝 Initializers的工作原理和使用方法将一个编写好的 Initializer,作为一个 Pod 部署在kubernetes中, 可以用pod或者deployment部...
kubernetes是如何创建api对象的
一个yaml文件提交之后 , 会交到apiserver那里 , apiserver的handler会更加根据资源定义来找到要创建的类型定义 在创建这个类型的对象的过程中 , APIServer会进行一个Convert工作, 即把用户提交的一个yaml文件转换成一个Super Version的对象 , 它是该API资源类型所有版本的字段全集 , 接下来APIServer会进行Admission()和Validation()操作 Admission操作包括Admission Controller和Initializer Validation操作是要验证这个API字段是否合法 , 如果在A...
avatar
HAOJX
It is the first step that costs