roc
roc
https://imroc.cc/k8s/ref/shell/debug-network/ 查看监听队列 $ ss -lnt State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 129 128 *:80 *:* 查看网络计数器 $ netstat -az ... TcpExtListenOverflows 12178939 0.0 TcpExtListenDrops 12247395 0.0 ... netstat...
https://imroc.cc/k8s/tke/trick/use-foreign-container-image/ 背景 在 TKE 上部署开源应用时,经常会遇到依赖的镜像拉不下来或非常慢的问题,比如 gcr, quay.io 等境外公开镜像仓库。实际 TKE 已经提供了海外镜像加速的能力,本文介绍如何使用此项能力来部署开源应用。 镜像地址映射 以下是支持的镜像仓库及其映射地址: 海外镜像仓库地址 腾讯云映射地址 gcr.io gcr.tencentcloudcr.com k8s.gcr.io k8s.tencentcloudcr.com quay.io quay.tencentcloudcr.com nvcr.
https://imroc.cc/k8s/tke/faq/loadblancer-to-pod-directly/ 概述 TKE 提供了 CLB 直通 Pod 的能力,不经过 NodePort,网络链路上少了一跳,带来了一系列好处: 链路更短,性能会有所提高。 没有 SNAT,避免了流量集中可能导致的源端口耗尽、conntrack 插入冲突等问题。 不经过 NodePort,也就不会再经过 k8s 的 iptables/ipvs 转发,从而负载均衡状态就都收敛到了 CLB 这一个地方,可避免负载均衡状态分散导致的全局负载不均问题。 由于没有 SNAT,天然可以获取真实源 IP,不再需要 externalTrafficPolicy: Local 。 实现会话保持更简单,只需要让 CLB 开启会话保持即可,不需要设置...
https://imroc.cc/k8s/tke/faq/public-service-or-ingress-connect-failed/ 问题描述 部署在 TKE 集群内的服务使用公网对外暴露 (LoadBalancer 类型 Service 或 Ingress),但访问不通。 常见原因 节点安全组没放通 NodePort 如果服务使用 TKE 默认的公网 Service 或 Ingress 暴露,CLB 会转发流量到 NodePort,流量转发链路是: client –> CLB –> NodePort –> … CLB...
https://imroc.cc/k8s/trick/set-sysctl/ 概述 本文介绍为 Pod 设置内核参数的几种方式。 在 securityContext 中指定 sysctls 自 k8s 1.12 起,sysctls 特性 beta 并默认开启,允许用户在 pod 的 securityContext 中设置内核参数,用法示例: apiVersion: v1 kind: Pod metadata: name: sysctl-example spec: securityContext: sysctls:...
https://imroc.cc/learning-kubernetes/troubleshooting/failed-to-download-image-for-high-version-containerd/ 问题描述 在 containerd 运行时的 kubernetes 线上环境中,出现了镜像无法下载的情况,具体报错如下: Failed to pull image ` `"ccr.ccs.tencentyun.com/tkeimages/tke-hpc-controller:v1.0.0"` `: rpc error: code = NotFound desc = failed to pull and unpack image ` `"ccr.ccs.tencentyun.com/tkeimages/tke-hpc-controller:v1.0.0"` `: failed to...
https://imroc.cc/learning-kubernetes/best-practice/containerd-dind/ 背景 在 K8S 集群中,某些 CI/CD 流水线业务可能需要使用 docker 来提供镜像打包服务,一些同学会想到利用宿主机上的 docker,具体做法是把宿主机上 docker 的 unix socket (/var/run/docker.sock) 作为 hostPath 挂载到 CI/CD 的业务 Pod 中,之后在容器里通过 unix socket 来调用宿主机上的 docker 进行构建。这种方法固然简单,照比真正意义上的 Docker in Docker...