首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    high QPS for configmap GET requests in kube-apiserver - 3

    背景 线上 k8s 集群 kube-apiserver 的 ConfigMap Get 操作 QPS 较高,且同时间段 Etcd 中 ConfigMap 资源的 Get 操作 QPS 也较高,看日志多数请求的发起方是...kube-apiserver 日志大致如下: 图片 由来 定位此问题的过程中花了一定的时间,同时也纠正了一些有关 kubelet 内 Pod 处理的错误理解。...为什么没有走 kube-apiserver 缓存? 问题如何解决? 本篇主要介绍问题如何解决。...缓存结果,未超时则直接返回自己本地缓存的数据不再请求 apiserver,最后用获取到的信息进行 mount 操作,成功后设置 remountRequired 为 false; 1 中的定时器在一段时间...社区也给出了另外一种解法,即不要在 AddReference 时每次都标记缓存失效,而是只有在第一次时标记缓存无效。

    34130

    Kubernetes 基础架构与环境准备Containerd、Kubeadm、Kubelet、Kubectl 初探

    :把容器生成的数据映射到外部存储卷; 日志与监控:集中管理所有容器的日志,跟 Prometheus/Grafana 集成(后续章节会讲)。...比如当你执行 kubectl create deployment nginx时,最终会向 kube-apiserver 发起一个 HTTP 请求,告诉它“我要部署 nginx 这个容器”。...Kubeadm、Kubelet、Kubectl(Kubernetes 组件) 验证各个组件是否可用/运行正常 下面我们来逐条走完,确保你能在国内网络环境下顺利拉取镜像、安装各组件,并在遇到“命令不存在”时知道如何解决...Kube-apiserver:如何在 master 节点生成 TLS 证书,启动 API Server? Kube-scheduler:如何为集群中的 Pod 进行调度?...Kube-proxy:如何配置 Service 资源,让 Pod 互联和外部访问正常工作? 如果你在本篇里对 Containerd 配置镜像加速、或 kubelet 无法启动的问题还有疑惑,共同学习

    79010

    K8S deployment可视化故障排查指南

    在进行调试之前,让我们回顾一下这三个组件如何相互链接。 让我们从Deployment和Service开始。...通常,在以下情况下容器无法启动: 应用程序中存在错误,导致无法启动 您未正确配置容器 Liveness探针失败太多次 您应该尝试从该容器中检索日志,以调查其失败的原因。...如果由于容器重新启动太快而看不到日志,则可以使用以下命令: kubectl logs --previous 将打印前一个容器的错误信息 RunContainerError 当容器无法启动时出现错误...当 readiness探针失败时,Pod未连接到服务,并且没有流量转发到该实例。...您应该调查流量如何路由到您的群集。 如果不起作用,则问题出在Ingress控制器中。您应该调试Ingress。 如果仍然无法使Ingress控制器正常工作,则应开始对其进行调试。

    3.1K10

    容器化 RDS:借助火焰图定位Kubernetes性能问题

    容器化RDS:你需要了解数据是如何被写"坏"的 容器化RDS:借助 CSI 扩展 Kubernetes 存储能力 借助 CSI(Container Storage Interface),加上对 Kubenetes...| 定位问题 code-path 我们可以立马进入调试环节: 1.阅读 external-provisioner 代码,加入调试日志,理解逻辑 2.不断缩小 code-path 步骤 1、2持续迭代...再针对性的加入调试日志到 code-path 中,理解逻辑,很快可以确定问题: 在创建卷时,external-storage 需要访问 API 资源(譬如 configmap、pvc、pv、event、...secrets、storageclass 等),为减少 kube-apiserver 工作负荷,不建议直接访问 kube-apiserver,而应该利用本地缓存(由 informer cache 构建)...生产环境中,一个组件会启动多个实例,抢占到 Leader Lock 的实例即为 Leader 并对外提供服务,其他实例以 Slave 模式运行,一旦 Leader 出现问题,Slave 发现 Leader

    1.3K20

    【重识云原生】第六章容器6.3.2节——API Server组件

    在使用 kubectl 时,打开调试日志也可以看到每个 API 调用的格式,比如: $ kubectl --v=8 get pods         可通过 kubectl api-versions 和...根据 OpenAPI 也可以生成各种语言的客户端,比如可以用下面的命令生成 Go 语言的客户端: git clone https://github.com/kubernetes-client/gen /...3、注册表层         Kubernetes把所有资源对象都保存在注册表(Registry)中,针对注册表中的各种资源对象都定义了:资源对象的类型、如何创建资源对象、如何转换资源的不同版本,以及如何将资源编码和解码为...2.2 如何访问apiserver         k8s通过kube-apiserver这个进程提供服务,该进程运行在单个k8s-master节点上。默认有两个端口。...2.5.1.1 接口扩展         此外,如果 kubelet 进程在启动时包含 --enable-debugginghandlers=true参数,那么Kubernetes Proxy API

    1.2K10

    【重识云原生】第六章容器6.3.1节——K8S核心组件总述

    2.1.2 工作原理 2.1.2.1 如何访问apiserver         k8s通过kube-apiserver这个进程提供服务,该进程运行在单个k8s-master节点上。默认有两个端口。...参考 这里 查看如何为云提供商构建新的 Cloud Provider。...未配置 imagefs 阈值时 达到 nodefs阈值时,按照删除已停止的 Pod 和删除未使用镜像的顺序清理资源 驱逐用户 Pod 驱逐顺序为:BestEffort、Burstable...用量驱逐(容器可写层) 未配置 imagefs 阈值时 达到 nodefs阈值时,按照总磁盘使用驱逐(local volume + logs + 容器可写层)         除了驱逐之外...        注意:Kubernetes 默认使用 fluentd(以 DaemonSet 的方式启动)来收集日志,并将收集的日志发送给 elasticsearch。

    2.4K21

    非典型 K8S证书过期导致系统无法访问(服务器时间导致)

    查看服务器情况 docker ps看到k8s相关容器一直在重启 查看节点情况kubectl get nodes 该截图为测试环境复现截图,现场执行时未提示过期,而是6443端口连接失败 查看pod情况kubectl...get pods -A 该截图为测试环境复现截图,现场执行时未提示过期,而是6443端口连接失败 由于现场kubectl命令无法使用,只好使用docker查看日志,优先查看kube-apiserver...日志 docker ps | grep apiserver 第二个为对应pod docker logs -f 0dfc2f141a24 #日志较多,使用下条命令 docker logs -n 100...查看集群证书剩余过期时间 kk查看 使用kk 查询和生成证书时,依赖ssh端口,如果不是22端口,需要指定 -f 集群创建配置文件 ..../kk certs check-expiration kubeadm查看 kubeadm certs check-expiration 重新生成证书 kk重新生成 使用kk 查询和生成证书时,依赖ssh

    36710

    08-部署node节点

    /server/bin/{kube-proxy,kubelet,kubectl,kubefed} /usr/bin/ 安装和配置 kubelet kubelet 启动时向 kube-apiserver...kube-apiserver (日志中提示未找到 API Server),kubectl get nodes 不会返回对应的 Node 信息; --cluster-dns 指定 kubedns 的 Service...IP(可以先分配,后续创建 kubedns 服务时指定该 IP),--cluster-domain 指定域名后缀,这两个参数同时指定后才会生效; 完整配置 见 kubelet 启动kublet # systemctl...通过 kublet 的 TLS 证书请求 kubelet 首次启动时向 kube-apiserver 发送证书签名请求,必须通过后 kubernetes 系统才会将该 Node 加入到集群 注意:如果kubelet...是使用的master节点上生成的那个token.csv来请求认证的,master就会自动通过认证请求直接加入集群,就不需要手动来通过csr请求 手动查看csr请求 在master上查看未授权的 CSR

    1.1K20

    Kubernetes-v1.24版安装部署之Mater节点安装部署

    安装Kube-apiserver 相关参数介绍 • —logtostderr:启用日志 • —-v:日志等级 • —log-dir:日志目录 • —etcd-servers:etcd集群地址 • —bind-address...• —etcd-xxxfile:连接Etcd集群证书 • —audit-log-xxx:审计日志 • 启动聚合层相关配置:—requestheader-client-ca-file,—proxy-client-cert-file...启动文件 cat > /usr/lib/systemd/system/kube-apiserver.service <<EOF [Unit] Description=Kubernetes API Server...配置文件 • —leader-elect:当该组件启动多个时,自动选举(HA) • —cluster-signing-cert-file/—cluster-signing-key-file:自动为kubelet...配置文件 • —leader-elect:当该组件启动多个时,自动选举(HA) kube-scheduler启动文件 cat > /usr/lib/systemd/system/kube-scheduler.service

    64930

    Kubernetes实战(二)- 一键部署神器kubeadm

    主从容器如何区分? 它们之间又如何进行自动发现和通信?...此外,用户使用kubectl获取容器日志等streaming操作时,需要通过kube-apiserver向kubelet发起请求,这个连接也必须是安全的。...这样,当这台机器上的kubelet启动时,它会自动检查该目录,加载所有的Pod YAML,然后在该节点启动它们。 可以看出,kubelet在Kubernetes项目中的地位非常高。...如果要修改一个已有集群的kube-apiserver的配置,需要修改该YAML 这些组件的参数可以在部署时指定 在这一步完成后,kubeadm还会再生成一个Etcd的Pod YAML,...相信你一定会有这样的疑问:kubeadm确实简单易用,可是我又该如何定制我的集群组件参数呢? 比如,我要指定kube-apiserver的启动参数,该怎么办?

    67420

    high QPS for configmap GET requests in kube-apiserver - 1

    背景 线上 k8s 集群 kube-apiserver 的 ConfigMap Get 操作 QPS 较高,且同时间段 Etcd 中 ConfigMap 资源的 Get 操作 QPS 也较高,看日志多数请求的发起方是...kube-apiserver 日志大致如下: 图片 由来 定位此问题的过程中花了一定的时间,同时也纠正了一些有关 kubelet 内 Pod 处理的错误理解。...为什么没有走 kube-apiserver 缓存? 问题如何解决?...GetObject 调用链 投石问路 首先看下 GetObject 干了什么,核心逻辑还是在 Get 中,下面代码中的 klog 日志输出是为了方便调试自己加上去的,在官方代码中没有的。...rc.mountAttachVolumes() ... } 至此找到了最上层触发 GetObject 调用的调用者 reconciler,他在 kubelet 启动时启动,每间隔 loopSleepDuration

    37520

    K8S集群安装

    证书的根证书; --client-certificate、--client-key:刚生成的 admin 证书和私钥,连接 kube-apiserver 时使用; --embed-certs=true...flannel 第一次启动时,从 etcd 获取 Pod 网段信息,为本节点分配一个未使用的 /24 段地址,然后创建 flannel.1(也可能是其它名称,如 flannel1 等) 接口。...https 访问 kubelet APIs;需要为证书对应的用户(上面 kubernetes.pem 证书的用户为 kubernetes) 用户定义 RBAC 规则,否则访问 kubelet API 时提示未授权...为保证通信安全,本文档先生成 x509 证书和私钥,kube-controller-manager 在如下两种情况下使用该证书: 与 kube-apiserver 的安全端口通信时; 在安全端口(https...kublet 启动时自动向 kube-apiserver 注册节点信息,内置的 cadvisor 统计和监控节点的资源使用情况。

    4.7K20

    kube-apiserver启动命令参数解释

    在apiserver启动时候会有很多参数来配置启动命令,有些时候不是很明白这些参数具体指的是什么意思。...[图片] 我的kube-apiserver启动命令参数: cat > /usr/lib/systemd/system/kube-apiserver.service << EOF [Unit] Description...如果启用了 HTTPS 服务,并且未提供 --tls-cert-file 和 --tls-private-key-file, 为公共地址生成一个自签名证书和密钥,并将其保存到 --cert-dir 指定的目录中...--proxy-client-cert-file string 当必须调用外部程序以处理请求时,用于证明聚合器或者 kube-apiserver 的身份的客户端证书。...--proxy-client-key-file string 当必须调用外部程序来处理请求时,用来证明聚合器或者 kube-apiserver 的身份的客户端私钥。

    3K40

    Kubernetes入门之系统架构

    如何快速认识和上手Kubernetes?可从三方面入手,一是了解Kubernetes的系统架构,二是了解Kubernetes涉及的主要概念,三是动手安装运行初体验。 2. 系统架构 2.1. ...由几大管理控制器组成: Node Controller 节点控制器 负责在节点出现故障时进行通知和响应 Replication Controller 副本控制器 负责为系统中的每个副本控制器对象维护正确数量的...如果调度器不能为Pod找到合适的工作节点,则Pod保持未调度状态,直到被调度分配工作节点。...由Kubernetes启动的容器,会在其DNS搜索中自动包括此DNS服务器。 2.5.2. ...Cluster-level Logging 集群级日志记录,负责通过搜索/浏览接口将容器日志保存到中央日志存储中。 window.

    1.6K20
    领券