roc

Results 104 issues of roc

https://imroc.cc/learning-kubernetes/trick/process-statistics/ 线程数排名统计 可用于排查哪个进程有大量线程(线程泄露): $ printf " NUM PID\t\tCOMMAND\n" && ps -eLf | awk '{$1=null;$3=null;$4=null;$5=null;$6=null;$7=null;$8=null;$9=null;print}' | sort |uniq -c |sort -rn | head -2 NUM PID COMMAND 594 14418 java -server...

Gitalk
39e02a5500aaae06ffff4a01941eda97

https://imroc.cc/learning-kubernetes/trick/debug-network/ 进入容器 netns kubectl 获取 pod 中任意 cotnainer 的 id: kubectl -n test describe pod debug-685b48bcf5-ggn5d 输出示例片段1 (containerd运行时): Containers: debug: Container ID: containerd://529bbd5c935562a9ba66fc9b9ffa95d486c6324f26d8253d744ffe3dfd728289 输出示例片段2 (dockerd运行时): Containers: debug: Container ID: docker://e64939086488a9302821566b0c1f193b755c805f5ff5370d5ce5e6f154ffc648...

Gitalk
dab6671feb1d96bc14b8d1273e3ca16d

https://imroc.cc/learning-kubernetes/trick/create-user-using-csr-api/ k8s 支持 CSR API,通过创建 CertificateSigningRequest 资源就可以发起 CSR 请求,管理员审批通过之后 kube-controller-manager 就会为我们签发证书,确保 kube-controller-manager 配了根证书密钥对: --cluster-signing-cert-file=/var/lib/kubernetes/ca.pem --cluster-signing-key-file=/var/lib/kubernetes/ca-key.pem 创建步骤 我们用 cfssl 来创建 key 和 csr 文件,所以需要先安装 cfssl: curl -L https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 -o cfssl curl...

Gitalk
30052d7a458653dbdd306de68b2398d1

https://imroc.cc/learning-kubernetes/trick/ 腾讯云高级工程师

Gitalk
3b87dfd535b5f2a894c1572f15c038f5

https://imroc.cc/learning-kubernetes/kep/container-hpa/ 背景 k8s HPA 按照 Pod 中所有 container 的平均资源占用来判断是否扩缩容,当 Pod 中多个 container 中有 1 个占用非常高,但低于 HPA 定义的平均占用时,不会触发扩容,但实际上很需要扩容。Container HPA 就是为了解决这类问题,将 HPA 资源占用判断能细化到 container 级别,而不是 pod 级别。 历史 2019-12-17: Arjun Naik 提出...

Gitalk
d80f9ef278d4ad8f5b3271aa3ce69ad3

https://imroc.cc/learning-kubernetes/kep/sidecar-containers/ 背景 K8S 中 Pod 如果有多个 container,正常情况会同时启动或销毁,但有些场景对容器启动或销毁顺序有依赖,就可能存在一些问题,比如在 istio 场景中: Pod 启动时: 业务容器比 istio-proxy 先 ready。容器化过渡的应用,业务容器启动时需要调用其它服务(比如从配置中心拉取配置),如果失败就退出,没有重试逻辑,而当 envoy 启动更慢时,业务容器调用其它服务失败,导致 pod 启动失败,如此循环 (参考 k8s issue #65502 ,解决方案参考 istio常见问题: Sidecar 启动顺序问题) 。 Pod 销毁时:...

Gitalk
2a50cc72091bf2bac5d22c119648fee5

https://imroc.cc/learning-kubernetes/kep/ 腾讯云高级工程师

Gitalk
e2ae5d39558e71fe0aebacd371bcafee

https://imroc.cc/learning-kubernetes/faq/tke/loadblancer-to-pod-directly/ 概述 TKE 提供了 CLB 直通 Pod 的能力,不经过 NodePort,网络链路上少了一跳,带来了一系列好处: 链路更短,性能会有所提高。 没有 SNAT,避免了流量集中可能导致的源端口耗尽、conntrack 插入冲突等问题。 不经过 NodePort,也就不会再经过 k8s 的 iptables/ipvs 转发,从而负载均衡状态就都收敛到了 CLB 这一个地方,可避免负载均衡状态分散导致的全局负载不均问题。 由于没有 SNAT,天然可以获取真实源 IP,不再需要 externalTrafficPolicy: Local 。 实现会话保持更简单,只需要让 CLB 开启会话保持即可,不需要设置...

Gitalk
2c3624e2922df18ab1c0d23b96d2923e

https://imroc.cc/learning-kubernetes/faq/tke/public-service-or-ingress-connect-failed/ 问题描述 部署在 TKE 集群内的服务使用公网对外暴露 (LoadBalancer 类型 Service 或 Ingress),但访问不通。 常见原因 节点安全组没放通 NodePort 如果服务使用 TKE 默认的公网 Service 或 Ingress 暴露,CLB 会转发流量到 NodePort,流量转发链路是: client –> CLB –> NodePort –> … CLB...

Gitalk
f41ec478183e46714bd92d93b6d519f4

https://imroc.cc/learning-kubernetes/faq/tke/ 腾讯云高级工程师

Gitalk
a808b638ef32dd0f31a9f8c2fac87b30