-
问题 在 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 …
阅读更多 -
使用场景 默认情况下,用户在 TKE 添加 GPU 节点时,会自动预装特定版本 GPU 驱动,但是目前默认安装 GPU 驱动版本是固定的,用户还不能选择要安装的 GPU 驱动版本,当用户有其他版本的 GPU 驱动使用需求时,就需要在节点上重新安装,下面将介绍在 TKE 节点中如何重新安装 GPU 驱动程序。 操作步骤 1.卸载原驱动 先卸载原驱动,在节点上执行卸载命令: 1nvidia-uninstall 原驱动卸载过程如下图所示: 提示卸载原驱动完成即表示成功卸载: 2.重启节点 由于驱动是被编译进内核加载的,卸载完原驱动需要重启下节点,不重启会因原驱动还在加载中导致安装新驱动失败。 3.下载新驱动程序并安装 登录 NVIDIA …
阅读更多 -
运行时版本修改 登录TKE 控制台,点击【基本信息】->【运行时组件】编辑按钮修改运行时版本,如下图: 修改完毕后,集群中新添加节点将使用新的版本运行时。 存量节点修改 ⚠️ 存量节点修改运行时建议将节点【移出】再【添加已有节点】加回集群的方式,此方式会重新安装系统并初始化节点,请自行评估风险和操作时间点。 操作步骤 先点击【封锁】节点,目的是不让新的 Pod 再调度到要操作的节点上: 再点击【驱逐】节点 Pods,目的是将节点上的存量 Pods 优雅迁出: 待驱逐 Pods 过程完成后,点击移出节点并取消勾选“销毁节点”,这样可以不销毁按量付费的 CVM: 最后一步,重新将迁出的节点加入集群: 待节点添加进集群完成后,该示例 …
阅读更多 -
背景 TKE 服务在集群内默认启用了基于腾讯云负载均衡器实现的 Ingress,支持 HTTP、HTTPS,同时也支持在集群内自建其他 Ingress 控制器,可以根据业务需要选择不同的 Ingress 类型,比如常用的 Nginx Ingress 控制器。 安装方式 方式一:通过 TKE 产品化的 Nginx ingress 组件安装,详情参考:TKE Nginx Ingress 方式二:通过 TKE 控制台 【应用市场】 安装 Nginx Ingress ,应用市场安装说明参考:TKE 应用市场 方式三:通过官网文档使用 helm 安装 Nginx Ingress,详情参考:Helm 安装 Nginx Ingress 使用配置 …
阅读更多