-
问题 在 TKE 中配置 Pod 直接绑定弹性公网 IP 使用 EIP 功能后, 可以通过绑定的 EIP 直接访问 Pod , 但是从 Pod 中访问节点外的网络时还是走的节点网络,而不是绑定的 EIP (网络)。 原因 这是因为从 Pod 访问节点外网络(以公网为例)时, Pod 网段出节点会被做 SNAT 策略导致, 相关说明参考:容器访问节点外服务时是否做 SNAT 配置。 解决办法 需要配置下访问不做SNAT 就行了,有两种配置策略: 配置不做 SNAT 要访问的目的网段, 参考配置:容器访问节点外服务时是否做 SNAT 配置。 配置不做 SNAT的 源 IP(同样是修改 ip-masq-agent 配置)。 配置条件:当前 …
阅读更多 -
适用的场景 TKE 中无论是GR模式还是VPC-CNI 模式都是基于路由的 underlay 网络,并非 overlay,所以理论上容器访问节点外可以做SNAT,也可以不用做SNAT。 但在 TKE 中无论是 Global Router 还是 VPC-CNI 网络模式,在容器内访问集群所在 VPC 网段和容器网段默认是不会做 SNAT 的,除此之外访问其他网段都是会做 SNAT 的,当某些业务场景下需要保留容器源 IP 时,我们就需要修改相关配置来避免访问某些 IP 或网段时做 SNAT,从而实现保留容器源 IP 的需求。 操作步骤 在可以使用 kubectl 连接到集群的环境中,执行下面命令在资源 …
阅读更多 -
操作背景 默认情况下,节点上的 Pod 默认共享节点 CPU 池中所有的 CPU核数, 当节点上运行了很多 CPU 密集的 Pod 时,工作负载可能会切换调度到不同的 CPU 核, 这样就导致有些工作负载的性能明显地受到 CPU 缓存亲和性以及调度延迟的影响。 对此,kubelet 提供了可选的 CPU 管理策略,可以实现某些关键 Pod 的静态绑核,避免 CPU 抢占和切换对业务带来的性能损耗。详情参考:控制节点上的 CPU 管理策略 。 TKE 如何开启配置 下面介绍在 TKE 中开启 CPU 静态管理策略的两种方式。 一、存量节点开启 1. 静态 CPU 策略配置 在 K8S 1.17 版本之前,可供 Pod 独占 CPU 资 …
阅读更多 -
使用场景 TKE 中的 Coredns 服务 IP 目前没有办法在创建集群的时候指定,默认是从客户配置的 Service CIDR 网段中分配一个随机的 IP,下面将介绍如何自定义修改 Coredns 服务 IP。 前提条件 在配置的 service CIDR 网段中选择一个目前集群中没有被使用的 IP 集群中存量的 Pods 可以接受被重建。 操作步骤 1.修改 kubelet 启动参数 先到存量节点上修改 kubelet 配置文件中 --cluster-dns 参数为新的 Cluster IP 并重启 kubelet,操作命令如下: 1DNS_CLUSTER_IP=xxx.xxx.xxx.xxx 2sed -i …
阅读更多 -
使用场景 在集群中以 Daemonset 的方式运行 NodeLocal DNS Cache 组件,能够大幅提升集群内 DNS 解析性能,以及有效避免 conntrack 冲突引发的 DNS 五秒延迟。 目前 TKE 已经将 NodeLocal DNS Cache 作为增强组件供用户在集群中安装使用,但是目前仅限 Kube-proxy 转发模式为 Iptables 的集群安装,下面将介绍下在转发模式为 IPVS 如何部署使用 NodeLocal DNS Cache 。 操作步骤 1. 存量节点安装 根据社区示例的 nodelocaldns.yaml 准备一个资源清单,把它保存为nodelocaldns.yaml。 …
阅读更多 -
使用场景 目前使用 StorageClass 自动创建 CFS 类型 PVC 和 PV,每个 PV 都需要对应一个文件系统(CFS 实例),如果想要多个 PV(不同子路径) 使用同一个文件系统,就需要手动创建 PV 时指定 CFS 文件系统的具体的路径然后绑定 PVC 使用,这是一种办法,但是当需要的 PV 数量多了就会非常繁琐, 对于此使用场景我们可以使用社区的 nfs-client-provisioner 项目来实现动态创建 CFS 文件系统中的子路径,接下来我们来介绍下如何在 TKE 中使用nfs-client-provisioner。 操作步骤 1.准备 CFS 文件系统实例 使用 CFS-CSI 插件 创建或通过 CFS …
阅读更多 -
- 容器环境中没有 shell 环境 有时候我们想要查看下容器内部的一些东西,但是无奈容器没有shell 执行环境,比如想看看 coredns 容器中 /etc/resolv.conf 的内容是否正确继承了节点的配置,比较简单的操作步骤如下(以 docker 运行时为例): 登录到容器所在节点上,执行 docker ps 查找到 coredns 容器 ID,然后再使用 cp 命令把文件复制出来就可以看了: 1docker ps | grep <容器名> 2docker cp <容器ID>:/want/to/see/dir . 2. 常用排查命令 1.查看 kubelet 守护服务日志(运行时日志类似) 1# …
阅读更多 -
问题描述 有客户反馈集群中两个 Service 之间调用有偶发超时现象,经过排查后发现是触发了 TKE 中的内网 CLB 回环问题导致(相同场景下公网CLB 无此回环问题 ),但客户又反馈另一个集群也有类似的调用场景,但一直没有出现过超时现象。经过查看对比,两个集群中 Service 之间调用场景确实是一致的,但两个集群中被调用服务的 Service 中 externalTrafficPolicy 配置有差异,有回环问题的集群配置为"Local",无回环问题的集群配置为 "Cluster"。 先说结论 为啥使用 "externalTrafficPolicy=Local "有 …
阅读更多 -
背景 TKE 服务在集群内默认启用了基于腾讯云负载均衡器实现的 Ingress,支持 HTTP、HTTPS,同时也支持在集群内自建其他 Ingress 控制器,可以根据业务需要选择不同的 Ingress 类型,比如常用的 Nginx Ingress 控制器。 安装方式 方式一:通过 TKE 产品化的 Nginx ingress 组件安装,详情参考:TKE Nginx Ingress 方式二:通过 TKE 控制台 【应用市场】 安装 Nginx Ingress ,应用市场安装说明参考:TKE 应用市场 方式三:通过官网文档使用 helm 安装 Nginx Ingress,详情参考:Helm 安装 Nginx Ingress 使用配置 …
阅读更多