InfraPub 为您找到相关结果 18

Kubernetes源码探疑:Pod IP泄露排查及解决方法

UK8S是UCloud推出的Kubernetes容器云产品,完全兼容原生API,为用户提供一站式云上Kubernetes服务。我们团队自研了CNI(Container Network Interface)网络插件,深度集成VPC,使UK8S容器应用拥有与云主机间等同的网络性能(目前最高可达10Gb/s, 100万pps),并打通容器和物理云/托管云的网络。过程中,我们解决了开源kubelet创建多余Sandbox容器导致Pod IP莫名消失的问题,确保CNI插件正常运行,并准备将修复后的kubelet源码提交给社区。 深度集成VPC的网络方案 按照我们的设想,开发者可以在UK8S上部署、管理、扩展容器化应用,无需关心Kubernetes集群自身的搭建及维护等运维类工作。UK8S完全兼容原生...阅读全文

腾讯云 TKE 集群如何修改单节点的Pod数量的上限?

TKE集群在创建时,会设置节点上允许的Pod数量的上限,一般默认是64个。 这里介绍,如何把单节点的 Pod 数量上限,从 32个 调整到 64个,分两种: 1. 新增的节点,需要在创建节点时指定最大Pod 的上限,增加一个自定义项即可, ![94e3.png](https://img.debian.cn/210826/d5feab6345ffe7746904b417470594e3.png) 2. 存量的节点可以使用这个脚本更新一下配置: ``` #!/bin/bash grep MAX_PODS /etc/kubernetes/kubelet if [ $? -eq 0 ]; then echo 'patched already' sed...阅读全文

监控Kubernetes集群证书过期时间的三种方案 - OSCHINA

前言 Kubernetes 中大量用到了证书, 比如 ca证书、以及 kubelet、apiserver、proxy、etcd等组件,还有 kubeconfig 文件。 如果证书过期,轻则无法登录 Kubernetes 集群,重则整个集群异常。 为了解决证书过期的问题,一般有以下几种方式: 大幅延长证书有效期,短则 10年,长则 100 年; 证书快过期是自动轮换,如 Rancher 的 K3s,RKE2 就采用这种方式; 增加证书过期的监控,便于提早发现证书过期问题并人工介入 本次主要介绍关于 Kubernetes 集群证书过期的监控,这里提供 3 种监控方案: 使用 Blackbox Exporter 通过 Probe 监控 Kubernetes apiserver 证书过期时间; 使...阅读全文

博文 2022-12-10 06:49:43 中文开源技术交流社区

kubelet 中垃圾回收机制的设计与实现

kubernetes 中的垃圾回收机制主要有两部分组成:一是由 kube-controller-manager 中的 gc controller 自动回收 kubernetes 中被删除的对象以及其依赖的对象;二是在每个节点上需要回收已退出的容器以及当 node 上磁盘资源不足时回收已不再使用的容器镜像;本文主要分析 kubelet 中的垃圾回收机制,垃圾回收的主要目的是为了节约宿主上的资源,gc controller 的回收机制可以参考以前的文章 garbage collector controller 源码分析。kubelet 中与容器垃圾回收有关的主要有以下三个参数:--maximum-dead-containers-per-container: 表示一个 pod 最多可以保存多少个...阅读全文

博文 2021-02-05 17:48:22 知乎

Kubernetes v1.21 新特性预览

,卷上的典型操作(如快照、克隆、扩展等)也被支持。Kubelet 内存控制策略 Alpha内存控制策略是 Kubelet 在 v1.21 中新增的一个 Alpha 特性,用于为 Pod 提供 NUMA 内存。Kubelet 新增了 --memory-manager-policy 用于配置内存控制策略,它支持两个策略:默认策略是 none,等同于内存控制策略未开启;static 策略:为 Pod 分配 NUMA 内存并确保 Guaranteed Pod 预留足够的内存(Kubelet 状态保存在 /var/lib/kubelet/memory_manager_state 文件中)。image.pngServiceLoadBalancerClass Alpha以前 LoadBalancer 类型的...阅读全文

博文 2021-03-30 20:24:36 mp.weixin.qq.com

通过Prometheus查询K8S集群Pod 的CPU、内存、网络指标

Kubernetes的kubelet组件内置了cadvisor,将Node上容器的指标以Prometheus支持的格式展示,可以通过这些指标计算得到更多有用的数据。 Kubelet的Cadvisor指标获取 在Prometheus的配置文件中,配置了相关的Target之后,这些指标就可以从Prometheus中查询到。 - job_name: 'kubernetes-cadvisor' scheme: https tls_config: ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount...阅读全文

博文 2020-08-13 20:41:03 debian.cn

kubectl 创建 Pod 背后到底发生了什么?—探寻 Kubectl 创建 Pod 的原理

deployments,而背后的复杂性被隐藏在简单的抽象中。但为了充分理解它为我们提供的价值,我们需要理解它的内部原理。 本指南将引导您理解从 client 到 Kubelet 的请求的完整生命周期,必要时会通过源代码来说明背后发生了什么。 这是一份可以在线修改的文档,如果你发现有什么可以改进或重写的,欢迎提供帮助! 1. kubectl 验证和生成器 当敲下回车键以后,kubectl 首先会执行一些客户端验证操作,以确保不合法的请求(例如,创建不支持的资源或使用格式错误的镜像名称)将会快速失败,也不会发送给 kube-apiserver。通过减少不必要的负载来提高系统性能。 验证通过之后, kubectl 开始将发送给 kube-apiserver 的 HTTP 请求进行封装。kube-apiserver 与...阅读全文

博文 2022-04-18 16:18:04 CSDN

K8S中Pod的四个阶段及状态分析

EventType = "ERROR" PodStatus 有一组 PodConditions。 PodCondition 中的 ConditionStatus,它代表了当前 pod 是否处于某一个阶段(PodScheduled,Ready,Initialized,Unschedulable),true 表示处于,false 表示不处于。 Pod 的详细状态有这些, CrashLoopBackOff: 容器退出,kubelet正在将它重启InvalidImageName: 无法解析镜像名称ImageInspectError: 无法校验镜像ErrImageNeverPull: 策略禁止拉取镜像ImagePullBackOff: 正在重试拉取RegistryUnavailable: 连接不到镜像中心...阅读全文

博文 2020-07-15 13:11:45 debian.cn

Kubernetes 1.7:安全加固、有状态应用更新等

今天我们公布了Kubernetes 1.7,这一里程碑版本引入了更为强大的安全性、存储以及扩展性因素,旨在满足Kubernetes在广泛企业环境下所面临的实际需求。 这次发布的版本中安全方面的改进包括加密的Serect,Pod到Pod通讯的网络策略,限制kubelet访问的节点授权器(node authorizer),和客户端/服务端 TLS 证书轮换。 对于在Kubernetes上伸缩数据库的用户,这次版本有一个重要特性向StatefulSet添加了自动化的更新,并增强了对DaemonSet的更新。同时我们宣布对本地存储和用于更快速伸缩StatefulSet的加速模式(burst mode)的alpha支持。 同时,对于高级用户,这次版本中的API聚合允许用户提供的API服务器和...阅读全文

博文 2021-01-28 17:50:35 debian.cn

Debian 9 使用kubeadm创建 k8s 集群(上)

=4 unreachable=0 failed=0 现在初步设置已完成,您可以继续安装特定于Kubernetes的依赖项。 第3步 - 安装Kubernetes依赖项 在本节中,您将使用Debian的软件包管理器安装Kubernetes所需的操作系统级软件包。 这些包是: Docker - 容器运行时。 它是运行容器的组件。 Kubernetes正在积极开发对rkt等其他运行时的支持。kubeadm - 一个CLI工具,它将以标准方式安装和配置集群的各个组件。kubelet - 一个在所有节点上运行并处理节点级操作的系统服务/程序。kubectl - 一种CLI工具,用于通过其API服务器向集群发出命令。 在工作区中创建一个名为~/kube-cluster/kube...阅读全文

博文 2019-05-13 22:47:39 debian.cn

rkt v1.30.0 发布: CoreOS 的容器引擎

rkt v1.30.0 发布了。Rocket(也叫 rkt)是 CoreOS 推出的一款容器引擎,和 Docker 类似,帮助开发者打包应用和依赖包到可移植容器中,简化搭环境等部署工作。Rocket 和 Docker 不同的地方在于,Rocket 没有 Docker 那些为企业用户提供的“友好功能”,比如云服务加速工具、集群系统等。反过来说,Rocket 想做的,是一个更纯粹的业界标准。 相信的更新内容如下。 新特性 status: added read from uuid-file (#3860). stage0/run: relax ‘–hosts-entry’ parser (#3833). iottymux: store logs for kubelet in the...阅读全文

博文 2018-04-19 08:08:25 debian.cn

Kubernetes 1.7 发布,安全强化、StatefulSet 更新及可扩展特性

Authorizer)和准入控制(Admission Control)插件。它们是在1.7中以Beta版新添加的特性,用于限制kubelet访问那些控制Secret、Pod和其它基于节点对象的Kubernetes API操作;用于Secret的加密和其它存储在etcd的资源,当前以Alpha版提供可用;Kubelet TLS Bootstrapping,当前以Alpha版提供,支持客户和服务证书旋转(Rotation);由API服务器存储的审计日志,现在更改为可定制的和可扩展。 聚焦于存储和有状态工作负载管理的特性包括:StatefulSet Updates。它是在1.7中以Beta版新提供的特性,允许使用一系列的更新策略对有状态应用进行自动更新,包括滚动更新(rolling-update),以及金丝雀...阅读全文

博文 2017-07-19 12:23:15 debian.cn

kubelet 绑核与不绑核的性能差别

同一台主机,同样的workload,kubelet 中配置CPU绑定后的性能变化: 绑核的配置放在 /etc/kubernetes/kubelet 中的这两行: ``` FEATURE_GATES="--feature-gates=CPUManager=true" CPU_MANAGER_POLICY="--cpu-manager-policy=static" ``` 绑核前: ``` procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in...阅读全文

Kubernetes 1.16.0发布 新版本四大主题

广泛使用一个全局 metrics registry 来注册要公开的 metrics。通过实现 metrics registry,metrics 可以以更透明的方式注册。而在这之前,Kubernetes metrics 被排除在任何稳定性需求之外Volume Extension:新版本有大量和 Volume 及 Volume 修改相关的增强。CSI 规范中对 Volume 调整的支持正在转向 Beta 版,它允许任何 CSI spec Volume plugin 都可以调整大小 其他值得注意的功能更新: 拓扑管理器是一个新的 Kubelet 组件,旨在协调资源分配决策,以提供优化的资源分配IPv4/IPv6 双栈允许将 IPv4 和 IPv6 地址分配给 Pods 和服务API Server...阅读全文

博文 2019-09-20 13:28:32 debian.cn

Kubernetes调度算法浅析

etcd数据库中。kube-scheduler通过api-server查看有哪些可用的pod。kube-scheduler通过一组算法过滤掉一部分不可用的pod或者node节点。kube-scheduler再通过更加严格的打分机制对所有的可用pod进行打分。通过打分选出分数最高的pod,并将pod进行绑定之后存储在etcd中。node节点的kubelet接收到api-server指令进行pod创建。 kube-scheduler的预选(过滤)规则 kube-scheduler首先通过以下规则对所有node节点或者pod进行初步的过滤。 kube-scheduler的优选(打分)规则 在经过重重过滤之后,剩下的都是K8S集群可用的pod和node节点。之后kube-scheduler会根据另一套规则...阅读全文

博文 2020-12-20 11:01:10 debian.cn

Kubernetes 使用 PodPreset 注入信息到 Pods_哎_小羊的博客

,ValidatingAdmissionWebhook,ResourceQuota,PodPreset` 如果觉得以上命令太复杂,还可以通过修改 Yaml 方式配置,因为 Minikube 通过 Static Pod 的方式用 Kubelet 启动各组件服务,所以可以更改对应组件的 Yaml 来激活 PodPreset,通过修改 /etc/kubernetes/manifests/kube-apiserver.yaml 文件增加如下配置,修改完成后 Kubelet 会自动重启 kube-apiserver 各组件。 $ vim /etc/kubernetes/manifests/kube-apiserver.yaml - --runtime-config=settings.k8s.io/v1alpha1=true #新增该配置...阅读全文

博文 2021-01-27 18:47:00 CSDN博客

译:Kubernetes 最佳实践

很重要,因为在 K8s 中没有为这些设置默认值。例如,如果一个 pod 需要 20 秒才能启动并且缺少就绪探测,那么在启动期间定向到该 pod 的任何流量都会导致失败。就绪探针应该是独立的,并且不考虑对其他服务的任何依赖,例如后端数据库或缓存服务。存活探针试应用程序是否正在运行以将其标记为健康。例如,可以测试 Web 应用程序的特定路径以确保其响应。如果不是,该 pod 将不会被标记为健康,并且探测失败将导致 kubelet 启动一个新的 pod,然后将再次对其进行测试。这种类型的探测用作恢复机制,以防进程无响应。译者:在 Kubernetes 1.18 引入了 StartUp(启动)探针。当容器启动时间较长(要花较长的时间完成初始化工作),此时应该使用启动探针。如果启动探针探测不成功,其他...阅读全文

博文 2022-09-13 19:32:21 atbug.com

深度解密基于 eBPF 的 Kubernetes 问题排查全景图

题导致的慢调用问题。从 gateway 来看发生了慢调用,查看拓扑发现调下游 product 的 RT 比较高,但是 product 本身的黄金指标来看 product 本身服务并没有问题,进一步查看两者之间的网络状况,发现 RTT 和重传都比较高,说明网络性能恶化了,导致了整体的网络传输变慢,TCP 重传机制掩盖了这个事实,在应用层面感知不到,日志也没法看出问题所在。这时候网络的黄金指标有助于定界出问题,从而加速了问题的排查。​二、节点问题Kubernetes 做了大量工作,尽可能确保提供给工作负载和服务的节点是正常的,节点控制器 7x24 小时地检查节点的状态,发现影响节点正常运行的问题后,将节点置为 NotReady 或不可调度,通过 kubelet 把业务 Pod 从问题节点中驱逐出...阅读全文

博文 2022-03-21 09:11:51 joseph