首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    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 时每次都标记缓存失效,而是只有在第一次时标记缓存无效。

    18830

    K8S deployment可视化故障排查指南

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

    2.6K10

    容器化 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.2K20

    【重识云原生】第六章容器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

    87910

    【重识云原生】第六章容器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。

    1.6K21

    非典型 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

    10310

    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

    94420

    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

    45730

    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 的身份的客户端私钥。

    2.7K40

    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.2K20

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

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

    48120

    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

    22220

    Kubernetes入门之系统架构

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

    1.4K20

    如何hack和保护Kubernetes

    其中包括几位专家的评论,解释这些策略如何以及为何有助于保护 Kubernetes 工作负载并降低云环境风险。...您可以通过使用以下标志启动 kube-apiserver 来启用 RBAC --authorization-mode: kube-apiserver --authorization-mode=Example...任何敏感日志都应传输到集群外部以降低风险。 要启用审核日志记录,您需要--audit-policy-file在启动 kube-apiserver 时使用该标志。策略文件包含规定将记录什么内容的规则。...Kubernetes 支持加密密钥和证书轮换,以便在当前证书即将到期时自动生成新密钥并从 API 服务器请求新证书。新证书可用后,它将验证与 Kubernetes API 的连接。...以 root 用户身份运行 docker 容器也会使您的应用程序容易受到攻击,因为它允许用户在启动容器时更改用户 ID 或组 ID。

    20630

    部署 Kubernetes 集群日志插件 Fluentd、Elasticsearch、Kibana

    目录 Kubernetes 日志架构介绍 环境、软件准备 启动 Fluentd 启动 Elasticsearch 启动 Kibana 浏览器添加证书 RBAC 认证模式介绍 1、Kubernetes...日志架构介绍 对于任何基础架构或者服务系统,日志重要性不言而喻,当然 Kubernetes 也少不了对 Logging 的支持,集群中各个资源以及服务日志如何很好的集中查看并分析,官方给出了...但是,当我们去 Node 节点上执行 tail -f /var/log/fluented.log 时,却发现提示并没有该文件,难道没启动成功?...看样子是启动成功了,不放心还是看下日志输出吧!...有两种方式,一种是自己生成然后拷贝到各个机器上,配置 Kubernetes 使用,并导入到浏览器中,另一种使用现成的证书,下边说一下如何导入现成的证书到浏览器中。

    7.4K90
    领券