如何修改K8S Pod中TCP_KEEP_ALIVE的值



我使用microk8s设置了一个k8s集群。我想知道如何改变默认的TCP Keep豆荚中的活值。当我应用yaml文件时,它会给我allowedUnsafeSysctls错误

apiVersion: apps/v1
kind: Deployment
metadata:
name: input-adaptor-deployment
namespace: mgr-ns
spec:
replicas: 1
selector:
matchLabels:
component: input-adaptor
template:
metadata:
labels:
component: input-adaptor
spec:
securityContext:
sysctls:
- name: net.ipv4.tcp_keepalive_intvl
value: "45"
- name: net.ipv4.tcp_keepalive_probes
value: "15"
- name: net.ipv4.tcp_keepalive_time
value: "120"
containers:
- name: input-adaptor
image: registry.development.gitlab/food/input-adaptor
resources:
requests:
memory: '16Mi'
cpu: '100m'
limits:
memory: '80Mi'
cpu: '500m'
ports:
- containerPort: 5003
imagePullSecrets:
- name: registry-credentials-gitlab

:

您需要启用不安全的sysctl设置。查看这里的文档

https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/

这个答案中也有一些好的信息:

错误:标志——allowed-unsafe-sysctls已被弃用

注意,您基本上需要配置k8以允许不安全的系统设置,即允许他们了解后果。

正如文档中提到的,您需要启用不安全的sysctl设置来修复您的错误:

系统tls分为安全和不安全的系统tls。除了…之外适当的命名空间,一个安全的系统之间必须适当地隔离同一节点上的pod。默认情况下,所有安全系统都是启用的。所有不安全的系统在默认情况下是禁用的,必须由集群管理以每个节点为基础。不安全的豆荚系统将被调度,但将无法启动。

下面的示例演示了如何设置操作系统TCP保持连接参数,时间间隔为1分钟。

sudo /sbin/sysctl -w net.ipv4.tcp_keepalive_time=60 net.ipv4.tcp_keepalive_intvl=60 net.ipv4.tcp_keepalive_probes=5

要确保设置在重新启动后仍然有效,请将这些设置添加到您的/etc/sysctl.conf文件中。

参考链接获取更多信息。

最新更新